From 5904ba4dcf4c17bffef196ef1f8f336b6e80d67b Mon Sep 17 00:00:00 2001 From: openeuler-iSula Date: Sun, 29 Dec 2019 15:30:08 +0800 Subject: [PATCH] runc: package init Signed-off-by: openeuler-iSula --- apply-patch | 24 + ....travis.yml-Don-t-require-FETCH_HEAD.patch | 40 + ...ry-to-read-freezer.state-from-the-cu.patch | 43 + ...3-Use-opencontainers-selinux-package.patch | 2424 + ...unprivileged-operations-and-dumpable.patch | 272 + ...-add-support-for-rootless-containers.patch | 1490 + ...rootless-add-rootless-cgroup-manager.patch | 421 + ...ainer-configs-add-proper-HostUID-and.patch | 256 + ...ainer-init-fix-unmapped-console-fcho.patch | 64 + ...s-add-autogenerated-rootless-config-.patch | 203 + ...0010-integration-added-root-requires.patch | 143 + ...tests-add-rootless-integration-tests.patch | 449 + ...add-golang.org-x-sys-unix-9a7256cb28.patch | 123561 +++++++++++++++ ...ntainer-rewrite-cmsg-to-use-sys-unix.patch | 327 + ...ntainer-state-only-once-during-start.patch | 39 + ...int-check-if-system-supports-pre-dum.patch | 161 + patch/0016-Fix-console-syscalls.patch | 129 + .../0017-restore-apply-resource-limits.patch | 34 + .../0018-could-load-a-stopped-container.patch | 35 + patch/0019-Revert-back-to-using-sbin.patch | 32 + ...dd-testcase-in-generic_error_test.go.patch | 57 + ...spelling-of-properties-in-various-pl.patch | 53 + ...ootless-containers-section-on-README.patch | 63 + ...vendor-clean-up-to-be-better-written.patch | 69 + ...4-Optimizing-looping-over-namespaces.patch | 58 + ...ootless-section-to-spec-man-page-and.patch | 54 + ...-Allow-updating-container-pids-limit.patch | 150 + ...redundant-declaraion-of-namespace-sl.patch | 59 + patch/0028-Revert-saneTerminal.patch | 31 + ...runtime-spec-fork-docker-runtime-spe.patch | 59 + ...memory-specs-to-use-int64-not-uint64.patch | 198 + patch/0031-Add-spec-for-euleros.patch | 70 + ...c-17-Always-save-own-namespace-paths.patch | 84 + ...unc-change-runc-default-umask-to-027.patch | 52 + ...dd-some-compatibility-code-to-surpor.patch | 50 + ...dd-root-to-HookState-for-compatibili.patch | 141 + ...-add-compatibility-for-docker-1.11.2.patch | 208 + ...Don-t-enalbe-kmem-accounting-by-defa.patch | 61 + ...est-and-integration-test-error-cause.patch | 64 + .../0041-Add-timeout-for-syscall.Openat.patch | 68 + ...ate-earlier-to-avoid-cgroup-leak-whe.patch | 46 + ...e-rslave-instead-of-rprivate-in-chro.patch | 43 + ...-default-mount-propagation-correctly.patch | 43 + ...hook-specific-info-when-error-occurr.patch | 128 + ...t-cgroup-info-if-cpuset-missing-occu.patch | 57 + ...runc-add-more-specific-log-for-hooks.patch | 104 + .../0048-runc-Only-configure-networking.patch | 40 + ...-fs-fix-NPE-on-Destroy-than-no-cgrou.patch | 37 + ...nc-Avoid-race-when-opening-exec-fifo.patch | 214 + ...turn-from-goroutine-when-it-should-t.patch | 33 + ...c-reduce-max-number-of-retries-to-10.patch | 32 + ...t-error-message-during-start-into-co.patch | 36 + ...re-exec.fifo-removing-not-exist-erro.patch | 31 + patch/0055-Add-file-fds-limit.patch | 246 + ...fy-max-files.limit-to-max-because-of.patch | 61 + ...ge-read-value-of-cgroup-files.limit-.patch | 55 + ...058-runc-fix-panic-when-Linux-is-nil.patch | 194 + ...ix-setup-cgroup-before-prestart-hook.patch | 59 + ...-runc-runc-logs-forwarding-to-syslog.patch | 860 + ...hange-golang-build-version-to-make-o.patch | 39 + ...ck-the-hook-timeout-in-case-overflow.patch | 47 + ...ose-openchan-immediately-to-avoid-er.patch | 58 + ...-to-v1.0.0.rc3.4-after-normalization.patch | 30 + ...ort-namespaced-kernel-params-can-be-.patch | 94 + patch/0066-runc-bump-to-v1.0.0.rc3.6.patch | 29 + ...7-runc-make-the-runc-log-more-useful.patch | 137 + ...ced-the-same-log-when-the-hook-exect.patch | 52 + ...ge-Files-to-LinuxFiles-for-file-limi.patch | 92 + ...-not-print-no-such-file-when-cli-err.patch | 48 + ...rt-Change-Files-to-LinuxFiles-for-fi.patch | 88 + ...nc-not-print-no-such-file-when-cli-e.patch | 32 + ...state.json-no-such-file-or-directory.patch | 80 + ...ix-check-sysctl-in-host-network-mode.patch | 78 + ...-systemd-journald-service-dependency.patch | 62 + patch/0076-runc-Fix-syslog-hook-bug.patch | 60 + ...-libseccomp-static-lib-for-upgrade-f.patch | 38 + patch/0078-runc-Fix-race-in-runc-exec.patch | 499 + ...79-runc-modify-spec-file-for-upgrade.patch | 29 + patch/0080-runc-support-specify-umask.patch | 73 + ...x-oom-killer-disable-unhandled-due-t.patch | 151 + ...ke-runc-spec-and-docker-18.9-compati.patch | 118 + .../0083-log-fix-runc-log-decode-failed.patch | 74 + ...fix-runc-panic-and-support-oom-score.patch | 108 + ...ot-setup-sysctl-in-runc-when-userns-.patch | 40 + ...86-runc-support-set-seccomp-priority.patch | 68 + ...87-runc-fix-spec-LinuxSyscall-struct.patch | 48 + ...-clone-proc-self-exe-to-avoid-exposi.patch | 306 + ...nsenter-clone-proc-self-exe-to-avoid.patch | 294 + ...-clone-proc-self-exe-to-avoid-exposi.patch | 357 + ...2019-5736-workaround-if-memfd_create.patch | 207 + ...runc-cve-2019-5736-fix-build-failure.patch | 47 + ...ix-error-when-check-the-init-process.patch | 46 + ...mp-is-mounted-by-option-noexec-docke.patch | 30 + ...-warning-when-poststart-and-poststop.patch | 50 + ...ot-kill-container-if-poststart-hooks.patch | 31 + ...mountpoint-leak-and-pivot_root-error.patch | 120 + ...x-read-only-containers-under-userns-.patch | 40 + patch/0099-runc-enable-bep-ldflags.patch | 49 + patch/0100-runc-set-makefile-buildid.patch | 44 + ...t-memory-info-when-syscall.Exec-fail.patch | 63 + ...d-sysctl-kernel.pid_max-to-whitelist.patch | 26 + ...try-adding-pids-to-cgroups-when-EINV.patch | 79 + ...unc-disable-core-dump-during-pipe-io.patch | 35 + ...ot-override-devices.allow-file-when-.patch | 92 + ...exec-problem-caused-by-libseccomp-up.patch | 41 + ...t-files-limit-and-usage-when-exec-fa.patch | 55 + patch/0109-runc-add-copyright.patch | 31 + patch/0110-runc-add-lisence.patch | 28 + ...dd-log-message-for-cgroup-file-check.patch | 67 + ...dd-log-message-for-cgroup-file-check.patch | 45 + ...odify-files-cgroup-info-reading-path.patch | 79 + runc-1.0.0-rc3.zip | Bin 0 -> 658025 bytes runc-openeuler.spec | 42 + series.conf | 110 + 114 files changed, 138801 insertions(+) create mode 100644 apply-patch create mode 100644 patch/0001-.travis.yml-Don-t-require-FETCH_HEAD.patch create mode 100644 patch/0002-Don-t-try-to-read-freezer.state-from-the-cu.patch create mode 100644 patch/0003-Use-opencontainers-selinux-package.patch create mode 100644 patch/0004-handle-unprivileged-operations-and-dumpable.patch create mode 100644 patch/0005-runc-add-support-for-rootless-containers.patch create mode 100644 patch/0006-rootless-add-rootless-cgroup-manager.patch create mode 100644 patch/0007-libcontainer-configs-add-proper-HostUID-and.patch create mode 100644 patch/0008-libcontainer-init-fix-unmapped-console-fcho.patch create mode 100644 patch/0009-rootless-add-autogenerated-rootless-config-.patch create mode 100644 patch/0010-integration-added-root-requires.patch create mode 100644 patch/0011-tests-add-rootless-integration-tests.patch create mode 100644 patch/0012-vendor-add-golang.org-x-sys-unix-9a7256cb28.patch create mode 100644 patch/0013-libcontainer-rewrite-cmsg-to-use-sys-unix.patch create mode 100644 patch/0014-Set-container-state-only-once-during-start.patch create mode 100644 patch/0015-checkpoint-check-if-system-supports-pre-dum.patch create mode 100644 patch/0016-Fix-console-syscalls.patch create mode 100644 patch/0017-restore-apply-resource-limits.patch create mode 100644 patch/0018-could-load-a-stopped-container.patch create mode 100644 patch/0019-Revert-back-to-using-sbin.patch create mode 100644 patch/0020-add-testcase-in-generic_error_test.go.patch create mode 100644 patch/0021-Fix-misspelling-of-properties-in-various-pl.patch create mode 100644 patch/0022-Add-a-rootless-containers-section-on-README.patch create mode 100644 patch/0023-vendor-clean-up-to-be-better-written.patch create mode 100644 patch/0024-Optimizing-looping-over-namespaces.patch create mode 100644 patch/0025-Add-a-rootless-section-to-spec-man-page-and.patch create mode 100644 patch/0026-Allow-updating-container-pids-limit.patch create mode 100644 patch/0027-Remove-redundant-declaraion-of-namespace-sl.patch create mode 100644 patch/0028-Revert-saneTerminal.patch create mode 100644 patch/0029-vendor-runtime-spec-fork-docker-runtime-spe.patch create mode 100644 patch/0030-Update-memory-specs-to-use-int64-not-uint64.patch create mode 100644 patch/0031-Add-spec-for-euleros.patch create mode 100644 patch/0032-runc-17-Always-save-own-namespace-paths.patch create mode 100644 patch/0033-runc-change-runc-default-umask-to-027.patch create mode 100644 patch/0034-runc-17-Add-some-compatibility-code-to-surpor.patch create mode 100644 patch/0035-runc-17-Add-root-to-HookState-for-compatibili.patch create mode 100644 patch/0036-runc-17-add-compatibility-for-docker-1.11.2.patch create mode 100644 patch/0037-docker-Don-t-enalbe-kmem-accounting-by-defa.patch create mode 100644 patch/0039-Fix-unittest-and-integration-test-error-cause.patch create mode 100644 patch/0041-Add-timeout-for-syscall.Openat.patch create mode 100644 patch/0042-update-state-earlier-to-avoid-cgroup-leak-whe.patch create mode 100644 patch/0043-runc-Use-rslave-instead-of-rprivate-in-chro.patch create mode 100644 patch/0044-runc-default-mount-propagation-correctly.patch create mode 100644 patch/0045-runc-add-hook-specific-info-when-error-occurr.patch create mode 100644 patch/0046-runc-print-cgroup-info-if-cpuset-missing-occu.patch create mode 100644 patch/0047-runc-add-more-specific-log-for-hooks.patch create mode 100644 patch/0048-runc-Only-configure-networking.patch create mode 100644 patch/0049-cgroups-fs-fix-NPE-on-Destroy-than-no-cgrou.patch create mode 100644 patch/0050-runc-Avoid-race-when-opening-exec-fifo.patch create mode 100644 patch/0051-runc-Return-from-goroutine-when-it-should-t.patch create mode 100644 patch/0052-runc-reduce-max-number-of-retries-to-10.patch create mode 100644 patch/0053-runc-print-error-message-during-start-into-co.patch create mode 100644 patch/0054-runc-ignore-exec.fifo-removing-not-exist-erro.patch create mode 100644 patch/0055-Add-file-fds-limit.patch create mode 100644 patch/0056-runc-Modify-max-files.limit-to-max-because-of.patch create mode 100644 patch/0057-runc-change-read-value-of-cgroup-files.limit-.patch create mode 100644 patch/0058-runc-fix-panic-when-Linux-is-nil.patch create mode 100644 patch/0059-Fix-setup-cgroup-before-prestart-hook.patch create mode 100644 patch/0060-runc-runc-logs-forwarding-to-syslog.patch create mode 100644 patch/0061-runc-17-change-golang-build-version-to-make-o.patch create mode 100644 patch/0062-runc-Check-the-hook-timeout-in-case-overflow.patch create mode 100644 patch/0063-docker-close-openchan-immediately-to-avoid-er.patch create mode 100644 patch/0064-runc-bump-to-v1.0.0.rc3.4-after-normalization.patch create mode 100644 patch/0065-runc-support-namespaced-kernel-params-can-be-.patch create mode 100644 patch/0066-runc-bump-to-v1.0.0.rc3.6.patch create mode 100644 patch/0067-runc-make-the-runc-log-more-useful.patch create mode 100644 patch/0068-runc-reduced-the-same-log-when-the-hook-exect.patch create mode 100644 patch/0069-runc-Change-Files-to-LinuxFiles-for-file-limi.patch create mode 100644 patch/0070-runc-not-print-no-such-file-when-cli-err.patch create mode 100644 patch/0071-runc-revert-Change-Files-to-LinuxFiles-for-fi.patch create mode 100644 patch/0072-Revert-runc-not-print-no-such-file-when-cli-e.patch create mode 100644 patch/0073-runc-fix-state.json-no-such-file-or-directory.patch create mode 100644 patch/0074-runc-fix-check-sysctl-in-host-network-mode.patch create mode 100644 patch/0075-runc-Fix-systemd-journald-service-dependency.patch create mode 100644 patch/0076-runc-Fix-syslog-hook-bug.patch create mode 100644 patch/0077-runc-Require-libseccomp-static-lib-for-upgrade-f.patch create mode 100644 patch/0078-runc-Fix-race-in-runc-exec.patch create mode 100644 patch/0079-runc-modify-spec-file-for-upgrade.patch create mode 100644 patch/0080-runc-support-specify-umask.patch create mode 100644 patch/0081-runc-fix-oom-killer-disable-unhandled-due-t.patch create mode 100644 patch/0082-runc-make-runc-spec-and-docker-18.9-compati.patch create mode 100644 patch/0083-log-fix-runc-log-decode-failed.patch create mode 100644 patch/0084-oci-fix-runc-panic-and-support-oom-score.patch create mode 100644 patch/0085-runc-do-not-setup-sysctl-in-runc-when-userns-.patch create mode 100644 patch/0086-runc-support-set-seccomp-priority.patch create mode 100644 patch/0087-runc-fix-spec-LinuxSyscall-struct.patch create mode 100644 patch/0088-nsenter-clone-proc-self-exe-to-avoid-exposi.patch create mode 100644 patch/0089-Revert-nsenter-clone-proc-self-exe-to-avoid.patch create mode 100644 patch/0090-nsenter-clone-proc-self-exe-to-avoid-exposi.patch create mode 100644 patch/0091-runc-cve-2019-5736-workaround-if-memfd_create.patch create mode 100644 patch/0092-runc-cve-2019-5736-fix-build-failure.patch create mode 100644 patch/0093-runc-fix-error-when-check-the-init-process.patch create mode 100644 patch/0094-runc-If-tmp-is-mounted-by-option-noexec-docke.patch create mode 100644 patch/0095-runc-just-warning-when-poststart-and-poststop.patch create mode 100644 patch/0096-runc-do-not-kill-container-if-poststart-hooks.patch create mode 100644 patch/0097-runc-Fix-mountpoint-leak-and-pivot_root-error.patch create mode 100644 patch/0098-runc-fix-read-only-containers-under-userns-.patch create mode 100644 patch/0099-runc-enable-bep-ldflags.patch create mode 100644 patch/0100-runc-set-makefile-buildid.patch create mode 100644 patch/0101-runc-print-memory-info-when-syscall.Exec-fail.patch create mode 100644 patch/0102-runc-add-sysctl-kernel.pid_max-to-whitelist.patch create mode 100644 patch/0104-runc-Retry-adding-pids-to-cgroups-when-EINV.patch create mode 100644 patch/0105-runc-disable-core-dump-during-pipe-io.patch create mode 100644 patch/0106-runc-do-not-override-devices.allow-file-when-.patch create mode 100644 patch/0107-runc-fix-exec-problem-caused-by-libseccomp-up.patch create mode 100644 patch/0108-runc-print-files-limit-and-usage-when-exec-fa.patch create mode 100644 patch/0109-runc-add-copyright.patch create mode 100644 patch/0110-runc-add-lisence.patch create mode 100644 patch/0111-runc-add-log-message-for-cgroup-file-check.patch create mode 100644 patch/0112-runc-add-log-message-for-cgroup-file-check.patch create mode 100644 patch/0113-runc-modify-files-cgroup-info-reading-path.patch create mode 100644 runc-1.0.0-rc3.zip create mode 100644 runc-openeuler.spec create mode 100644 series.conf diff --git a/apply-patch b/apply-patch new file mode 100644 index 0000000..6e900dc --- /dev/null +++ b/apply-patch @@ -0,0 +1,24 @@ +#!/bin/bash + +# Copyright (c) Huawei Technologies Co., Ltd. 2018-2019. All rights reserved. +# Description: This shell script is used to apply patches for the project +# Author: jingrui@huawei.com +# Create: 2019-03-02 + +pkg=runc-1.0.0-rc3 +cwd=$PWD +src=$cwd/$pkg + +unzip $pkg.zip + +series=$cwd/series.conf +while IPF= read -r line +do + if [[ "$line" =~ ^0.* ]]; then + cd $src && patch -p1 < $cwd/patch/$line + fi +done <"$series" + +cd $cwd +cp -rf $src/* . +rm -rf runc-1.0.0-rc3 diff --git a/patch/0001-.travis.yml-Don-t-require-FETCH_HEAD.patch b/patch/0001-.travis.yml-Don-t-require-FETCH_HEAD.patch new file mode 100644 index 0000000..b46ea18 --- /dev/null +++ b/patch/0001-.travis.yml-Don-t-require-FETCH_HEAD.patch @@ -0,0 +1,40 @@ +From 3eb678a633ddf3be06851a1b8c69a98650e9a367 Mon Sep 17 00:00:00 2001 +From: "W. Trevor King" +Date: Tue, 21 Mar 2017 11:48:39 -0700 +Subject: [PATCH 01/94] .travis.yml: Don't require FETCH_HEAD + +Master builds only have a 'git clone ...' [1] so FETCH_HEAD isn't +defined and git-validation crashes [2]. We don't want to be +hard-coding a range here, and should update git-validation to handle +these cases automatically. + +Also echo TRAVIS_* variables during testing to make debugging +git-validation easier. + +[1]: https://travis-ci.org/opencontainers/runc/jobs/213508696#L243 +[2]: https://travis-ci.org/opencontainers/runc/jobs/213508696#L347 + +Change-Id: I325ae392323133b123f0ef7577a4464ae10a54cb +Signed-off-by: W. Trevor King +--- + .travis.yml | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/.travis.yml b/.travis.yml +index 04f71f5..244c643 100644 +--- a/.travis.yml ++++ b/.travis.yml +@@ -23,8 +23,9 @@ before_install: + - go get -u github.com/golang/lint/golint + - go get -u github.com/vbatts/git-validation + - go get -u github.com/mvdan/sh/cmd/shfmt ++ - env | grep TRAVIS_ + + script: +- - git-validation -run DCO,short-subject -v -range ${TRAVIS_BRANCH}..FETCH_HEAD ++ - git-validation -run DCO,short-subject -v + - make BUILDTAGS="${BUILDTAGS}" + - make BUILDTAGS="${BUILDTAGS}" clean validate test +-- +2.7.4.3 + diff --git a/patch/0002-Don-t-try-to-read-freezer.state-from-the-cu.patch b/patch/0002-Don-t-try-to-read-freezer.state-from-the-cu.patch new file mode 100644 index 0000000..d5d77c5 --- /dev/null +++ b/patch/0002-Don-t-try-to-read-freezer.state-from-the-cu.patch @@ -0,0 +1,43 @@ +From 4ccbadc228c9e4fc0fd20690ca13517f02aab59d Mon Sep 17 00:00:00 2001 +From: Andrei Vagin +Date: Thu, 23 Mar 2017 01:43:39 +0300 +Subject: [PATCH 02/94] Don't try to read freezer.state from the + current directory + +If we try to pause a container on the system without freezer cgroups, +we can found that runc tries to open ./freezer.state. It is obviously wrong. + +$ ./runc pause test +no such directory for freezer.state + +$ echo FROZEN > freezer.state +$ ./runc pause test +container not running or created: paused + +Change-Id: Ia7eba3a300a7ca6f1e8e10e4b1cbb4360e083e33 +Signed-off-by: Andrei Vagin +--- + libcontainer/container_linux.go | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go +index 28dff86..cd9235d 100644 +--- a/libcontainer/container_linux.go ++++ b/libcontainer/container_linux.go +@@ -1284,7 +1284,12 @@ func (c *linuxContainer) runType() (Status, error) { + } + + func (c *linuxContainer) isPaused() (bool, error) { +- data, err := ioutil.ReadFile(filepath.Join(c.cgroupManager.GetPaths()["freezer"], "freezer.state")) ++ fcg := c.cgroupManager.GetPaths()["freezer"] ++ if fcg == "" { ++ // A container doesn't have a freezer cgroup ++ return false, nil ++ } ++ data, err := ioutil.ReadFile(filepath.Join(fcg, "freezer.state")) + if err != nil { + // If freezer cgroup is not mounted, the container would just be not paused. + if os.IsNotExist(err) { +-- +2.7.4.3 + diff --git a/patch/0003-Use-opencontainers-selinux-package.patch b/patch/0003-Use-opencontainers-selinux-package.patch new file mode 100644 index 0000000..56e75d0 --- /dev/null +++ b/patch/0003-Use-opencontainers-selinux-package.patch @@ -0,0 +1,2424 @@ +From d9ba1ae8b4ce5099b857f50dc2393bf90921be44 Mon Sep 17 00:00:00 2001 +From: Qiang Huang +Date: Thu, 23 Mar 2017 08:21:19 +0800 +Subject: [PATCH 03/94] Use opencontainers/selinux package + +It's splitted as a separate project. + +Change-Id: Iaac4fde7a9cfd95695afe2654ca59f68469f7872 +Signed-off-by: Qiang Huang +--- + libcontainer/configs/validate/validator.go | 4 +- + libcontainer/label/label.go | 84 --- + libcontainer/label/label_selinux.go | 204 ------- + libcontainer/label/label_selinux_test.go | 148 ----- + libcontainer/rootfs_linux.go | 2 +- + libcontainer/selinux/selinux.go | 549 ------------------- + libcontainer/selinux/selinux_test.go | 85 --- + libcontainer/setns_init_linux.go | 2 +- + libcontainer/standard_init_linux.go | 2 +- + vendor.conf | 1 + + vendor/github.com/opencontainers/selinux/LICENSE | 201 +++++++ + vendor/github.com/opencontainers/selinux/README.md | 7 + + .../selinux/go-selinux/label/label.go | 84 +++ + .../selinux/go-selinux/label/label_selinux.go | 204 +++++++ + .../opencontainers/selinux/go-selinux/selinux.go | 593 +++++++++++++++++++++ + .../opencontainers/selinux/go-selinux/xattrs.go | 78 +++ + 16 files changed, 1173 insertions(+), 1075 deletions(-) + delete mode 100644 libcontainer/label/label.go + delete mode 100644 libcontainer/label/label_selinux.go + delete mode 100644 libcontainer/label/label_selinux_test.go + delete mode 100644 libcontainer/selinux/selinux.go + delete mode 100644 libcontainer/selinux/selinux_test.go + create mode 100644 vendor/github.com/opencontainers/selinux/LICENSE + create mode 100644 vendor/github.com/opencontainers/selinux/README.md + create mode 100644 vendor/github.com/opencontainers/selinux/go-selinux/label/label.go + create mode 100644 vendor/github.com/opencontainers/selinux/go-selinux/label/label_selinux.go + create mode 100644 vendor/github.com/opencontainers/selinux/go-selinux/selinux.go + create mode 100644 vendor/github.com/opencontainers/selinux/go-selinux/xattrs.go + +diff --git a/libcontainer/configs/validate/validator.go b/libcontainer/configs/validate/validator.go +index f076f50..ecf8335 100644 +--- a/libcontainer/configs/validate/validator.go ++++ b/libcontainer/configs/validate/validator.go +@@ -7,7 +7,7 @@ import ( + "strings" + + "github.com/opencontainers/runc/libcontainer/configs" +- "github.com/opencontainers/runc/libcontainer/selinux" ++ selinux "github.com/opencontainers/selinux/go-selinux" + ) + + type Validator interface { +@@ -87,7 +87,7 @@ func (v *ConfigValidator) security(config *configs.Config) error { + !config.Namespaces.Contains(configs.NEWNS) { + return fmt.Errorf("unable to restrict sys entries without a private MNT namespace") + } +- if config.ProcessLabel != "" && !selinux.SelinuxEnabled() { ++ if config.ProcessLabel != "" && !selinux.GetEnabled() { + return fmt.Errorf("selinux label is specified in config, but selinux is disabled or not supported") + } + +diff --git a/libcontainer/label/label.go b/libcontainer/label/label.go +deleted file mode 100644 +index fddec46..0000000 +--- a/libcontainer/label/label.go ++++ /dev/null +@@ -1,84 +0,0 @@ +-// +build !selinux !linux +- +-package label +- +-// InitLabels returns the process label and file labels to be used within +-// the container. A list of options can be passed into this function to alter +-// the labels. +-func InitLabels(options []string) (string, string, error) { +- return "", "", nil +-} +- +-func GetROMountLabel() string { +- return "" +-} +- +-func GenLabels(options string) (string, string, error) { +- return "", "", nil +-} +- +-func FormatMountLabel(src string, mountLabel string) string { +- return src +-} +- +-func SetProcessLabel(processLabel string) error { +- return nil +-} +- +-func GetFileLabel(path string) (string, error) { +- return "", nil +-} +- +-func SetFileLabel(path string, fileLabel string) error { +- return nil +-} +- +-func SetFileCreateLabel(fileLabel string) error { +- return nil +-} +- +-func Relabel(path string, fileLabel string, shared bool) error { +- return nil +-} +- +-func GetPidLabel(pid int) (string, error) { +- return "", nil +-} +- +-func Init() { +-} +- +-func ReserveLabel(label string) error { +- return nil +-} +- +-func UnreserveLabel(label string) error { +- return nil +-} +- +-// DupSecOpt takes a process label and returns security options that +-// can be used to set duplicate labels on future container processes +-func DupSecOpt(src string) []string { +- return nil +-} +- +-// DisableSecOpt returns a security opt that can disable labeling +-// support for future container processes +-func DisableSecOpt() []string { +- return nil +-} +- +-// Validate checks that the label does not include unexpected options +-func Validate(label string) error { +- return nil +-} +- +-// RelabelNeeded checks whether the user requested a relabel +-func RelabelNeeded(label string) bool { +- return false +-} +- +-// IsShared checks that the label includes a "shared" mark +-func IsShared(label string) bool { +- return false +-} +diff --git a/libcontainer/label/label_selinux.go b/libcontainer/label/label_selinux.go +deleted file mode 100644 +index 058c922..0000000 +--- a/libcontainer/label/label_selinux.go ++++ /dev/null +@@ -1,204 +0,0 @@ +-// +build selinux,linux +- +-package label +- +-import ( +- "fmt" +- "strings" +- +- "github.com/opencontainers/runc/libcontainer/selinux" +-) +- +-// Valid Label Options +-var validOptions = map[string]bool{ +- "disable": true, +- "type": true, +- "user": true, +- "role": true, +- "level": true, +-} +- +-var ErrIncompatibleLabel = fmt.Errorf("Bad SELinux option z and Z can not be used together") +- +-// InitLabels returns the process label and file labels to be used within +-// the container. A list of options can be passed into this function to alter +-// the labels. The labels returned will include a random MCS String, that is +-// guaranteed to be unique. +-func InitLabels(options []string) (string, string, error) { +- if !selinux.SelinuxEnabled() { +- return "", "", nil +- } +- processLabel, mountLabel := selinux.GetLxcContexts() +- if processLabel != "" { +- pcon := selinux.NewContext(processLabel) +- mcon := selinux.NewContext(mountLabel) +- for _, opt := range options { +- if opt == "disable" { +- return "", "", nil +- } +- if i := strings.Index(opt, ":"); i == -1 { +- return "", "", fmt.Errorf("Bad label option %q, valid options 'disable' or \n'user, role, level, type' followed by ':' and a value", opt) +- } +- con := strings.SplitN(opt, ":", 2) +- if !validOptions[con[0]] { +- return "", "", fmt.Errorf("Bad label option %q, valid options 'disable, user, role, level, type'", con[0]) +- +- } +- pcon[con[0]] = con[1] +- if con[0] == "level" || con[0] == "user" { +- mcon[con[0]] = con[1] +- } +- } +- processLabel = pcon.Get() +- mountLabel = mcon.Get() +- } +- return processLabel, mountLabel, nil +-} +- +-func GetROMountLabel() string { +- return selinux.GetROFileLabel() +-} +- +-// DEPRECATED: The GenLabels function is only to be used during the transition to the official API. +-func GenLabels(options string) (string, string, error) { +- return InitLabels(strings.Fields(options)) +-} +- +-// FormatMountLabel returns a string to be used by the mount command. +-// The format of this string will be used to alter the labeling of the mountpoint. +-// The string returned is suitable to be used as the options field of the mount command. +-// If you need to have additional mount point options, you can pass them in as +-// the first parameter. Second parameter is the label that you wish to apply +-// to all content in the mount point. +-func FormatMountLabel(src, mountLabel string) string { +- if mountLabel != "" { +- switch src { +- case "": +- src = fmt.Sprintf("context=%q", mountLabel) +- default: +- src = fmt.Sprintf("%s,context=%q", src, mountLabel) +- } +- } +- return src +-} +- +-// SetProcessLabel takes a process label and tells the kernel to assign the +-// label to the next program executed by the current process. +-func SetProcessLabel(processLabel string) error { +- if processLabel == "" { +- return nil +- } +- return selinux.Setexeccon(processLabel) +-} +- +-// GetProcessLabel returns the process label that the kernel will assign +-// to the next program executed by the current process. If "" is returned +-// this indicates that the default labeling will happen for the process. +-func GetProcessLabel() (string, error) { +- return selinux.Getexeccon() +-} +- +-// GetFileLabel returns the label for specified path +-func GetFileLabel(path string) (string, error) { +- return selinux.Getfilecon(path) +-} +- +-// SetFileLabel modifies the "path" label to the specified file label +-func SetFileLabel(path string, fileLabel string) error { +- if selinux.SelinuxEnabled() && fileLabel != "" { +- return selinux.Setfilecon(path, fileLabel) +- } +- return nil +-} +- +-// SetFileCreateLabel tells the kernel the label for all files to be created +-func SetFileCreateLabel(fileLabel string) error { +- if selinux.SelinuxEnabled() { +- return selinux.Setfscreatecon(fileLabel) +- } +- return nil +-} +- +-// Relabel changes the label of path to the filelabel string. +-// It changes the MCS label to s0 if shared is true. +-// This will allow all containers to share the content. +-func Relabel(path string, fileLabel string, shared bool) error { +- if !selinux.SelinuxEnabled() { +- return nil +- } +- +- if fileLabel == "" { +- return nil +- } +- +- exclude_paths := map[string]bool{"/": true, "/usr": true, "/etc": true} +- if exclude_paths[path] { +- return fmt.Errorf("SELinux relabeling of %s is not allowed", path) +- } +- +- if shared { +- c := selinux.NewContext(fileLabel) +- c["level"] = "s0" +- fileLabel = c.Get() +- } +- if err := selinux.Chcon(path, fileLabel, true); err != nil { +- return err +- } +- return nil +-} +- +-// GetPidLabel will return the label of the process running with the specified pid +-func GetPidLabel(pid int) (string, error) { +- return selinux.Getpidcon(pid) +-} +- +-// Init initialises the labeling system +-func Init() { +- selinux.SelinuxEnabled() +-} +- +-// ReserveLabel will record the fact that the MCS label has already been used. +-// This will prevent InitLabels from using the MCS label in a newly created +-// container +-func ReserveLabel(label string) error { +- selinux.ReserveLabel(label) +- return nil +-} +- +-// UnreserveLabel will remove the reservation of the MCS label. +-// This will allow InitLabels to use the MCS label in a newly created +-// containers +-func UnreserveLabel(label string) error { +- selinux.FreeLxcContexts(label) +- return nil +-} +- +-// DupSecOpt takes a process label and returns security options that +-// can be used to set duplicate labels on future container processes +-func DupSecOpt(src string) []string { +- return selinux.DupSecOpt(src) +-} +- +-// DisableSecOpt returns a security opt that can disable labeling +-// support for future container processes +-func DisableSecOpt() []string { +- return selinux.DisableSecOpt() +-} +- +-// Validate checks that the label does not include unexpected options +-func Validate(label string) error { +- if strings.Contains(label, "z") && strings.Contains(label, "Z") { +- return ErrIncompatibleLabel +- } +- return nil +-} +- +-// RelabelNeeded checks whether the user requested a relabel +-func RelabelNeeded(label string) bool { +- return strings.Contains(label, "z") || strings.Contains(label, "Z") +-} +- +-// IsShared checks that the label includes a "shared" mark +-func IsShared(label string) bool { +- return strings.Contains(label, "z") +-} +diff --git a/libcontainer/label/label_selinux_test.go b/libcontainer/label/label_selinux_test.go +deleted file mode 100644 +index 8956a70..0000000 +--- a/libcontainer/label/label_selinux_test.go ++++ /dev/null +@@ -1,148 +0,0 @@ +-// +build selinux,linux +- +-package label +- +-import ( +- "os" +- "strings" +- "testing" +- +- "github.com/opencontainers/runc/libcontainer/selinux" +-) +- +-func TestInit(t *testing.T) { +- if selinux.SelinuxEnabled() { +- var testNull []string +- plabel, mlabel, err := InitLabels(testNull) +- if err != nil { +- t.Log("InitLabels Failed") +- t.Fatal(err) +- } +- testDisabled := []string{"disable"} +- roMountLabel := GetROMountLabel() +- if roMountLabel == "" { +- t.Errorf("GetROMountLabel Failed") +- } +- plabel, mlabel, err = InitLabels(testDisabled) +- if err != nil { +- t.Log("InitLabels Disabled Failed") +- t.Fatal(err) +- } +- if plabel != "" { +- t.Log("InitLabels Disabled Failed") +- t.FailNow() +- } +- testUser := []string{"user:user_u", "role:user_r", "type:user_t", "level:s0:c1,c15"} +- plabel, mlabel, err = InitLabels(testUser) +- if err != nil { +- t.Log("InitLabels User Failed") +- t.Fatal(err) +- } +- if plabel != "user_u:user_r:user_t:s0:c1,c15" || mlabel != "user_u:object_r:svirt_sandbox_file_t:s0:c1,c15" { +- t.Log("InitLabels User Match Failed") +- t.Log(plabel, mlabel) +- t.Fatal(err) +- } +- +- testBadData := []string{"user", "role:user_r", "type:user_t", "level:s0:c1,c15"} +- if _, _, err = InitLabels(testBadData); err == nil { +- t.Log("InitLabels Bad Failed") +- t.Fatal(err) +- } +- } +-} +-func TestDuplicateLabel(t *testing.T) { +- secopt := DupSecOpt("system_u:system_r:svirt_lxc_net_t:s0:c1,c2") +- t.Log(secopt) +- for _, opt := range secopt { +- parts := strings.SplitN(opt, "=", 2) +- if len(parts) != 2 || parts[0] != "label" { +- t.Errorf("Invalid DupSecOpt return value") +- continue +- } +- con := strings.SplitN(parts[1], ":", 2) +- if con[0] == "user" { +- if con[1] != "system_u" { +- t.Errorf("DupSecOpt Failed user incorrect") +- } +- continue +- } +- if con[0] == "role" { +- if con[1] != "system_r" { +- t.Errorf("DupSecOpt Failed role incorrect") +- } +- continue +- } +- if con[0] == "type" { +- if con[1] != "svirt_lxc_net_t" { +- t.Errorf("DupSecOpt Failed type incorrect") +- } +- continue +- } +- if con[0] == "level" { +- if con[1] != "s0:c1,c2" { +- t.Errorf("DupSecOpt Failed level incorrect") +- } +- continue +- } +- t.Errorf("DupSecOpt Failed invalid field %q", con[0]) +- } +- secopt = DisableSecOpt() +- if secopt[0] != "label=disable" { +- t.Errorf("DisableSecOpt Failed level incorrect") +- } +-} +-func TestRelabel(t *testing.T) { +- testdir := "/tmp/test" +- if err := os.Mkdir(testdir, 0755); err != nil { +- t.Fatal(err) +- } +- defer os.RemoveAll(testdir) +- label := "system_u:object_r:svirt_sandbox_file_t:s0:c1,c2" +- if err := Relabel(testdir, "", true); err != nil { +- t.Fatalf("Relabel with no label failed: %v", err) +- } +- if err := Relabel(testdir, label, true); err != nil { +- t.Fatalf("Relabel shared failed: %v", err) +- } +- if err := Relabel(testdir, label, false); err != nil { +- t.Fatalf("Relabel unshared failed: %v", err) +- } +- if err := Relabel("/etc", label, false); err == nil { +- t.Fatalf("Relabel /etc succeeded") +- } +- if err := Relabel("/", label, false); err == nil { +- t.Fatalf("Relabel / succeeded") +- } +- if err := Relabel("/usr", label, false); err == nil { +- t.Fatalf("Relabel /usr succeeded") +- } +-} +- +-func TestValidate(t *testing.T) { +- if err := Validate("zZ"); err != ErrIncompatibleLabel { +- t.Fatalf("Expected incompatible error, got %v", err) +- } +- if err := Validate("Z"); err != nil { +- t.Fatal(err) +- } +- if err := Validate("z"); err != nil { +- t.Fatal(err) +- } +- if err := Validate(""); err != nil { +- t.Fatal(err) +- } +-} +- +-func TestIsShared(t *testing.T) { +- if shared := IsShared("Z"); shared { +- t.Fatalf("Expected label `Z` to not be shared, got %v", shared) +- } +- if shared := IsShared("z"); !shared { +- t.Fatalf("Expected label `z` to be shared, got %v", shared) +- } +- if shared := IsShared("Zz"); !shared { +- t.Fatalf("Expected label `Zz` to be shared, got %v", shared) +- } +- +-} +diff --git a/libcontainer/rootfs_linux.go b/libcontainer/rootfs_linux.go +index 2635fd6..1045a45 100644 +--- a/libcontainer/rootfs_linux.go ++++ b/libcontainer/rootfs_linux.go +@@ -19,9 +19,9 @@ import ( + "github.com/mrunalp/fileutils" + "github.com/opencontainers/runc/libcontainer/cgroups" + "github.com/opencontainers/runc/libcontainer/configs" +- "github.com/opencontainers/runc/libcontainer/label" + "github.com/opencontainers/runc/libcontainer/system" + libcontainerUtils "github.com/opencontainers/runc/libcontainer/utils" ++ "github.com/opencontainers/selinux/go-selinux/label" + ) + + const defaultMountFlags = syscall.MS_NOEXEC | syscall.MS_NOSUID | syscall.MS_NODEV +diff --git a/libcontainer/selinux/selinux.go b/libcontainer/selinux/selinux.go +deleted file mode 100644 +index 5bd028b..0000000 +--- a/libcontainer/selinux/selinux.go ++++ /dev/null +@@ -1,549 +0,0 @@ +-// +build linux +- +-package selinux +- +-import ( +- "bufio" +- "crypto/rand" +- "encoding/binary" +- "fmt" +- "io" +- "os" +- "path/filepath" +- "regexp" +- "strconv" +- "strings" +- "sync" +- "syscall" +- +- "github.com/opencontainers/runc/libcontainer/system" +-) +- +-const ( +- Enforcing = 1 +- Permissive = 0 +- Disabled = -1 +- selinuxDir = "/etc/selinux/" +- selinuxConfig = selinuxDir + "config" +- selinuxTypeTag = "SELINUXTYPE" +- selinuxTag = "SELINUX" +- selinuxPath = "/sys/fs/selinux" +- xattrNameSelinux = "security.selinux" +- stRdOnly = 0x01 +-) +- +-type selinuxState struct { +- enabledSet bool +- enabled bool +- selinuxfsSet bool +- selinuxfs string +- mcsList map[string]bool +- sync.Mutex +-} +- +-var ( +- assignRegex = regexp.MustCompile(`^([^=]+)=(.*)$`) +- state = selinuxState{ +- mcsList: make(map[string]bool), +- } +-) +- +-type SELinuxContext map[string]string +- +-func (s *selinuxState) setEnable(enabled bool) bool { +- s.Lock() +- defer s.Unlock() +- s.enabledSet = true +- s.enabled = enabled +- return s.enabled +-} +- +-func (s *selinuxState) getEnabled() bool { +- s.Lock() +- enabled := s.enabled +- enabledSet := s.enabledSet +- s.Unlock() +- if enabledSet { +- return enabled +- } +- +- enabled = false +- if fs := getSelinuxMountPoint(); fs != "" { +- if con, _ := Getcon(); con != "kernel" { +- enabled = true +- } +- } +- return s.setEnable(enabled) +-} +- +-// SetDisabled disables selinux support for the package +-func SetDisabled() { +- state.setEnable(false) +-} +- +-func (s *selinuxState) setSELinuxfs(selinuxfs string) string { +- s.Lock() +- defer s.Unlock() +- s.selinuxfsSet = true +- s.selinuxfs = selinuxfs +- return s.selinuxfs +-} +- +-func (s *selinuxState) getSELinuxfs() string { +- s.Lock() +- selinuxfs := s.selinuxfs +- selinuxfsSet := s.selinuxfsSet +- s.Unlock() +- if selinuxfsSet { +- return selinuxfs +- } +- +- selinuxfs = "" +- f, err := os.Open("/proc/self/mountinfo") +- if err != nil { +- return selinuxfs +- } +- defer f.Close() +- +- scanner := bufio.NewScanner(f) +- for scanner.Scan() { +- txt := scanner.Text() +- // Safe as mountinfo encodes mountpoints with spaces as \040. +- sepIdx := strings.Index(txt, " - ") +- if sepIdx == -1 { +- continue +- } +- if !strings.Contains(txt[sepIdx:], "selinuxfs") { +- continue +- } +- fields := strings.Split(txt, " ") +- if len(fields) < 5 { +- continue +- } +- selinuxfs = fields[4] +- break +- } +- +- if selinuxfs != "" { +- var buf syscall.Statfs_t +- syscall.Statfs(selinuxfs, &buf) +- if (buf.Flags & stRdOnly) == 1 { +- selinuxfs = "" +- } +- } +- return s.setSELinuxfs(selinuxfs) +-} +- +-// getSelinuxMountPoint returns the path to the mountpoint of an selinuxfs +-// filesystem or an empty string if no mountpoint is found. Selinuxfs is +-// a proc-like pseudo-filesystem that exposes the selinux policy API to +-// processes. The existence of an selinuxfs mount is used to determine +-// whether selinux is currently enabled or not. +-func getSelinuxMountPoint() string { +- return state.getSELinuxfs() +-} +- +-// SelinuxEnabled returns whether selinux is currently enabled. +-func SelinuxEnabled() bool { +- return state.getEnabled() +-} +- +-func readConfig(target string) (value string) { +- var ( +- val, key string +- bufin *bufio.Reader +- ) +- +- in, err := os.Open(selinuxConfig) +- if err != nil { +- return "" +- } +- defer in.Close() +- +- bufin = bufio.NewReader(in) +- +- for done := false; !done; { +- var line string +- if line, err = bufin.ReadString('\n'); err != nil { +- if err != io.EOF { +- return "" +- } +- done = true +- } +- line = strings.TrimSpace(line) +- if len(line) == 0 { +- // Skip blank lines +- continue +- } +- if line[0] == ';' || line[0] == '#' { +- // Skip comments +- continue +- } +- if groups := assignRegex.FindStringSubmatch(line); groups != nil { +- key, val = strings.TrimSpace(groups[1]), strings.TrimSpace(groups[2]) +- if key == target { +- return strings.Trim(val, "\"") +- } +- } +- } +- return "" +-} +- +-func getSELinuxPolicyRoot() string { +- return selinuxDir + readConfig(selinuxTypeTag) +-} +- +-func readCon(name string) (string, error) { +- var val string +- +- in, err := os.Open(name) +- if err != nil { +- return "", err +- } +- defer in.Close() +- +- _, err = fmt.Fscanf(in, "%s", &val) +- return val, err +-} +- +-// Setfilecon sets the SELinux label for this path or returns an error. +-func Setfilecon(path string, scon string) error { +- return system.Lsetxattr(path, xattrNameSelinux, []byte(scon), 0) +-} +- +-// Getfilecon returns the SELinux label for this path or returns an error. +-func Getfilecon(path string) (string, error) { +- con, err := system.Lgetxattr(path, xattrNameSelinux) +- if err != nil { +- return "", err +- } +- // Trim the NUL byte at the end of the byte buffer, if present. +- if len(con) > 0 && con[len(con)-1] == '\x00' { +- con = con[:len(con)-1] +- } +- return string(con), nil +-} +- +-func Setfscreatecon(scon string) error { +- return writeCon(fmt.Sprintf("/proc/self/task/%d/attr/fscreate", syscall.Gettid()), scon) +-} +- +-func Getfscreatecon() (string, error) { +- return readCon(fmt.Sprintf("/proc/self/task/%d/attr/fscreate", syscall.Gettid())) +-} +- +-// Getcon returns the SELinux label of the current process thread, or an error. +-func Getcon() (string, error) { +- return readCon(fmt.Sprintf("/proc/self/task/%d/attr/current", syscall.Gettid())) +-} +- +-// Getpidcon returns the SELinux label of the given pid, or an error. +-func Getpidcon(pid int) (string, error) { +- return readCon(fmt.Sprintf("/proc/%d/attr/current", pid)) +-} +- +-func Getexeccon() (string, error) { +- return readCon(fmt.Sprintf("/proc/self/task/%d/attr/exec", syscall.Gettid())) +-} +- +-func writeCon(name string, val string) error { +- out, err := os.OpenFile(name, os.O_WRONLY, 0) +- if err != nil { +- return err +- } +- defer out.Close() +- +- if val != "" { +- _, err = out.Write([]byte(val)) +- } else { +- _, err = out.Write(nil) +- } +- return err +-} +- +-func Setexeccon(scon string) error { +- return writeCon(fmt.Sprintf("/proc/self/task/%d/attr/exec", syscall.Gettid()), scon) +-} +- +-func (c SELinuxContext) Get() string { +- return fmt.Sprintf("%s:%s:%s:%s", c["user"], c["role"], c["type"], c["level"]) +-} +- +-func NewContext(scon string) SELinuxContext { +- c := make(SELinuxContext) +- +- if len(scon) != 0 { +- con := strings.SplitN(scon, ":", 4) +- c["user"] = con[0] +- c["role"] = con[1] +- c["type"] = con[2] +- c["level"] = con[3] +- } +- return c +-} +- +-func ReserveLabel(scon string) { +- if len(scon) != 0 { +- con := strings.SplitN(scon, ":", 4) +- mcsAdd(con[3]) +- } +-} +- +-func selinuxEnforcePath() string { +- return fmt.Sprintf("%s/enforce", selinuxPath) +-} +- +-func SelinuxGetEnforce() int { +- var enforce int +- +- enforceS, err := readCon(selinuxEnforcePath()) +- if err != nil { +- return -1 +- } +- +- enforce, err = strconv.Atoi(string(enforceS)) +- if err != nil { +- return -1 +- } +- return enforce +-} +- +-func SelinuxSetEnforce(mode int) error { +- return writeCon(selinuxEnforcePath(), fmt.Sprintf("%d", mode)) +-} +- +-func SelinuxGetEnforceMode() int { +- switch readConfig(selinuxTag) { +- case "enforcing": +- return Enforcing +- case "permissive": +- return Permissive +- } +- return Disabled +-} +- +-func mcsAdd(mcs string) error { +- state.Lock() +- defer state.Unlock() +- if state.mcsList[mcs] { +- return fmt.Errorf("MCS Label already exists") +- } +- state.mcsList[mcs] = true +- return nil +-} +- +-func mcsDelete(mcs string) { +- state.Lock() +- defer state.Unlock() +- state.mcsList[mcs] = false +-} +- +-func IntToMcs(id int, catRange uint32) string { +- var ( +- SETSIZE = int(catRange) +- TIER = SETSIZE +- ORD = id +- ) +- +- if id < 1 || id > 523776 { +- return "" +- } +- +- for ORD > TIER { +- ORD = ORD - TIER +- TIER-- +- } +- TIER = SETSIZE - TIER +- ORD = ORD + TIER +- return fmt.Sprintf("s0:c%d,c%d", TIER, ORD) +-} +- +-func uniqMcs(catRange uint32) string { +- var ( +- n uint32 +- c1, c2 uint32 +- mcs string +- ) +- +- for { +- binary.Read(rand.Reader, binary.LittleEndian, &n) +- c1 = n % catRange +- binary.Read(rand.Reader, binary.LittleEndian, &n) +- c2 = n % catRange +- if c1 == c2 { +- continue +- } else { +- if c1 > c2 { +- c1, c2 = c2, c1 +- } +- } +- mcs = fmt.Sprintf("s0:c%d,c%d", c1, c2) +- if err := mcsAdd(mcs); err != nil { +- continue +- } +- break +- } +- return mcs +-} +- +-func FreeLxcContexts(scon string) { +- if len(scon) != 0 { +- con := strings.SplitN(scon, ":", 4) +- mcsDelete(con[3]) +- } +-} +- +-var roFileLabel string +- +-func GetROFileLabel() (fileLabel string) { +- return roFileLabel +-} +- +-func GetLxcContexts() (processLabel string, fileLabel string) { +- var ( +- val, key string +- bufin *bufio.Reader +- ) +- +- if !SelinuxEnabled() { +- return "", "" +- } +- lxcPath := fmt.Sprintf("%s/contexts/lxc_contexts", getSELinuxPolicyRoot()) +- in, err := os.Open(lxcPath) +- if err != nil { +- return "", "" +- } +- defer in.Close() +- +- bufin = bufio.NewReader(in) +- +- for done := false; !done; { +- var line string +- if line, err = bufin.ReadString('\n'); err != nil { +- if err == io.EOF { +- done = true +- } else { +- goto exit +- } +- } +- line = strings.TrimSpace(line) +- if len(line) == 0 { +- // Skip blank lines +- continue +- } +- if line[0] == ';' || line[0] == '#' { +- // Skip comments +- continue +- } +- if groups := assignRegex.FindStringSubmatch(line); groups != nil { +- key, val = strings.TrimSpace(groups[1]), strings.TrimSpace(groups[2]) +- if key == "process" { +- processLabel = strings.Trim(val, "\"") +- } +- if key == "file" { +- fileLabel = strings.Trim(val, "\"") +- } +- if key == "ro_file" { +- roFileLabel = strings.Trim(val, "\"") +- } +- } +- } +- +- if processLabel == "" || fileLabel == "" { +- return "", "" +- } +- +- if roFileLabel == "" { +- roFileLabel = fileLabel +- } +-exit: +- // mcs := IntToMcs(os.Getpid(), 1024) +- mcs := uniqMcs(1024) +- scon := NewContext(processLabel) +- scon["level"] = mcs +- processLabel = scon.Get() +- scon = NewContext(fileLabel) +- scon["level"] = mcs +- fileLabel = scon.Get() +- return processLabel, fileLabel +-} +- +-func SecurityCheckContext(val string) error { +- return writeCon(fmt.Sprintf("%s.context", selinuxPath), val) +-} +- +-func CopyLevel(src, dest string) (string, error) { +- if src == "" { +- return "", nil +- } +- if err := SecurityCheckContext(src); err != nil { +- return "", err +- } +- if err := SecurityCheckContext(dest); err != nil { +- return "", err +- } +- scon := NewContext(src) +- tcon := NewContext(dest) +- mcsDelete(tcon["level"]) +- mcsAdd(scon["level"]) +- tcon["level"] = scon["level"] +- return tcon.Get(), nil +-} +- +-// Prevent users from relabing system files +-func badPrefix(fpath string) error { +- var badprefixes = []string{"/usr"} +- +- for _, prefix := range badprefixes { +- if fpath == prefix || strings.HasPrefix(fpath, fmt.Sprintf("%s/", prefix)) { +- return fmt.Errorf("relabeling content in %s is not allowed", prefix) +- } +- } +- return nil +-} +- +-// Chcon changes the fpath file object to the SELinux label scon. +-// If the fpath is a directory and recurse is true Chcon will walk the +-// directory tree setting the label +-func Chcon(fpath string, scon string, recurse bool) error { +- if scon == "" { +- return nil +- } +- if err := badPrefix(fpath); err != nil { +- return err +- } +- callback := func(p string, info os.FileInfo, err error) error { +- return Setfilecon(p, scon) +- } +- +- if recurse { +- return filepath.Walk(fpath, callback) +- } +- +- return Setfilecon(fpath, scon) +-} +- +-// DupSecOpt takes an SELinux process label and returns security options that +-// can will set the SELinux Type and Level for future container processes +-func DupSecOpt(src string) []string { +- if src == "" { +- return nil +- } +- con := NewContext(src) +- if con["user"] == "" || +- con["role"] == "" || +- con["type"] == "" || +- con["level"] == "" { +- return nil +- } +- return []string{"user:" + con["user"], +- "role:" + con["role"], +- "type:" + con["type"], +- "level:" + con["level"]} +-} +- +-// DisableSecOpt returns a security opt that can be used to disabling SELinux +-// labeling support for future container processes +-func DisableSecOpt() []string { +- return []string{"disable"} +-} +diff --git a/libcontainer/selinux/selinux_test.go b/libcontainer/selinux/selinux_test.go +deleted file mode 100644 +index d67284e..0000000 +--- a/libcontainer/selinux/selinux_test.go ++++ /dev/null +@@ -1,85 +0,0 @@ +-// +build linux,selinux +- +-package selinux_test +- +-import ( +- "os" +- "testing" +- +- "github.com/opencontainers/runc/libcontainer/selinux" +-) +- +-func TestSetfilecon(t *testing.T) { +- if selinux.SelinuxEnabled() { +- tmp := "selinux_test" +- con := "system_u:object_r:bin_t:s0" +- out, _ := os.OpenFile(tmp, os.O_WRONLY|os.O_CREATE, 0) +- out.Close() +- err := selinux.Setfilecon(tmp, con) +- if err != nil { +- t.Log("Setfilecon failed") +- t.Fatal(err) +- } +- filecon, err := selinux.Getfilecon(tmp) +- if err != nil { +- t.Log("Getfilecon failed") +- t.Fatal(err) +- } +- if con != filecon { +- t.Fatal("Getfilecon failed, returned %s expected %s", filecon, con) +- } +- +- os.Remove(tmp) +- } +-} +- +-func TestSELinux(t *testing.T) { +- var ( +- err error +- plabel, flabel string +- ) +- +- if selinux.SelinuxEnabled() { +- t.Log("Enabled") +- plabel, flabel = selinux.GetLxcContexts() +- t.Log(plabel) +- t.Log(flabel) +- selinux.FreeLxcContexts(plabel) +- plabel, flabel = selinux.GetLxcContexts() +- t.Log(plabel) +- t.Log(flabel) +- selinux.FreeLxcContexts(plabel) +- t.Log("getenforce ", selinux.SelinuxGetEnforce()) +- mode := selinux.SelinuxGetEnforceMode() +- t.Log("getenforcemode ", mode) +- +- defer selinux.SelinuxSetEnforce(mode) +- if err := selinux.SelinuxSetEnforce(selinux.Enforcing); err != nil { +- t.Fatalf("enforcing selinux failed: %v", err) +- } +- if err := selinux.SelinuxSetEnforce(selinux.Permissive); err != nil { +- t.Fatalf("setting selinux mode to permissive failed: %v", err) +- } +- selinux.SelinuxSetEnforce(mode) +- +- pid := os.Getpid() +- t.Logf("PID:%d MCS:%s\n", pid, selinux.IntToMcs(pid, 1023)) +- err = selinux.Setfscreatecon("unconfined_u:unconfined_r:unconfined_t:s0") +- if err == nil { +- t.Log(selinux.Getfscreatecon()) +- } else { +- t.Log("setfscreatecon failed", err) +- t.Fatal(err) +- } +- err = selinux.Setfscreatecon("") +- if err == nil { +- t.Log(selinux.Getfscreatecon()) +- } else { +- t.Log("setfscreatecon failed", err) +- t.Fatal(err) +- } +- t.Log(selinux.Getpidcon(1)) +- } else { +- t.Log("Disabled") +- } +-} +diff --git a/libcontainer/setns_init_linux.go b/libcontainer/setns_init_linux.go +index f6e8998..48cc0ae 100644 +--- a/libcontainer/setns_init_linux.go ++++ b/libcontainer/setns_init_linux.go +@@ -8,9 +8,9 @@ import ( + + "github.com/opencontainers/runc/libcontainer/apparmor" + "github.com/opencontainers/runc/libcontainer/keys" +- "github.com/opencontainers/runc/libcontainer/label" + "github.com/opencontainers/runc/libcontainer/seccomp" + "github.com/opencontainers/runc/libcontainer/system" ++ "github.com/opencontainers/selinux/go-selinux/label" + ) + + // linuxSetnsInit performs the container's initialization for running a new process +diff --git a/libcontainer/standard_init_linux.go b/libcontainer/standard_init_linux.go +index d9cc5e5..ee6f19a 100644 +--- a/libcontainer/standard_init_linux.go ++++ b/libcontainer/standard_init_linux.go +@@ -11,9 +11,9 @@ import ( + "github.com/opencontainers/runc/libcontainer/apparmor" + "github.com/opencontainers/runc/libcontainer/configs" + "github.com/opencontainers/runc/libcontainer/keys" +- "github.com/opencontainers/runc/libcontainer/label" + "github.com/opencontainers/runc/libcontainer/seccomp" + "github.com/opencontainers/runc/libcontainer/system" ++ "github.com/opencontainers/selinux/go-selinux/label" + ) + + type linuxStandardInit struct { +diff --git a/vendor.conf b/vendor.conf +index e3a29d2..75dfca4 100644 +--- a/vendor.conf ++++ b/vendor.conf +@@ -7,6 +7,7 @@ github.com/godbus/dbus c7fdd8b5cd55e87b4e1f4e372cdb1db61dd6c66f + github.com/golang/protobuf/proto f7137ae6b19afbfd61a94b746fda3b3fe0491874 + github.com/mrunalp/fileutils ed869b029674c0e9ce4c0dfa781405c2d9946d08 + github.com/opencontainers/runtime-spec/specs-go 035da1dca3dfbb00d752eb58b0b158d6129f3776 ++github.com/opencontainers/selinux ba1aefe8057f1d0cfb8e88d0ec1dc85925ef987d + github.com/seccomp/libseccomp-golang 32f571b70023028bd57d9288c20efbcb237f3ce0 + github.com/syndtr/gocapability/capability e7cb7fa329f456b3855136a2642b197bad7366ba + github.com/urfave/cli d53eb991652b1d438abdd34ce4bfa3ef1539108e +diff --git a/vendor/github.com/opencontainers/selinux/LICENSE b/vendor/github.com/opencontainers/selinux/LICENSE +new file mode 100644 +index 0000000..8dada3e +--- /dev/null ++++ b/vendor/github.com/opencontainers/selinux/LICENSE +@@ -0,0 +1,201 @@ ++ Apache License ++ Version 2.0, January 2004 ++ http://www.apache.org/licenses/ ++ ++ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION ++ ++ 1. Definitions. ++ ++ "License" shall mean the terms and conditions for use, reproduction, ++ and distribution as defined by Sections 1 through 9 of this document. ++ ++ "Licensor" shall mean the copyright owner or entity authorized by ++ the copyright owner that is granting the License. ++ ++ "Legal Entity" shall mean the union of the acting entity and all ++ other entities that control, are controlled by, or are under common ++ control with that entity. For the purposes of this definition, ++ "control" means (i) the power, direct or indirect, to cause the ++ direction or management of such entity, whether by contract or ++ otherwise, or (ii) ownership of fifty percent (50%) or more of the ++ outstanding shares, or (iii) beneficial ownership of such entity. ++ ++ "You" (or "Your") shall mean an individual or Legal Entity ++ exercising permissions granted by this License. ++ ++ "Source" form shall mean the preferred form for making modifications, ++ including but not limited to software source code, documentation ++ source, and configuration files. ++ ++ "Object" form shall mean any form resulting from mechanical ++ transformation or translation of a Source form, including but ++ not limited to compiled object code, generated documentation, ++ and conversions to other media types. ++ ++ "Work" shall mean the work of authorship, whether in Source or ++ Object form, made available under the License, as indicated by a ++ copyright notice that is included in or attached to the work ++ (an example is provided in the Appendix below). ++ ++ "Derivative Works" shall mean any work, whether in Source or Object ++ form, that is based on (or derived from) the Work and for which the ++ editorial revisions, annotations, elaborations, or other modifications ++ represent, as a whole, an original work of authorship. For the purposes ++ of this License, Derivative Works shall not include works that remain ++ separable from, or merely link (or bind by name) to the interfaces of, ++ the Work and Derivative Works thereof. ++ ++ "Contribution" shall mean any work of authorship, including ++ the original version of the Work and any modifications or additions ++ to that Work or Derivative Works thereof, that is intentionally ++ submitted to Licensor for inclusion in the Work by the copyright owner ++ or by an individual or Legal Entity authorized to submit on behalf of ++ the copyright owner. For the purposes of this definition, "submitted" ++ means any form of electronic, verbal, or written communication sent ++ to the Licensor or its representatives, including but not limited to ++ communication on electronic mailing lists, source code control systems, ++ and issue tracking systems that are managed by, or on behalf of, the ++ Licensor for the purpose of discussing and improving the Work, but ++ excluding communication that is conspicuously marked or otherwise ++ designated in writing by the copyright owner as "Not a Contribution." ++ ++ "Contributor" shall mean Licensor and any individual or Legal Entity ++ on behalf of whom a Contribution has been received by Licensor and ++ subsequently incorporated within the Work. ++ ++ 2. Grant of Copyright License. Subject to the terms and conditions of ++ this License, each Contributor hereby grants to You a perpetual, ++ worldwide, non-exclusive, no-charge, royalty-free, irrevocable ++ copyright license to reproduce, prepare Derivative Works of, ++ publicly display, publicly perform, sublicense, and distribute the ++ Work and such Derivative Works in Source or Object form. ++ ++ 3. Grant of Patent License. Subject to the terms and conditions of ++ this License, each Contributor hereby grants to You a perpetual, ++ worldwide, non-exclusive, no-charge, royalty-free, irrevocable ++ (except as stated in this section) patent license to make, have made, ++ use, offer to sell, sell, import, and otherwise transfer the Work, ++ where such license applies only to those patent claims licensable ++ by such Contributor that are necessarily infringed by their ++ Contribution(s) alone or by combination of their Contribution(s) ++ with the Work to which such Contribution(s) was submitted. If You ++ institute patent litigation against any entity (including a ++ cross-claim or counterclaim in a lawsuit) alleging that the Work ++ or a Contribution incorporated within the Work constitutes direct ++ or contributory patent infringement, then any patent licenses ++ granted to You under this License for that Work shall terminate ++ as of the date such litigation is filed. ++ ++ 4. Redistribution. You may reproduce and distribute copies of the ++ Work or Derivative Works thereof in any medium, with or without ++ modifications, and in Source or Object form, provided that You ++ meet the following conditions: ++ ++ (a) You must give any other recipients of the Work or ++ Derivative Works a copy of this License; and ++ ++ (b) You must cause any modified files to carry prominent notices ++ stating that You changed the files; and ++ ++ (c) You must retain, in the Source form of any Derivative Works ++ that You distribute, all copyright, patent, trademark, and ++ attribution notices from the Source form of the Work, ++ excluding those notices that do not pertain to any part of ++ the Derivative Works; and ++ ++ (d) If the Work includes a "NOTICE" text file as part of its ++ distribution, then any Derivative Works that You distribute must ++ include a readable copy of the attribution notices contained ++ within such NOTICE file, excluding those notices that do not ++ pertain to any part of the Derivative Works, in at least one ++ of the following places: within a NOTICE text file distributed ++ as part of the Derivative Works; within the Source form or ++ documentation, if provided along with the Derivative Works; or, ++ within a display generated by the Derivative Works, if and ++ wherever such third-party notices normally appear. The contents ++ of the NOTICE file are for informational purposes only and ++ do not modify the License. You may add Your own attribution ++ notices within Derivative Works that You distribute, alongside ++ or as an addendum to the NOTICE text from the Work, provided ++ that such additional attribution notices cannot be construed ++ as modifying the License. ++ ++ You may add Your own copyright statement to Your modifications and ++ may provide additional or different license terms and conditions ++ for use, reproduction, or distribution of Your modifications, or ++ for any such Derivative Works as a whole, provided Your use, ++ reproduction, and distribution of the Work otherwise complies with ++ the conditions stated in this License. ++ ++ 5. Submission of Contributions. Unless You explicitly state otherwise, ++ any Contribution intentionally submitted for inclusion in the Work ++ by You to the Licensor shall be under the terms and conditions of ++ this License, without any additional terms or conditions. ++ Notwithstanding the above, nothing herein shall supersede or modify ++ the terms of any separate license agreement you may have executed ++ with Licensor regarding such Contributions. ++ ++ 6. Trademarks. This License does not grant permission to use the trade ++ names, trademarks, service marks, or product names of the Licensor, ++ except as required for reasonable and customary use in describing the ++ origin of the Work and reproducing the content of the NOTICE file. ++ ++ 7. Disclaimer of Warranty. Unless required by applicable law or ++ agreed to in writing, Licensor provides the Work (and each ++ Contributor provides its Contributions) on an "AS IS" BASIS, ++ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or ++ implied, including, without limitation, any warranties or conditions ++ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A ++ PARTICULAR PURPOSE. You are solely responsible for determining the ++ appropriateness of using or redistributing the Work and assume any ++ risks associated with Your exercise of permissions under this License. ++ ++ 8. Limitation of Liability. In no event and under no legal theory, ++ whether in tort (including negligence), contract, or otherwise, ++ unless required by applicable law (such as deliberate and grossly ++ negligent acts) or agreed to in writing, shall any Contributor be ++ liable to You for damages, including any direct, indirect, special, ++ incidental, or consequential damages of any character arising as a ++ result of this License or out of the use or inability to use the ++ Work (including but not limited to damages for loss of goodwill, ++ work stoppage, computer failure or malfunction, or any and all ++ other commercial damages or losses), even if such Contributor ++ has been advised of the possibility of such damages. ++ ++ 9. Accepting Warranty or Additional Liability. While redistributing ++ the Work or Derivative Works thereof, You may choose to offer, ++ and charge a fee for, acceptance of support, warranty, indemnity, ++ or other liability obligations and/or rights consistent with this ++ License. However, in accepting such obligations, You may act only ++ on Your own behalf and on Your sole responsibility, not on behalf ++ of any other Contributor, and only if You agree to indemnify, ++ defend, and hold each Contributor harmless for any liability ++ incurred by, or claims asserted against, such Contributor by reason ++ of your accepting any such warranty or additional liability. ++ ++ END OF TERMS AND CONDITIONS ++ ++ APPENDIX: How to apply the Apache License to your work. ++ ++ To apply the Apache License to your work, attach the following ++ boilerplate notice, with the fields enclosed by brackets "{}" ++ replaced with your own identifying information. (Don't include ++ the brackets!) The text should be enclosed in the appropriate ++ comment syntax for the file format. We also recommend that a ++ file or class name and description of purpose be included on the ++ same "printed page" as the copyright notice for easier ++ identification within third-party archives. ++ ++ Copyright {yyyy} {name of copyright owner} ++ ++ Licensed under the Apache License, Version 2.0 (the "License"); ++ you may not use this file except in compliance with the License. ++ You may obtain a copy of the License at ++ ++ http://www.apache.org/licenses/LICENSE-2.0 ++ ++ Unless required by applicable law or agreed to in writing, software ++ distributed under the License is distributed on an "AS IS" BASIS, ++ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++ See the License for the specific language governing permissions and ++ limitations under the License. +diff --git a/vendor/github.com/opencontainers/selinux/README.md b/vendor/github.com/opencontainers/selinux/README.md +new file mode 100644 +index 0000000..043a929 +--- /dev/null ++++ b/vendor/github.com/opencontainers/selinux/README.md +@@ -0,0 +1,7 @@ ++# selinux ++ ++[![GoDoc](https://godoc.org/github.com/opencontainers/selinux?status.svg)](https://godoc.org/github.com/opencontainers/selinux) [![Go Report Card](https://goreportcard.com/badge/github.com/opencontainers/selinux)](https://goreportcard.com/report/github.com/opencontainers/selinux) [![Build Status](https://travis-ci.org/opencontainers/selinux.svg?branch=master)](https://travis-ci.org/opencontainers/selinux) ++ ++Common SELinux package used across the container ecosystem. ++ ++Please see the [godoc](https://godoc.org/github.com/opencontainers/selinux) for more information. +diff --git a/vendor/github.com/opencontainers/selinux/go-selinux/label/label.go b/vendor/github.com/opencontainers/selinux/go-selinux/label/label.go +new file mode 100644 +index 0000000..6cfc5fd +--- /dev/null ++++ b/vendor/github.com/opencontainers/selinux/go-selinux/label/label.go +@@ -0,0 +1,84 @@ ++// +build !selinux !linux ++ ++package label ++ ++// InitLabels returns the process label and file labels to be used within ++// the container. A list of options can be passed into this function to alter ++// the labels. ++func InitLabels(options []string) (string, string, error) { ++ return "", "", nil ++} ++ ++func GetROMountLabel() string { ++ return "" ++} ++ ++func GenLabels(options string) (string, string, error) { ++ return "", "", nil ++} ++ ++func FormatMountLabel(src string, mountLabel string) string { ++ return src ++} ++ ++func SetProcessLabel(processLabel string) error { ++ return nil ++} ++ ++func GetFileLabel(path string) (string, error) { ++ return "", nil ++} ++ ++func SetFileLabel(path string, fileLabel string) error { ++ return nil ++} ++ ++func SetFileCreateLabel(fileLabel string) error { ++ return nil ++} ++ ++func Relabel(path string, fileLabel string, shared bool) error { ++ return nil ++} ++ ++func GetPidLabel(pid int) (string, error) { ++ return "", nil ++} ++ ++func Init() { ++} ++ ++func ReserveLabel(label string) error { ++ return nil ++} ++ ++func ReleaseLabel(label string) error { ++ return nil ++} ++ ++// DupSecOpt takes a process label and returns security options that ++// can be used to set duplicate labels on future container processes ++func DupSecOpt(src string) []string { ++ return nil ++} ++ ++// DisableSecOpt returns a security opt that can disable labeling ++// support for future container processes ++func DisableSecOpt() []string { ++ return nil ++} ++ ++// Validate checks that the label does not include unexpected options ++func Validate(label string) error { ++ return nil ++} ++ ++// RelabelNeeded checks whether the user requested a relabel ++func RelabelNeeded(label string) bool { ++ return false ++} ++ ++// IsShared checks that the label includes a "shared" mark ++func IsShared(label string) bool { ++ return false ++} +diff --git a/vendor/github.com/opencontainers/selinux/go-selinux/label/label_selinux.go b/vendor/github.com/opencontainers/selinux/go-selinux/label/label_selinux.go +new file mode 100644 +index 0000000..569dcf0 +--- /dev/null ++++ b/vendor/github.com/opencontainers/selinux/go-selinux/label/label_selinux.go +@@ -0,0 +1,204 @@ ++// +build selinux,linux ++ ++package label ++ ++import ( ++ "fmt" ++ "strings" ++ ++ "github.com/opencontainers/selinux/go-selinux" ++) ++ ++// Valid Label Options ++var validOptions = map[string]bool{ ++ "disable": true, ++ "type": true, ++ "user": true, ++ "role": true, ++ "level": true, ++} ++ ++var ErrIncompatibleLabel = fmt.Errorf("Bad SELinux option z and Z can not be used together") ++ ++// InitLabels returns the process label and file labels to be used within ++// the container. A list of options can be passed into this function to alter ++// the labels. The labels returned will include a random MCS String, that is ++// guaranteed to be unique. ++func InitLabels(options []string) (string, string, error) { ++ if !selinux.GetEnabled() { ++ return "", "", nil ++ } ++ processLabel, mountLabel := selinux.ContainerLabels() ++ if processLabel != "" { ++ pcon := selinux.NewContext(processLabel) ++ mcon := selinux.NewContext(mountLabel) ++ for _, opt := range options { ++ if opt == "disable" { ++ return "", "", nil ++ } ++ if i := strings.Index(opt, ":"); i == -1 { ++ return "", "", fmt.Errorf("Bad label option %q, valid options 'disable' or \n'user, role, level, type' followed by ':' and a value", opt) ++ } ++ con := strings.SplitN(opt, ":", 2) ++ if !validOptions[con[0]] { ++ return "", "", fmt.Errorf("Bad label option %q, valid options 'disable, user, role, level, type'", con[0]) ++ ++ } ++ pcon[con[0]] = con[1] ++ if con[0] == "level" || con[0] == "user" { ++ mcon[con[0]] = con[1] ++ } ++ } ++ processLabel = pcon.Get() ++ mountLabel = mcon.Get() ++ } ++ return processLabel, mountLabel, nil ++} ++ ++func ROMountLabel() string { ++ return selinux.ROFileLabel() ++} ++ ++// DEPRECATED: The GenLabels function is only to be used during the transition to the official API. ++func GenLabels(options string) (string, string, error) { ++ return InitLabels(strings.Fields(options)) ++} ++ ++// FormatMountLabel returns a string to be used by the mount command. ++// The format of this string will be used to alter the labeling of the mountpoint. ++// The string returned is suitable to be used as the options field of the mount command. ++// If you need to have additional mount point options, you can pass them in as ++// the first parameter. Second parameter is the label that you wish to apply ++// to all content in the mount point. ++func FormatMountLabel(src, mountLabel string) string { ++ if mountLabel != "" { ++ switch src { ++ case "": ++ src = fmt.Sprintf("context=%q", mountLabel) ++ default: ++ src = fmt.Sprintf("%s,context=%q", src, mountLabel) ++ } ++ } ++ return src ++} ++ ++// SetProcessLabel takes a process label and tells the kernel to assign the ++// label to the next program executed by the current process. ++func SetProcessLabel(processLabel string) error { ++ if processLabel == "" { ++ return nil ++ } ++ return selinux.SetExecLabel(processLabel) ++} ++ ++// ProcessLabel returns the process label that the kernel will assign ++// to the next program executed by the current process. If "" is returned ++// this indicates that the default labeling will happen for the process. ++func ProcessLabel() (string, error) { ++ return selinux.ExecLabel() ++} ++ ++// GetFileLabel returns the label for specified path ++func FileLabel(path string) (string, error) { ++ return selinux.FileLabel(path) ++} ++ ++// SetFileLabel modifies the "path" label to the specified file label ++func SetFileLabel(path string, fileLabel string) error { ++ if selinux.GetEnabled() && fileLabel != "" { ++ return selinux.SetFileLabel(path, fileLabel) ++ } ++ return nil ++} ++ ++// SetFileCreateLabel tells the kernel the label for all files to be created ++func SetFileCreateLabel(fileLabel string) error { ++ if selinux.GetEnabled() { ++ return selinux.SetFSCreateLabel(fileLabel) ++ } ++ return nil ++} ++ ++// Relabel changes the label of path to the filelabel string. ++// It changes the MCS label to s0 if shared is true. ++// This will allow all containers to share the content. ++func Relabel(path string, fileLabel string, shared bool) error { ++ if !selinux.GetEnabled() { ++ return nil ++ } ++ ++ if fileLabel == "" { ++ return nil ++ } ++ ++ exclude_paths := map[string]bool{"/": true, "/usr": true, "/etc": true} ++ if exclude_paths[path] { ++ return fmt.Errorf("SELinux relabeling of %s is not allowed", path) ++ } ++ ++ if shared { ++ c := selinux.NewContext(fileLabel) ++ c["level"] = "s0" ++ fileLabel = c.Get() ++ } ++ if err := selinux.Chcon(path, fileLabel, true); err != nil { ++ return err ++ } ++ return nil ++} ++ ++// PidLabel will return the label of the process running with the specified pid ++func PidLabel(pid int) (string, error) { ++ return selinux.PidLabel(pid) ++} ++ ++// Init initialises the labeling system ++func Init() { ++ selinux.GetEnabled() ++} ++ ++// ReserveLabel will record the fact that the MCS label has already been used. ++// This will prevent InitLabels from using the MCS label in a newly created ++// container ++func ReserveLabel(label string) error { ++ selinux.ReserveLabel(label) ++ return nil ++} ++ ++// ReleaseLabel will remove the reservation of the MCS label. ++// This will allow InitLabels to use the MCS label in a newly created ++// containers ++func ReleaseLabel(label string) error { ++ selinux.ReleaseLabel(label) ++ return nil ++} ++ ++// DupSecOpt takes a process label and returns security options that ++// can be used to set duplicate labels on future container processes ++func DupSecOpt(src string) []string { ++ return selinux.DupSecOpt(src) ++} ++ ++// DisableSecOpt returns a security opt that can disable labeling ++// support for future container processes ++func DisableSecOpt() []string { ++ return selinux.DisableSecOpt() ++} ++ ++// Validate checks that the label does not include unexpected options ++func Validate(label string) error { ++ if strings.Contains(label, "z") && strings.Contains(label, "Z") { ++ return ErrIncompatibleLabel ++ } ++ return nil ++} ++ ++// RelabelNeeded checks whether the user requested a relabel ++func RelabelNeeded(label string) bool { ++ return strings.Contains(label, "z") || strings.Contains(label, "Z") ++} ++ ++// IsShared checks that the label includes a "shared" mark ++func IsShared(label string) bool { ++ return strings.Contains(label, "z") ++} +diff --git a/vendor/github.com/opencontainers/selinux/go-selinux/selinux.go b/vendor/github.com/opencontainers/selinux/go-selinux/selinux.go +new file mode 100644 +index 0000000..4cf2c45 +--- /dev/null ++++ b/vendor/github.com/opencontainers/selinux/go-selinux/selinux.go +@@ -0,0 +1,593 @@ ++// +build linux ++ ++package selinux ++ ++import ( ++ "bufio" ++ "crypto/rand" ++ "encoding/binary" ++ "fmt" ++ "io" ++ "os" ++ "path/filepath" ++ "regexp" ++ "strconv" ++ "strings" ++ "sync" ++ "syscall" ++) ++ ++const ( ++ // Enforcing constant indicate SELinux is in enforcing mode ++ Enforcing = 1 ++ // Permissive constant to indicate SELinux is in permissive mode ++ Permissive = 0 ++ // Disabled constant to indicate SELinux is disabled ++ Disabled = -1 ++ selinuxDir = "/etc/selinux/" ++ selinuxConfig = selinuxDir + "config" ++ selinuxTypeTag = "SELINUXTYPE" ++ selinuxTag = "SELINUX" ++ selinuxPath = "/sys/fs/selinux" ++ xattrNameSelinux = "security.selinux" ++ stRdOnly = 0x01 ++) ++ ++type selinuxState struct { ++ enabledSet bool ++ enabled bool ++ selinuxfsSet bool ++ selinuxfs string ++ mcsList map[string]bool ++ sync.Mutex ++} ++ ++var ( ++ assignRegex = regexp.MustCompile(`^([^=]+)=(.*)$`) ++ state = selinuxState{ ++ mcsList: make(map[string]bool), ++ } ++) ++ ++// Context is a representation of the SELinux label broken into 4 parts ++type Context map[string]string ++ ++func (s *selinuxState) setEnable(enabled bool) bool { ++ s.Lock() ++ defer s.Unlock() ++ s.enabledSet = true ++ s.enabled = enabled ++ return s.enabled ++} ++ ++func (s *selinuxState) getEnabled() bool { ++ s.Lock() ++ enabled := s.enabled ++ enabledSet := s.enabledSet ++ s.Unlock() ++ if enabledSet { ++ return enabled ++ } ++ ++ enabled = false ++ if fs := getSelinuxMountPoint(); fs != "" { ++ if con, _ := CurrentLabel(); con != "kernel" { ++ enabled = true ++ } ++ } ++ return s.setEnable(enabled) ++} ++ ++// SetDisabled disables selinux support for the package ++func SetDisabled() { ++ state.setEnable(false) ++} ++ ++func (s *selinuxState) setSELinuxfs(selinuxfs string) string { ++ s.Lock() ++ defer s.Unlock() ++ s.selinuxfsSet = true ++ s.selinuxfs = selinuxfs ++ return s.selinuxfs ++} ++ ++func (s *selinuxState) getSELinuxfs() string { ++ s.Lock() ++ selinuxfs := s.selinuxfs ++ selinuxfsSet := s.selinuxfsSet ++ s.Unlock() ++ if selinuxfsSet { ++ return selinuxfs ++ } ++ ++ selinuxfs = "" ++ f, err := os.Open("/proc/self/mountinfo") ++ if err != nil { ++ return selinuxfs ++ } ++ defer f.Close() ++ ++ scanner := bufio.NewScanner(f) ++ for scanner.Scan() { ++ txt := scanner.Text() ++ // Safe as mountinfo encodes mountpoints with spaces as \040. ++ sepIdx := strings.Index(txt, " - ") ++ if sepIdx == -1 { ++ continue ++ } ++ if !strings.Contains(txt[sepIdx:], "selinuxfs") { ++ continue ++ } ++ fields := strings.Split(txt, " ") ++ if len(fields) < 5 { ++ continue ++ } ++ selinuxfs = fields[4] ++ break ++ } ++ ++ if selinuxfs != "" { ++ var buf syscall.Statfs_t ++ syscall.Statfs(selinuxfs, &buf) ++ if (buf.Flags & stRdOnly) == 1 { ++ selinuxfs = "" ++ } ++ } ++ return s.setSELinuxfs(selinuxfs) ++} ++ ++// getSelinuxMountPoint returns the path to the mountpoint of an selinuxfs ++// filesystem or an empty string if no mountpoint is found. Selinuxfs is ++// a proc-like pseudo-filesystem that exposes the selinux policy API to ++// processes. The existence of an selinuxfs mount is used to determine ++// whether selinux is currently enabled or not. ++func getSelinuxMountPoint() string { ++ return state.getSELinuxfs() ++} ++ ++// GetEnabled returns whether selinux is currently enabled. ++func GetEnabled() bool { ++ return state.getEnabled() ++} ++ ++func readConfig(target string) (value string) { ++ var ( ++ val, key string ++ bufin *bufio.Reader ++ ) ++ ++ in, err := os.Open(selinuxConfig) ++ if err != nil { ++ return "" ++ } ++ defer in.Close() ++ ++ bufin = bufio.NewReader(in) ++ ++ for done := false; !done; { ++ var line string ++ if line, err = bufin.ReadString('\n'); err != nil { ++ if err != io.EOF { ++ return "" ++ } ++ done = true ++ } ++ line = strings.TrimSpace(line) ++ if len(line) == 0 { ++ // Skip blank lines ++ continue ++ } ++ if line[0] == ';' || line[0] == '#' { ++ // Skip comments ++ continue ++ } ++ if groups := assignRegex.FindStringSubmatch(line); groups != nil { ++ key, val = strings.TrimSpace(groups[1]), strings.TrimSpace(groups[2]) ++ if key == target { ++ return strings.Trim(val, "\"") ++ } ++ } ++ } ++ return "" ++} ++ ++func getSELinuxPolicyRoot() string { ++ return selinuxDir + readConfig(selinuxTypeTag) ++} ++ ++func readCon(name string) (string, error) { ++ var val string ++ ++ in, err := os.Open(name) ++ if err != nil { ++ return "", err ++ } ++ defer in.Close() ++ ++ _, err = fmt.Fscanf(in, "%s", &val) ++ return val, err ++} ++ ++// SetFileLabel sets the SELinux label for this path or returns an error. ++func SetFileLabel(path string, label string) error { ++ return lsetxattr(path, xattrNameSelinux, []byte(label), 0) ++} ++ ++// Filecon returns the SELinux label for this path or returns an error. ++func FileLabel(path string) (string, error) { ++ label, err := lgetxattr(path, xattrNameSelinux) ++ if err != nil { ++ return "", err ++ } ++ // Trim the NUL byte at the end of the byte buffer, if present. ++ if len(label) > 0 && label[len(label)-1] == '\x00' { ++ label = label[:len(label)-1] ++ } ++ return string(label), nil ++} ++ ++/* ++SetFSCreateLabel tells kernel the label to create all file system objects ++created by this task. Setting label="" to return to default. ++*/ ++func SetFSCreateLabel(label string) error { ++ return writeCon(fmt.Sprintf("/proc/self/task/%d/attr/fscreate", syscall.Gettid()), label) ++} ++ ++/* ++FSCreateLabel returns the default label the kernel which the kernel is using ++for file system objects created by this task. "" indicates default. ++*/ ++func FSCreateLabel() (string, error) { ++ return readCon(fmt.Sprintf("/proc/self/task/%d/attr/fscreate", syscall.Gettid())) ++} ++ ++// CurrentLabel returns the SELinux label of the current process thread, or an error. ++func CurrentLabel() (string, error) { ++ return readCon(fmt.Sprintf("/proc/self/task/%d/attr/current", syscall.Gettid())) ++} ++ ++// PidLabel returns the SELinux label of the given pid, or an error. ++func PidLabel(pid int) (string, error) { ++ return readCon(fmt.Sprintf("/proc/%d/attr/current", pid)) ++} ++ ++/* ++ExecLabel returns the SELinux label that the kernel will use for any programs ++that are executed by the current process thread, or an error. ++*/ ++func ExecLabel() (string, error) { ++ return readCon(fmt.Sprintf("/proc/self/task/%d/attr/exec", syscall.Gettid())) ++} ++ ++func writeCon(name string, val string) error { ++ out, err := os.OpenFile(name, os.O_WRONLY, 0) ++ if err != nil { ++ return err ++ } ++ defer out.Close() ++ ++ if val != "" { ++ _, err = out.Write([]byte(val)) ++ } else { ++ _, err = out.Write(nil) ++ } ++ return err ++} ++ ++/* ++SetExecLabel sets the SELinux label that the kernel will use for any programs ++that are executed by the current process thread, or an error. ++*/ ++func SetExecLabel(label string) error { ++ return writeCon(fmt.Sprintf("/proc/self/task/%d/attr/exec", syscall.Gettid()), label) ++} ++ ++// Get returns the Context as a string ++func (c Context) Get() string { ++ return fmt.Sprintf("%s:%s:%s:%s", c["user"], c["role"], c["type"], c["level"]) ++} ++ ++// NewContext creates a new Context struct from the specified label ++func NewContext(label string) Context { ++ c := make(Context) ++ ++ if len(label) != 0 { ++ con := strings.SplitN(label, ":", 4) ++ c["user"] = con[0] ++ c["role"] = con[1] ++ c["type"] = con[2] ++ c["level"] = con[3] ++ } ++ return c ++} ++ ++// ReserveLabel reserves the MLS/MCS level component of the specified label ++func ReserveLabel(label string) { ++ if len(label) != 0 { ++ con := strings.SplitN(label, ":", 4) ++ mcsAdd(con[3]) ++ } ++} ++ ++func selinuxEnforcePath() string { ++ return fmt.Sprintf("%s/enforce", selinuxPath) ++} ++ ++// EnforceMode returns the current SELinux mode Enforcing, Permissive, Disabled ++func EnforceMode() int { ++ var enforce int ++ ++ enforceS, err := readCon(selinuxEnforcePath()) ++ if err != nil { ++ return -1 ++ } ++ ++ enforce, err = strconv.Atoi(string(enforceS)) ++ if err != nil { ++ return -1 ++ } ++ return enforce ++} ++ ++/* ++SetEnforce sets the current SELinux mode Enforcing, Permissive. ++Disabled is not valid, since this needs to be set at boot time. ++*/ ++func SetEnforceMode(mode int) error { ++ return writeCon(selinuxEnforcePath(), fmt.Sprintf("%d", mode)) ++} ++ ++/* ++DefaultEnforceMode returns the systems default SELinux mode Enforcing, ++Permissive or Disabled. Note this is is just the default at boot time. ++EnforceMode tells you the systems current mode. ++*/ ++func DefaultEnforceMode() int { ++ switch readConfig(selinuxTag) { ++ case "enforcing": ++ return Enforcing ++ case "permissive": ++ return Permissive ++ } ++ return Disabled ++} ++ ++func mcsAdd(mcs string) error { ++ state.Lock() ++ defer state.Unlock() ++ if state.mcsList[mcs] { ++ return fmt.Errorf("MCS Label already exists") ++ } ++ state.mcsList[mcs] = true ++ return nil ++} ++ ++func mcsDelete(mcs string) { ++ state.Lock() ++ defer state.Unlock() ++ state.mcsList[mcs] = false ++} ++ ++func intToMcs(id int, catRange uint32) string { ++ var ( ++ SETSIZE = int(catRange) ++ TIER = SETSIZE ++ ORD = id ++ ) ++ ++ if id < 1 || id > 523776 { ++ return "" ++ } ++ ++ for ORD > TIER { ++ ORD = ORD - TIER ++ TIER-- ++ } ++ TIER = SETSIZE - TIER ++ ORD = ORD + TIER ++ return fmt.Sprintf("s0:c%d,c%d", TIER, ORD) ++} ++ ++func uniqMcs(catRange uint32) string { ++ var ( ++ n uint32 ++ c1, c2 uint32 ++ mcs string ++ ) ++ ++ for { ++ binary.Read(rand.Reader, binary.LittleEndian, &n) ++ c1 = n % catRange ++ binary.Read(rand.Reader, binary.LittleEndian, &n) ++ c2 = n % catRange ++ if c1 == c2 { ++ continue ++ } else { ++ if c1 > c2 { ++ c1, c2 = c2, c1 ++ } ++ } ++ mcs = fmt.Sprintf("s0:c%d,c%d", c1, c2) ++ if err := mcsAdd(mcs); err != nil { ++ continue ++ } ++ break ++ } ++ return mcs ++} ++ ++/* ++ReleaseLabel will unreserve the MLS/MCS Level field of the specified label. ++Allowing it to be used by another process. ++*/ ++func ReleaseLabel(label string) { ++ if len(label) != 0 { ++ con := strings.SplitN(label, ":", 4) ++ mcsDelete(con[3]) ++ } ++} ++ ++var roFileLabel string ++ ++// ROFileLabel returns the specified SELinux readonly file label ++func ROFileLabel() (fileLabel string) { ++ return roFileLabel ++} ++ ++/* ++ContainerLabels returns an allocated processLabel and fileLabel to be used for ++container labeling by the calling process. ++*/ ++func ContainerLabels() (processLabel string, fileLabel string) { ++ var ( ++ val, key string ++ bufin *bufio.Reader ++ ) ++ ++ if !GetEnabled() { ++ return "", "" ++ } ++ lxcPath := fmt.Sprintf("%s/contexts/lxc_contexts", getSELinuxPolicyRoot()) ++ in, err := os.Open(lxcPath) ++ if err != nil { ++ return "", "" ++ } ++ defer in.Close() ++ ++ bufin = bufio.NewReader(in) ++ ++ for done := false; !done; { ++ var line string ++ if line, err = bufin.ReadString('\n'); err != nil { ++ if err == io.EOF { ++ done = true ++ } else { ++ goto exit ++ } ++ } ++ line = strings.TrimSpace(line) ++ if len(line) == 0 { ++ // Skip blank lines ++ continue ++ } ++ if line[0] == ';' || line[0] == '#' { ++ // Skip comments ++ continue ++ } ++ if groups := assignRegex.FindStringSubmatch(line); groups != nil { ++ key, val = strings.TrimSpace(groups[1]), strings.TrimSpace(groups[2]) ++ if key == "process" { ++ processLabel = strings.Trim(val, "\"") ++ } ++ if key == "file" { ++ fileLabel = strings.Trim(val, "\"") ++ } ++ if key == "ro_file" { ++ roFileLabel = strings.Trim(val, "\"") ++ } ++ } ++ } ++ ++ if processLabel == "" || fileLabel == "" { ++ return "", "" ++ } ++ ++ if roFileLabel == "" { ++ roFileLabel = fileLabel ++ } ++exit: ++ mcs := uniqMcs(1024) ++ scon := NewContext(processLabel) ++ scon["level"] = mcs ++ processLabel = scon.Get() ++ scon = NewContext(fileLabel) ++ scon["level"] = mcs ++ fileLabel = scon.Get() ++ return processLabel, fileLabel ++} ++ ++// SecurityCheckContext validates that the SELinux label is understood by the kernel ++func SecurityCheckContext(val string) error { ++ return writeCon(fmt.Sprintf("%s.context", selinuxPath), val) ++} ++ ++/* ++CopyLevel returns a label with the MLS/MCS level from src label replaces on ++the dest label. ++*/ ++func CopyLevel(src, dest string) (string, error) { ++ if src == "" { ++ return "", nil ++ } ++ if err := SecurityCheckContext(src); err != nil { ++ return "", err ++ } ++ if err := SecurityCheckContext(dest); err != nil { ++ return "", err ++ } ++ scon := NewContext(src) ++ tcon := NewContext(dest) ++ mcsDelete(tcon["level"]) ++ mcsAdd(scon["level"]) ++ tcon["level"] = scon["level"] ++ return tcon.Get(), nil ++} ++ ++// Prevent users from relabing system files ++func badPrefix(fpath string) error { ++ var badprefixes = []string{"/usr"} ++ ++ for _, prefix := range badprefixes { ++ if fpath == prefix || strings.HasPrefix(fpath, fmt.Sprintf("%s/", prefix)) { ++ return fmt.Errorf("relabeling content in %s is not allowed", prefix) ++ } ++ } ++ return nil ++} ++ ++// Chcon changes the fpath file object to the SELinux label label. ++// If the fpath is a directory and recurse is true Chcon will walk the ++// directory tree setting the label ++func Chcon(fpath string, label string, recurse bool) error { ++ if label == "" { ++ return nil ++ } ++ if err := badPrefix(fpath); err != nil { ++ return err ++ } ++ callback := func(p string, info os.FileInfo, err error) error { ++ return SetFileLabel(p, label) ++ } ++ ++ if recurse { ++ return filepath.Walk(fpath, callback) ++ } ++ ++ return SetFileLabel(fpath, label) ++} ++ ++// DupSecOpt takes an SELinux process label and returns security options that ++// can will set the SELinux Type and Level for future container processes ++func DupSecOpt(src string) []string { ++ if src == "" { ++ return nil ++ } ++ con := NewContext(src) ++ if con["user"] == "" || ++ con["role"] == "" || ++ con["type"] == "" || ++ con["level"] == "" { ++ return nil ++ } ++ return []string{"user:" + con["user"], ++ "role:" + con["role"], ++ "type:" + con["type"], ++ "level:" + con["level"]} ++} ++ ++// DisableSecOpt returns a security opt that can be used to disabling SELinux ++// labeling support for future container processes ++func DisableSecOpt() []string { ++ return []string{"disable"} ++} +diff --git a/vendor/github.com/opencontainers/selinux/go-selinux/xattrs.go b/vendor/github.com/opencontainers/selinux/go-selinux/xattrs.go +new file mode 100644 +index 0000000..7f2ef85 +--- /dev/null ++++ b/vendor/github.com/opencontainers/selinux/go-selinux/xattrs.go +@@ -0,0 +1,78 @@ ++// +build linux ++ ++package selinux ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++var _zero uintptr ++ ++// Returns a []byte slice if the xattr is set and nil otherwise ++// Requires path and its attribute as arguments ++func lgetxattr(path string, attr string) ([]byte, error) { ++ var sz int ++ pathBytes, err := syscall.BytePtrFromString(path) ++ if err != nil { ++ return nil, err ++ } ++ attrBytes, err := syscall.BytePtrFromString(attr) ++ if err != nil { ++ return nil, err ++ } ++ ++ // Start with a 128 length byte array ++ sz = 128 ++ dest := make([]byte, sz) ++ destBytes := unsafe.Pointer(&dest[0]) ++ _sz, _, errno := syscall.Syscall6(syscall.SYS_LGETXATTR, uintptr(unsafe.Pointer(pathBytes)), uintptr(unsafe.Pointer(attrBytes)), uintptr(destBytes), uintptr(len(dest)), 0, 0) ++ ++ switch { ++ case errno == syscall.ENODATA: ++ return nil, errno ++ case errno == syscall.ENOTSUP: ++ return nil, errno ++ case errno == syscall.ERANGE: ++ // 128 byte array might just not be good enough, ++ // A dummy buffer is used ``uintptr(0)`` to get real size ++ // of the xattrs on disk ++ _sz, _, errno = syscall.Syscall6(syscall.SYS_LGETXATTR, uintptr(unsafe.Pointer(pathBytes)), uintptr(unsafe.Pointer(attrBytes)), uintptr(unsafe.Pointer(nil)), uintptr(0), 0, 0) ++ sz = int(_sz) ++ if sz < 0 { ++ return nil, errno ++ } ++ dest = make([]byte, sz) ++ destBytes := unsafe.Pointer(&dest[0]) ++ _sz, _, errno = syscall.Syscall6(syscall.SYS_LGETXATTR, uintptr(unsafe.Pointer(pathBytes)), uintptr(unsafe.Pointer(attrBytes)), uintptr(destBytes), uintptr(len(dest)), 0, 0) ++ if errno != 0 { ++ return nil, errno ++ } ++ case errno != 0: ++ return nil, errno ++ } ++ sz = int(_sz) ++ return dest[:sz], nil ++} ++ ++func lsetxattr(path string, attr string, data []byte, flags int) error { ++ pathBytes, err := syscall.BytePtrFromString(path) ++ if err != nil { ++ return err ++ } ++ attrBytes, err := syscall.BytePtrFromString(attr) ++ if err != nil { ++ return err ++ } ++ var dataBytes unsafe.Pointer ++ if len(data) > 0 { ++ dataBytes = unsafe.Pointer(&data[0]) ++ } else { ++ dataBytes = unsafe.Pointer(&_zero) ++ } ++ _, _, errno := syscall.Syscall6(syscall.SYS_LSETXATTR, uintptr(unsafe.Pointer(pathBytes)), uintptr(unsafe.Pointer(attrBytes)), uintptr(dataBytes), uintptr(len(data)), uintptr(flags), 0) ++ if errno != 0 { ++ return errno ++ } ++ return nil ++} +-- +2.7.4.3 + diff --git a/patch/0004-handle-unprivileged-operations-and-dumpable.patch b/patch/0004-handle-unprivileged-operations-and-dumpable.patch new file mode 100644 index 0000000..9b00158 --- /dev/null +++ b/patch/0004-handle-unprivileged-operations-and-dumpable.patch @@ -0,0 +1,272 @@ +From 511eb03806523b4f51cbde7daedd563a3b5810e4 Mon Sep 17 00:00:00 2001 +From: Aleksa Sarai +Date: Tue, 17 Jan 2017 12:25:21 +1100 +Subject: [PATCH 04/94] *: handle unprivileged operations and + !dumpable + +Effectively, !dumpable makes implementing rootless containers quite +hard, due to a bunch of different operations on /proc/self no longer +being possible without reordering everything. + +!dumpable only really makes sense when you are switching between +different security contexts, which is only the case when we are joining +namespaces. Unfortunately this means that !dumpable will still have +issues in this instance, and it should only be necessary to set +!dumpable if we are not joining USER namespaces (new kernels have +protections that make !dumpable no longer necessary). But that's a topic +for another time. + +This also includes code to unset and then re-set dumpable when doing the +USER namespace mappings. This should also be safe because in principle +processes in a container can't see us until after we fork into the PID +namespace (which happens after the user mapping). + +In rootless containers, it is not possible to set a non-dumpable +process's /proc/self/oom_score_adj (it's owned by root and thus not +writeable). Thus, it needs to be set inside nsexec before we set +ourselves as non-dumpable. + +Change-Id: Iab9e2d9bf3997284253b4b33a504e8581fd787ae +Signed-off-by: Aleksa Sarai +--- + libcontainer/container_linux.go | 6 ++++ + libcontainer/init_linux.go | 8 ------ + libcontainer/message_linux.go | 14 +++++---- + libcontainer/nsenter/nsexec.c | 64 ++++++++++++++++++++++++++++++++++------- + libcontainer/process_linux.go | 8 ------ + 5 files changed, 68 insertions(+), 32 deletions(-) + +diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go +index cd9235d..d2e0e2b 100644 +--- a/libcontainer/container_linux.go ++++ b/libcontainer/container_linux.go +@@ -1460,5 +1460,11 @@ func (c *linuxContainer) bootstrapData(cloneFlags uintptr, nsMaps map[configs.Na + } + } + ++ // write oom_score_adj ++ r.AddData(&Bytemsg{ ++ Type: OomScoreAdjAttr, ++ Value: []byte(fmt.Sprintf("%d", c.config.OomScoreAdj)), ++ }) ++ + return bytes.NewReader(r.Serialize()), nil + } +diff --git a/libcontainer/init_linux.go b/libcontainer/init_linux.go +index 39b83a4..0f5d412 100644 +--- a/libcontainer/init_linux.go ++++ b/libcontainer/init_linux.go +@@ -6,10 +6,8 @@ import ( + "encoding/json" + "fmt" + "io" +- "io/ioutil" + "net" + "os" +- "strconv" + "strings" + "syscall" + "unsafe" +@@ -369,12 +367,6 @@ func setupRlimits(limits []configs.Rlimit, pid int) error { + return nil + } + +-func setOomScoreAdj(oomScoreAdj int, pid int) error { +- path := fmt.Sprintf("/proc/%d/oom_score_adj", pid) +- +- return ioutil.WriteFile(path, []byte(strconv.Itoa(oomScoreAdj)), 0600) +-} +- + const _P_PID = 1 + + type siginfo struct { +diff --git a/libcontainer/message_linux.go b/libcontainer/message_linux.go +index a189c72..321d664 100644 +--- a/libcontainer/message_linux.go ++++ b/libcontainer/message_linux.go +@@ -11,12 +11,14 @@ import ( + // list of known message types we want to send to bootstrap program + // The number is randomly chosen to not conflict with known netlink types + const ( +- InitMsg uint16 = 62000 +- CloneFlagsAttr uint16 = 27281 +- NsPathsAttr uint16 = 27282 +- UidmapAttr uint16 = 27283 +- GidmapAttr uint16 = 27284 +- SetgroupAttr uint16 = 27285 ++ InitMsg uint16 = 62000 ++ CloneFlagsAttr uint16 = 27281 ++ NsPathsAttr uint16 = 27282 ++ UidmapAttr uint16 = 27283 ++ GidmapAttr uint16 = 27284 ++ SetgroupAttr uint16 = 27285 ++ OomScoreAdjAttr uint16 = 27286 ++ + // When syscall.NLA_HDRLEN is in gccgo, take this out. + syscall_NLA_HDRLEN = (syscall.SizeofNlAttr + syscall.NLA_ALIGNTO - 1) & ^(syscall.NLA_ALIGNTO - 1) + ) +diff --git a/libcontainer/nsenter/nsexec.c b/libcontainer/nsenter/nsexec.c +index 51bd1e3..9630206 100644 +--- a/libcontainer/nsenter/nsexec.c ++++ b/libcontainer/nsenter/nsexec.c +@@ -72,18 +72,21 @@ struct nlconfig_t { + char *namespaces; + size_t namespaces_len; + uint8_t is_setgroup; ++ char *oom_score_adj; ++ size_t oom_score_adj_len; + }; + + /* + * List of netlink message types sent to us as part of bootstrapping the init. + * These constants are defined in libcontainer/message_linux.go. + */ +-#define INIT_MSG 62000 ++#define INIT_MSG 62000 + #define CLONE_FLAGS_ATTR 27281 + #define NS_PATHS_ATTR 27282 +-#define UIDMAP_ATTR 27283 +-#define GIDMAP_ATTR 27284 ++#define UIDMAP_ATTR 27283 ++#define GIDMAP_ATTR 27284 + #define SETGROUP_ATTR 27285 ++#define OOM_SCORE_ADJ_ATTR 27286 + + /* + * Use the raw syscall for versions of glibc which don't include a function for +@@ -186,7 +189,7 @@ static void update_setgroups(int pid, enum policy_t setgroup) + } + } + +-static void update_uidmap(int pid, char *map, int map_len) ++static void update_uidmap(int pid, char *map, size_t map_len) + { + if (map == NULL || map_len <= 0) + return; +@@ -195,7 +198,7 @@ static void update_uidmap(int pid, char *map, int map_len) + bail("failed to update /proc/%d/uid_map", pid); + } + +-static void update_gidmap(int pid, char *map, int map_len) ++static void update_gidmap(int pid, char *map, size_t map_len) + { + if (map == NULL || map_len <= 0) + return; +@@ -204,6 +207,15 @@ static void update_gidmap(int pid, char *map, int map_len) + bail("failed to update /proc/%d/gid_map", pid); + } + ++static void update_oom_score_adj(char *data, size_t len) ++{ ++ if (data == NULL || len <= 0) ++ return; ++ ++ if (write_file(data, len, "/proc/self/oom_score_adj") < 0) ++ bail("failed to update /proc/self/oom_score_adj"); ++} ++ + /* A dummy function that just jumps to the given jumpval. */ + static int child_func(void *arg) __attribute__ ((noinline)); + static int child_func(void *arg) +@@ -317,6 +329,10 @@ static void nl_parse(int fd, struct nlconfig_t *config) + case CLONE_FLAGS_ATTR: + config->cloneflags = readint32(current); + break; ++ case OOM_SCORE_ADJ_ATTR: ++ config->oom_score_adj = current; ++ config->oom_score_adj_len = payload_len; ++ break; + case NS_PATHS_ATTR: + config->namespaces = current; + config->namespaces_len = payload_len; +@@ -425,14 +441,32 @@ void nsexec(void) + if (pipenum == -1) + return; + +- /* make the process non-dumpable */ +- if (prctl(PR_SET_DUMPABLE, 0, 0, 0, 0) != 0) { +- bail("failed to set process as non-dumpable"); +- } +- + /* Parse all of the netlink configuration. */ + nl_parse(pipenum, &config); + ++ /* Set oom_score_adj. This has to be done before !dumpable because ++ * /proc/self/oom_score_adj is not writeable unless you're an privileged ++ * user (if !dumpable is set). All children inherit their parent's ++ * oom_score_adj value on fork(2) so this will always be propagated ++ * properly. ++ */ ++ update_oom_score_adj(config.oom_score_adj, config.oom_score_adj_len); ++ ++ /* ++ * Make the process non-dumpable, to avoid various race conditions that ++ * could cause processes in namespaces we're joining to access host ++ * resources (or potentially execute code). ++ * ++ * However, if the number of namespaces we are joining is 0, we are not ++ * going to be switching to a different security context. Thus setting ++ * ourselves to be non-dumpable only breaks things (like rootless ++ * containers), which is the recommendation from the kernel folks. ++ */ ++ if (config.namespaces) { ++ if (prctl(PR_SET_DUMPABLE, 0, 0, 0, 0) < 0) ++ bail("failed to set process as non-dumpable"); ++ } ++ + /* Pipe so we can tell the child when we've finished setting up. */ + if (socketpair(AF_LOCAL, SOCK_STREAM, 0, sync_child_pipe) < 0) + bail("failed to setup sync pipe between parent and child"); +@@ -681,6 +715,11 @@ void nsexec(void) + * clone_parent rant). So signal our parent to hook us up. + */ + ++ /* Switching is only necessary if we joined namespaces. */ ++ if (config.namespaces) { ++ if (prctl(PR_SET_DUMPABLE, 1, 0, 0, 0) < 0) ++ bail("failed to set process as dumpable"); ++ } + s = SYNC_USERMAP_PLS; + if (write(syncfd, &s, sizeof(s)) != sizeof(s)) + bail("failed to sync with parent: write(SYNC_USERMAP_PLS)"); +@@ -691,6 +730,11 @@ void nsexec(void) + bail("failed to sync with parent: read(SYNC_USERMAP_ACK)"); + if (s != SYNC_USERMAP_ACK) + bail("failed to sync with parent: SYNC_USERMAP_ACK: got %u", s); ++ /* Switching is only necessary if we joined namespaces. */ ++ if (config.namespaces) { ++ if (prctl(PR_SET_DUMPABLE, 0, 0, 0, 0) < 0) ++ bail("failed to set process as dumpable"); ++ } + } + + /* +diff --git a/libcontainer/process_linux.go b/libcontainer/process_linux.go +index 0f79a38..c60f473 100644 +--- a/libcontainer/process_linux.go ++++ b/libcontainer/process_linux.go +@@ -85,10 +85,6 @@ func (p *setnsProcess) start() (err error) { + return newSystemErrorWithCausef(err, "adding pid %d to cgroups", p.pid()) + } + } +- // set oom_score_adj +- if err := setOomScoreAdj(p.config.Config.OomScoreAdj, p.pid()); err != nil { +- return newSystemErrorWithCause(err, "setting oom score") +- } + // set rlimits, this has to be done here because we lose permissions + // to raise the limits once we enter a user-namespace + if err := setupRlimits(p.config.Rlimits, p.pid()); err != nil { +@@ -285,10 +281,6 @@ func (p *initProcess) start() error { + if err := p.manager.Set(p.config.Config); err != nil { + return newSystemErrorWithCause(err, "setting cgroup config for ready process") + } +- // set oom_score_adj +- if err := setOomScoreAdj(p.config.Config.OomScoreAdj, p.pid()); err != nil { +- return newSystemErrorWithCause(err, "setting oom score for ready process") +- } + // set rlimits, this has to be done here because we lose permissions + // to raise the limits once we enter a user-namespace + if err := setupRlimits(p.config.Rlimits, p.pid()); err != nil { +-- +2.7.4.3 + diff --git a/patch/0005-runc-add-support-for-rootless-containers.patch b/patch/0005-runc-add-support-for-rootless-containers.patch new file mode 100644 index 0000000..dfffd79 --- /dev/null +++ b/patch/0005-runc-add-support-for-rootless-containers.patch @@ -0,0 +1,1490 @@ +From 32d2efc77f61fc7142e72b30e82aca8eeefc7c54 Mon Sep 17 00:00:00 2001 +From: Aleksa Sarai +Date: Sat, 23 Apr 2016 23:39:42 +1000 +Subject: [PATCH 05/94] runc: add support for rootless containers + +This enables the support for the rootless container mode. There are many +restrictions on what rootless containers can do, so many different runC +commands have been disabled: + +* runc checkpoint +* runc events +* runc pause +* runc ps +* runc restore +* runc resume +* runc update + +The following commands work: + +* runc create +* runc delete +* runc exec +* runc kill +* runc list +* runc run +* runc spec +* runc state + +In addition, any specification options that imply joining cgroups have +also been disabled. This is due to support for unprivileged subtree +management not being available from Linux upstream. + +Change-Id: I5cfba61e3a3d7491f2b0bc00ccfd51b87684de8a +Signed-off-by: Aleksa Sarai +--- + Makefile | 2 +- + checkpoint.go | 5 + + exec.go | 3 - + libcontainer/configs/config.go | 3 + + libcontainer/configs/validate/rootless.go | 117 +++++++++++++++ + libcontainer/configs/validate/rootless_test.go | 195 +++++++++++++++++++++++++ + libcontainer/configs/validate/validator.go | 5 + + libcontainer/container_linux.go | 49 +++++-- + libcontainer/init_linux.go | 41 +++++- + libcontainer/message_linux.go | 1 + + libcontainer/nsenter/nsexec.c | 26 +++- + libcontainer/process_linux.go | 28 +++- + libcontainer/specconv/example.go | 160 ++++++++++++++++++++ + libcontainer/specconv/spec_linux.go | 31 +++- + libcontainer/specconv/spec_linux_test.go | 80 +++++++++- + list.go | 19 ++- + ps.go | 5 + + restore.go | 6 + + spec.go | 150 +------------------ + utils.go | 3 - + utils_linux.go | 6 + + 21 files changed, 742 insertions(+), 193 deletions(-) + create mode 100644 libcontainer/configs/validate/rootless.go + create mode 100644 libcontainer/configs/validate/rootless_test.go + create mode 100644 libcontainer/specconv/example.go + +diff --git a/Makefile b/Makefile +index b82884a..5fff515 100644 +--- a/Makefile ++++ b/Makefile +@@ -4,7 +4,7 @@ + + SOURCES := $(shell find . 2>&1 | grep -E '.*\.(c|h|go)$$') + PREFIX := $(DESTDIR)/usr/local +-BINDIR := $(PREFIX)/sbin ++BINDIR := $(PREFIX)/bin + GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null) + GIT_BRANCH_CLEAN := $(shell echo $(GIT_BRANCH) | sed -e "s/[^[:alnum:]]/-/g") + RUNC_IMAGE := runc_dev$(if $(GIT_BRANCH_CLEAN),:$(GIT_BRANCH_CLEAN)) +diff --git a/checkpoint.go b/checkpoint.go +index dd7704f..78977d7 100644 +--- a/checkpoint.go ++++ b/checkpoint.go +@@ -39,6 +39,11 @@ checkpointed.`, + if err := checkArgs(context, 1, exactArgs); err != nil { + return err + } ++ // XXX: Currently this is untested with rootless containers. ++ if isRootless() { ++ return fmt.Errorf("runc checkpoint requires root") ++ } ++ + container, err := getContainer(context) + if err != nil { + return err +diff --git a/exec.go b/exec.go +index 84061e6..22f2689 100644 +--- a/exec.go ++++ b/exec.go +@@ -90,9 +90,6 @@ following will output a list of processes running in the container: + if err := checkArgs(context, 1, minArgs); err != nil { + return err + } +- if os.Geteuid() != 0 { +- return fmt.Errorf("runc should be run as root") +- } + if err := revisePidFile(context); err != nil { + return err + } +diff --git a/libcontainer/configs/config.go b/libcontainer/configs/config.go +index 890cd7d..98f4b85 100644 +--- a/libcontainer/configs/config.go ++++ b/libcontainer/configs/config.go +@@ -183,6 +183,9 @@ type Config struct { + // NoNewKeyring will not allocated a new session keyring for the container. It will use the + // callers keyring in this case. + NoNewKeyring bool `json:"no_new_keyring"` ++ ++ // Rootless specifies whether the container is a rootless container. ++ Rootless bool `json:"rootless"` + } + + type Hooks struct { +diff --git a/libcontainer/configs/validate/rootless.go b/libcontainer/configs/validate/rootless.go +new file mode 100644 +index 0000000..1e83ced +--- /dev/null ++++ b/libcontainer/configs/validate/rootless.go +@@ -0,0 +1,117 @@ ++package validate ++ ++import ( ++ "fmt" ++ "os" ++ "reflect" ++ "strings" ++ ++ "github.com/opencontainers/runc/libcontainer/configs" ++) ++ ++var ( ++ geteuid = os.Geteuid ++ getegid = os.Getegid ++) ++ ++func (v *ConfigValidator) rootless(config *configs.Config) error { ++ if err := rootlessMappings(config); err != nil { ++ return err ++ } ++ if err := rootlessMount(config); err != nil { ++ return err ++ } ++ // Currently, cgroups cannot effectively be used in rootless containers. ++ // The new cgroup namespace doesn't really help us either because it doesn't ++ // have nice interactions with the user namespace (we're working with upstream ++ // to fix this). ++ if err := rootlessCgroup(config); err != nil { ++ return err ++ } ++ ++ // XXX: We currently can't verify the user config at all, because ++ // configs.Config doesn't store the user-related configs. So this ++ // has to be verified by setupUser() in init_linux.go. ++ ++ return nil ++} ++ ++func rootlessMappings(config *configs.Config) error { ++ rootuid, err := config.HostUID() ++ if err != nil { ++ return fmt.Errorf("failed to get root uid from uidMappings: %v", err) ++ } ++ if euid := geteuid(); euid != 0 { ++ if !config.Namespaces.Contains(configs.NEWUSER) { ++ return fmt.Errorf("rootless containers require user namespaces") ++ } ++ if rootuid != euid { ++ return fmt.Errorf("rootless containers cannot map container root to a different host user") ++ } ++ } ++ ++ rootgid, err := config.HostGID() ++ if err != nil { ++ return fmt.Errorf("failed to get root gid from gidMappings: %v", err) ++ } ++ ++ // Similar to the above test, we need to make sure that we aren't trying to ++ // map to a group ID that we don't have the right to be. ++ if rootgid != getegid() { ++ return fmt.Errorf("rootless containers cannot map container root to a different host group") ++ } ++ ++ // We can only map one user and group inside a container (our own). ++ if len(config.UidMappings) != 1 || config.UidMappings[0].Size != 1 { ++ return fmt.Errorf("rootless containers cannot map more than one user") ++ } ++ if len(config.GidMappings) != 1 || config.GidMappings[0].Size != 1 { ++ return fmt.Errorf("rootless containers cannot map more than one group") ++ } ++ ++ return nil ++} ++ ++// cgroup verifies that the user isn't trying to set any cgroup limits or paths. ++func rootlessCgroup(config *configs.Config) error { ++ // Nothing set at all. ++ if config.Cgroups == nil || config.Cgroups.Resources == nil { ++ return nil ++ } ++ ++ // Used for comparing to the zero value. ++ left := reflect.ValueOf(*config.Cgroups.Resources) ++ right := reflect.Zero(left.Type()) ++ ++ // This is all we need to do, since specconv won't add cgroup options in ++ // rootless mode. ++ if !reflect.DeepEqual(left.Interface(), right.Interface()) { ++ return fmt.Errorf("cannot specify resource limits in rootless container") ++ } ++ ++ return nil ++} ++ ++// mount verifies that the user isn't trying to set up any mounts they don't have ++// the rights to do. In addition, it makes sure that no mount has a `uid=` or ++// `gid=` option that doesn't resolve to root. ++func rootlessMount(config *configs.Config) error { ++ // XXX: We could whitelist allowed devices at this point, but I'm not ++ // convinced that's a good idea. The kernel is the best arbiter of ++ // access control. ++ ++ for _, mount := range config.Mounts { ++ // Check that the options list doesn't contain any uid= or gid= entries ++ // that don't resolve to root. ++ for _, opt := range strings.Split(mount.Data, ",") { ++ if strings.HasPrefix(opt, "uid=") && opt != "uid=0" { ++ return fmt.Errorf("cannot specify uid= mount options in rootless containers where argument isn't 0") ++ } ++ if strings.HasPrefix(opt, "gid=") && opt != "gid=0" { ++ return fmt.Errorf("cannot specify gid= mount options in rootless containers where argument isn't 0") ++ } ++ } ++ } ++ ++ return nil ++} +diff --git a/libcontainer/configs/validate/rootless_test.go b/libcontainer/configs/validate/rootless_test.go +new file mode 100644 +index 0000000..23d678d +--- /dev/null ++++ b/libcontainer/configs/validate/rootless_test.go +@@ -0,0 +1,195 @@ ++package validate ++ ++import ( ++ "testing" ++ ++ "github.com/opencontainers/runc/libcontainer/configs" ++) ++ ++func init() { ++ geteuid = func() int { return 1337 } ++ getegid = func() int { return 7331 } ++} ++ ++func rootlessConfig() *configs.Config { ++ return &configs.Config{ ++ Rootfs: "/var", ++ Rootless: true, ++ Namespaces: configs.Namespaces( ++ []configs.Namespace{ ++ {Type: configs.NEWUSER}, ++ }, ++ ), ++ UidMappings: []configs.IDMap{ ++ { ++ HostID: geteuid(), ++ ContainerID: 0, ++ Size: 1, ++ }, ++ }, ++ GidMappings: []configs.IDMap{ ++ { ++ HostID: getegid(), ++ ContainerID: 0, ++ Size: 1, ++ }, ++ }, ++ } ++} ++ ++func TestValidateRootless(t *testing.T) { ++ validator := New() ++ ++ config := rootlessConfig() ++ if err := validator.Validate(config); err != nil { ++ t.Errorf("Expected error to not occur: %+v", err) ++ } ++} ++ ++/* rootlessMappings() */ ++ ++func TestValidateRootlessUserns(t *testing.T) { ++ validator := New() ++ ++ config := rootlessConfig() ++ config.Namespaces = nil ++ if err := validator.Validate(config); err == nil { ++ t.Errorf("Expected error to occur if user namespaces not set") ++ } ++} ++ ++func TestValidateRootlessMappingUid(t *testing.T) { ++ validator := New() ++ ++ config := rootlessConfig() ++ config.UidMappings = nil ++ if err := validator.Validate(config); err == nil { ++ t.Errorf("Expected error to occur if no uid mappings provided") ++ } ++ ++ config = rootlessConfig() ++ config.UidMappings[0].HostID = geteuid() + 1 ++ if err := validator.Validate(config); err == nil { ++ t.Errorf("Expected error to occur if geteuid() != mapped uid") ++ } ++ ++ config = rootlessConfig() ++ config.UidMappings[0].Size = 1024 ++ if err := validator.Validate(config); err == nil { ++ t.Errorf("Expected error to occur if more than one uid mapped") ++ } ++ ++ config = rootlessConfig() ++ config.UidMappings = append(config.UidMappings, configs.IDMap{ ++ HostID: geteuid() + 1, ++ ContainerID: 0, ++ Size: 1, ++ }) ++ if err := validator.Validate(config); err == nil { ++ t.Errorf("Expected error to occur if more than one uid extent mapped") ++ } ++} ++ ++func TestValidateRootlessMappingGid(t *testing.T) { ++ validator := New() ++ ++ config := rootlessConfig() ++ config.GidMappings = nil ++ if err := validator.Validate(config); err == nil { ++ t.Errorf("Expected error to occur if no gid mappings provided") ++ } ++ ++ config = rootlessConfig() ++ config.GidMappings[0].HostID = getegid() + 1 ++ if err := validator.Validate(config); err == nil { ++ t.Errorf("Expected error to occur if getegid() != mapped gid") ++ } ++ ++ config = rootlessConfig() ++ config.GidMappings[0].Size = 1024 ++ if err := validator.Validate(config); err == nil { ++ t.Errorf("Expected error to occur if more than one gid mapped") ++ } ++ ++ config = rootlessConfig() ++ config.GidMappings = append(config.GidMappings, configs.IDMap{ ++ HostID: getegid() + 1, ++ ContainerID: 0, ++ Size: 1, ++ }) ++ if err := validator.Validate(config); err == nil { ++ t.Errorf("Expected error to occur if more than one gid extent mapped") ++ } ++} ++ ++/* rootlessMount() */ ++ ++func TestValidateRootlessMountUid(t *testing.T) { ++ config := rootlessConfig() ++ validator := New() ++ ++ config.Mounts = []*configs.Mount{ ++ { ++ Source: "devpts", ++ Destination: "/dev/pts", ++ Device: "devpts", ++ }, ++ } ++ ++ if err := validator.Validate(config); err != nil { ++ t.Errorf("Expected error to not occur when uid= not set in mount options: %+v", err) ++ } ++ ++ config.Mounts[0].Data = "uid=5" ++ if err := validator.Validate(config); err == nil { ++ t.Errorf("Expected error to occur when setting uid=5 in mount options") ++ } ++ ++ config.Mounts[0].Data = "uid=0" ++ if err := validator.Validate(config); err != nil { ++ t.Errorf("Expected error to not occur when setting uid=0 in mount options: %+v", err) ++ } ++} ++ ++func TestValidateRootlessMountGid(t *testing.T) { ++ config := rootlessConfig() ++ validator := New() ++ ++ config.Mounts = []*configs.Mount{ ++ { ++ Source: "devpts", ++ Destination: "/dev/pts", ++ Device: "devpts", ++ }, ++ } ++ ++ if err := validator.Validate(config); err != nil { ++ t.Errorf("Expected error to not occur when gid= not set in mount options: %+v", err) ++ } ++ ++ config.Mounts[0].Data = "gid=5" ++ if err := validator.Validate(config); err == nil { ++ t.Errorf("Expected error to occur when setting gid=5 in mount options") ++ } ++ ++ config.Mounts[0].Data = "gid=0" ++ if err := validator.Validate(config); err != nil { ++ t.Errorf("Expected error to not occur when setting gid=0 in mount options: %+v", err) ++ } ++} ++ ++/* rootlessCgroup() */ ++ ++func TestValidateRootlessCgroup(t *testing.T) { ++ validator := New() ++ ++ config := rootlessConfig() ++ config.Cgroups = &configs.Cgroup{ ++ Resources: &configs.Resources{ ++ PidsLimit: 1337, ++ }, ++ } ++ if err := validator.Validate(config); err == nil { ++ t.Errorf("Expected error to occur if cgroup limits set") ++ } ++} +diff --git a/libcontainer/configs/validate/validator.go b/libcontainer/configs/validate/validator.go +index ecf8335..8284345 100644 +--- a/libcontainer/configs/validate/validator.go ++++ b/libcontainer/configs/validate/validator.go +@@ -40,6 +40,11 @@ func (v *ConfigValidator) Validate(config *configs.Config) error { + if err := v.sysctl(config); err != nil { + return err + } ++ if config.Rootless { ++ if err := v.rootless(config); err != nil { ++ return err ++ } ++ } + return nil + } + +diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go +index d2e0e2b..372763a 100644 +--- a/libcontainer/container_linux.go ++++ b/libcontainer/container_linux.go +@@ -51,6 +51,9 @@ type State struct { + + // Platform specific fields below here + ++ // Specifies if the container was started under the rootless mode. ++ Rootless bool `json:"rootless"` ++ + // Path to all the cgroups setup for a container. Key is cgroup subsystem name + // with the value as the path. + CgroupPaths map[string]string `json:"cgroup_paths"` +@@ -452,6 +455,7 @@ func (c *linuxContainer) newInitConfig(process *Process) *initConfig { + PassedFilesCount: len(process.ExtraFiles), + ContainerId: c.ID(), + NoNewPrivileges: c.config.NoNewPrivileges, ++ Rootless: c.config.Rootless, + AppArmorProfile: c.config.AppArmorProfile, + ProcessLabel: c.config.ProcessLabel, + Rlimits: c.config.Rlimits, +@@ -622,6 +626,13 @@ func (c *linuxContainer) Checkpoint(criuOpts *CriuOpts) error { + c.m.Lock() + defer c.m.Unlock() + ++ // TODO(avagin): Figure out how to make this work nicely. CRIU 2.0 has ++ // support for doing unprivileged dumps, but the setup of ++ // rootless containers might make this complicated. ++ if c.config.Rootless { ++ return fmt.Errorf("cannot checkpoint a rootless container") ++ } ++ + if err := c.checkCriuVersion("1.5.2"); err != nil { + return err + } +@@ -791,6 +802,13 @@ func (c *linuxContainer) restoreNetwork(req *criurpc.CriuReq, criuOpts *CriuOpts + func (c *linuxContainer) Restore(process *Process, criuOpts *CriuOpts) error { + c.m.Lock() + defer c.m.Unlock() ++ ++ // TODO(avagin): Figure out how to make this work nicely. CRIU doesn't have ++ // support for unprivileged restore at the moment. ++ if c.config.Rootless { ++ return fmt.Errorf("cannot restore a rootless container") ++ } ++ + if err := c.checkCriuVersion("1.5.2"); err != nil { + return err + } +@@ -918,6 +936,7 @@ func (c *linuxContainer) Restore(process *Process, criuOpts *CriuOpts) error { + } + + func (c *linuxContainer) criuApplyCgroups(pid int, req *criurpc.CriuReq) error { ++ // XXX: Do we need to deal with this case? AFAIK criu still requires root. + if err := c.cgroupManager.Apply(pid); err != nil { + return err + } +@@ -1319,6 +1338,7 @@ func (c *linuxContainer) currentState() (*State, error) { + InitProcessStartTime: startTime, + Created: c.created, + }, ++ Rootless: c.config.Rootless, + CgroupPaths: c.cgroupManager.GetPaths(), + NamespacePaths: make(map[configs.NamespaceType]string), + ExternalDescriptors: externalDescriptors, +@@ -1446,16 +1466,19 @@ func (c *linuxContainer) bootstrapData(cloneFlags uintptr, nsMaps map[configs.Na + Type: GidmapAttr, + Value: b, + }) +- // check if we have CAP_SETGID to setgroup properly +- pid, err := capability.NewPid(os.Getpid()) +- if err != nil { +- return nil, err +- } +- if !pid.Get(capability.EFFECTIVE, capability.CAP_SETGID) { +- r.AddData(&Boolmsg{ +- Type: SetgroupAttr, +- Value: true, +- }) ++ // The following only applies if we are root. ++ if !c.config.Rootless { ++ // check if we have CAP_SETGID to setgroup properly ++ pid, err := capability.NewPid(os.Getpid()) ++ if err != nil { ++ return nil, err ++ } ++ if !pid.Get(capability.EFFECTIVE, capability.CAP_SETGID) { ++ r.AddData(&Boolmsg{ ++ Type: SetgroupAttr, ++ Value: true, ++ }) ++ } + } + } + } +@@ -1466,5 +1489,11 @@ func (c *linuxContainer) bootstrapData(cloneFlags uintptr, nsMaps map[configs.Na + Value: []byte(fmt.Sprintf("%d", c.config.OomScoreAdj)), + }) + ++ // write rootless ++ r.AddData(&Boolmsg{ ++ Type: RootlessAttr, ++ Value: c.config.Rootless, ++ }) ++ + return bytes.NewReader(r.Serialize()), nil + } +diff --git a/libcontainer/init_linux.go b/libcontainer/init_linux.go +index 0f5d412..1187835 100644 +--- a/libcontainer/init_linux.go ++++ b/libcontainer/init_linux.go +@@ -58,6 +58,7 @@ type initConfig struct { + ContainerId string `json:"containerid"` + Rlimits []configs.Rlimit `json:"rlimits"` + CreateConsole bool `json:"create_console"` ++ Rootless bool `json:"rootless"` + } + + type initer interface { +@@ -229,18 +230,21 @@ func syncParentHooks(pipe io.ReadWriter) error { + func setupUser(config *initConfig) error { + // Set up defaults. + defaultExecUser := user.ExecUser{ +- Uid: syscall.Getuid(), +- Gid: syscall.Getgid(), ++ Uid: 0, ++ Gid: 0, + Home: "/", + } ++ + passwdPath, err := user.GetPasswdPath() + if err != nil { + return err + } ++ + groupPath, err := user.GetGroupPath() + if err != nil { + return err + } ++ + execUser, err := user.GetExecUserPath(config.User, &defaultExecUser, passwdPath, groupPath) + if err != nil { + return err +@@ -253,22 +257,49 @@ func setupUser(config *initConfig) error { + return err + } + } ++ ++ if config.Rootless { ++ if execUser.Uid != 0 { ++ return fmt.Errorf("cannot run as a non-root user in a rootless container") ++ } ++ ++ if execUser.Gid != 0 { ++ return fmt.Errorf("cannot run as a non-root group in a rootless container") ++ } ++ ++ // We cannot set any additional groups in a rootless container and thus we ++ // bail if the user asked us to do so. TODO: We currently can't do this ++ // earlier, but if libcontainer.Process.User was typesafe this might work. ++ if len(addGroups) > 0 { ++ return fmt.Errorf("cannot set any additional groups in a rootless container") ++ } ++ } ++ + // before we change to the container's user make sure that the processes STDIO + // is correctly owned by the user that we are switching to. + if err := fixStdioPermissions(execUser); err != nil { + return err + } +- suppGroups := append(execUser.Sgids, addGroups...) +- if err := syscall.Setgroups(suppGroups); err != nil { +- return err ++ ++ // This isn't allowed in an unprivileged user namespace since Linux 3.19. ++ // There's nothing we can do about /etc/group entries, so we silently ++ // ignore setting groups here (since the user didn't explicitly ask us to ++ // set the group). ++ if !config.Rootless { ++ suppGroups := append(execUser.Sgids, addGroups...) ++ if err := syscall.Setgroups(suppGroups); err != nil { ++ return err ++ } + } + + if err := system.Setgid(execUser.Gid); err != nil { + return err + } ++ + if err := system.Setuid(execUser.Uid); err != nil { + return err + } ++ + // if we didn't get HOME already, set it based on the user's HOME + if envHome := os.Getenv("HOME"); envHome == "" { + if err := os.Setenv("HOME", execUser.Home); err != nil { +diff --git a/libcontainer/message_linux.go b/libcontainer/message_linux.go +index 321d664..bc725a2 100644 +--- a/libcontainer/message_linux.go ++++ b/libcontainer/message_linux.go +@@ -18,6 +18,7 @@ const ( + GidmapAttr uint16 = 27284 + SetgroupAttr uint16 = 27285 + OomScoreAdjAttr uint16 = 27286 ++ RootlessAttr uint16 = 27287 + + // When syscall.NLA_HDRLEN is in gccgo, take this out. + syscall_NLA_HDRLEN = (syscall.SizeofNlAttr + syscall.NLA_ALIGNTO - 1) & ^(syscall.NLA_ALIGNTO - 1) +diff --git a/libcontainer/nsenter/nsexec.c b/libcontainer/nsenter/nsexec.c +index 9630206..0ad6883 100644 +--- a/libcontainer/nsenter/nsexec.c ++++ b/libcontainer/nsenter/nsexec.c +@@ -72,6 +72,7 @@ struct nlconfig_t { + char *namespaces; + size_t namespaces_len; + uint8_t is_setgroup; ++ uint8_t is_rootless; + char *oom_score_adj; + size_t oom_score_adj_len; + }; +@@ -87,6 +88,7 @@ struct nlconfig_t { + #define GIDMAP_ATTR 27284 + #define SETGROUP_ATTR 27285 + #define OOM_SCORE_ADJ_ATTR 27286 ++#define ROOTLESS_ATTR 27287 + + /* + * Use the raw syscall for versions of glibc which don't include a function for +@@ -175,6 +177,7 @@ static void update_setgroups(int pid, enum policy_t setgroup) + policy = "deny"; + break; + case SETGROUPS_DEFAULT: ++ default: + /* Nothing to do. */ + return; + } +@@ -329,6 +332,9 @@ static void nl_parse(int fd, struct nlconfig_t *config) + case CLONE_FLAGS_ATTR: + config->cloneflags = readint32(current); + break; ++ case ROOTLESS_ATTR: ++ config->is_rootless = readint8(current); ++ break; + case OOM_SCORE_ADJ_ATTR: + config->oom_score_adj = current; + config->oom_score_adj_len = payload_len; +@@ -574,9 +580,21 @@ void nsexec(void) + + exit(ret); + case SYNC_USERMAP_PLS: +- /* Enable setgroups(2) if we've been asked to. */ ++ /* ++ * Enable setgroups(2) if we've been asked to. But we also ++ * have to explicitly disable setgroups(2) if we're ++ * creating a rootless container (this is required since ++ * Linux 3.19). ++ */ ++ if (config.is_rootless && config.is_setgroup) { ++ kill(child, SIGKILL); ++ bail("cannot allow setgroup in an unprivileged user namespace setup"); ++ } ++ + if (config.is_setgroup) + update_setgroups(child, SETGROUPS_ALLOW); ++ if (config.is_rootless) ++ update_setgroups(child, SETGROUPS_DENY); + + /* Set up mappings. */ + update_uidmap(child, config.uidmap, config.uidmap_len); +@@ -818,8 +836,10 @@ void nsexec(void) + if (setgid(0) < 0) + bail("setgid failed"); + +- if (setgroups(0, NULL) < 0) +- bail("setgroups failed"); ++ if (!config.is_rootless && config.is_setgroup) { ++ if (setgroups(0, NULL) < 0) ++ bail("setgroups failed"); ++ } + + s = SYNC_CHILD_READY; + if (write(syncfd, &s, sizeof(s)) != sizeof(s)) +diff --git a/libcontainer/process_linux.go b/libcontainer/process_linux.go +index c60f473..e8b7506 100644 +--- a/libcontainer/process_linux.go ++++ b/libcontainer/process_linux.go +@@ -80,7 +80,8 @@ func (p *setnsProcess) start() (err error) { + if err = p.execSetns(); err != nil { + return newSystemErrorWithCause(err, "executing setns process") + } +- if len(p.cgroupPaths) > 0 { ++ // We can't join cgroups if we're in a rootless container. ++ if !p.config.Rootless && len(p.cgroupPaths) > 0 { + if err := cgroups.EnterPid(p.cgroupPaths, p.pid()); err != nil { + return newSystemErrorWithCausef(err, "adding pid %d to cgroups", p.pid()) + } +@@ -253,13 +254,15 @@ func (p *initProcess) start() error { + return newSystemErrorWithCausef(err, "getting pipe fds for pid %d", p.pid()) + } + p.setExternalDescriptors(fds) +- // Do this before syncing with child so that no children +- // can escape the cgroup +- if err := p.manager.Apply(p.pid()); err != nil { +- return newSystemErrorWithCause(err, "applying cgroup configuration for process") ++ if !p.container.config.Rootless { ++ // Do this before syncing with child so that no children can escape the ++ // cgroup. We can't do this if we're not running as root. ++ if err := p.manager.Apply(p.pid()); err != nil { ++ return newSystemErrorWithCause(err, "applying cgroup configuration for process") ++ } + } + defer func() { +- if err != nil { ++ if err != nil && !p.container.config.Rootless { + // TODO: should not be the responsibility to call here + p.manager.Destroy() + } +@@ -278,8 +281,11 @@ func (p *initProcess) start() error { + ierr := parseSync(p.parentPipe, func(sync *syncT) error { + switch sync.Type { + case procReady: +- if err := p.manager.Set(p.config.Config); err != nil { +- return newSystemErrorWithCause(err, "setting cgroup config for ready process") ++ // We can't set cgroups if we're in a rootless container. ++ if !p.container.config.Rootless { ++ if err := p.manager.Set(p.config.Config); err != nil { ++ return newSystemErrorWithCause(err, "setting cgroup config for ready process") ++ } + } + // set rlimits, this has to be done here because we lose permissions + // to raise the limits once we enter a user-namespace +@@ -424,6 +430,12 @@ func getPipeFds(pid int) ([]string, error) { + f := filepath.Join(dirPath, strconv.Itoa(i)) + target, err := os.Readlink(f) + if err != nil { ++ // Ignore permission errors, for rootless containers and other ++ // non-dumpable processes. if we can't get the fd for a particular ++ // file, there's not much we can do. ++ if os.IsPermission(err) { ++ continue ++ } + return fds, err + } + fds[i] = target +diff --git a/libcontainer/specconv/example.go b/libcontainer/specconv/example.go +new file mode 100644 +index 0000000..44fad97 +--- /dev/null ++++ b/libcontainer/specconv/example.go +@@ -0,0 +1,160 @@ ++package specconv ++ ++import ( ++ "runtime" ++ ++ "github.com/opencontainers/runtime-spec/specs-go" ++) ++ ++func sPtr(s string) *string { return &s } ++ ++// ExampleSpec returns an example spec file, with many options set so a user ++// can see what a standard spec file looks like. ++func ExampleSpec() *specs.Spec { ++ return &specs.Spec{ ++ Version: specs.Version, ++ Platform: specs.Platform{ ++ OS: runtime.GOOS, ++ Arch: runtime.GOARCH, ++ }, ++ Root: specs.Root{ ++ Path: "rootfs", ++ Readonly: true, ++ }, ++ Process: specs.Process{ ++ Terminal: true, ++ User: specs.User{}, ++ Args: []string{ ++ "sh", ++ }, ++ Env: []string{ ++ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", ++ "TERM=xterm", ++ }, ++ Cwd: "/", ++ NoNewPrivileges: true, ++ Capabilities: &specs.LinuxCapabilities{ ++ Bounding: []string{ ++ "CAP_AUDIT_WRITE", ++ "CAP_KILL", ++ "CAP_NET_BIND_SERVICE", ++ }, ++ Permitted: []string{ ++ "CAP_AUDIT_WRITE", ++ "CAP_KILL", ++ "CAP_NET_BIND_SERVICE", ++ }, ++ Inheritable: []string{ ++ "CAP_AUDIT_WRITE", ++ "CAP_KILL", ++ "CAP_NET_BIND_SERVICE", ++ }, ++ Ambient: []string{ ++ "CAP_AUDIT_WRITE", ++ "CAP_KILL", ++ "CAP_NET_BIND_SERVICE", ++ }, ++ Effective: []string{ ++ "CAP_AUDIT_WRITE", ++ "CAP_KILL", ++ "CAP_NET_BIND_SERVICE", ++ }, ++ }, ++ Rlimits: []specs.LinuxRlimit{ ++ { ++ Type: "RLIMIT_NOFILE", ++ Hard: uint64(1024), ++ Soft: uint64(1024), ++ }, ++ }, ++ }, ++ Hostname: "runc", ++ Mounts: []specs.Mount{ ++ { ++ Destination: "/proc", ++ Type: "proc", ++ Source: "proc", ++ Options: nil, ++ }, ++ { ++ Destination: "/dev", ++ Type: "tmpfs", ++ Source: "tmpfs", ++ Options: []string{"nosuid", "strictatime", "mode=755", "size=65536k"}, ++ }, ++ { ++ Destination: "/dev/pts", ++ Type: "devpts", ++ Source: "devpts", ++ Options: []string{"nosuid", "noexec", "newinstance", "ptmxmode=0666", "mode=0620", "gid=5"}, ++ }, ++ { ++ Destination: "/dev/shm", ++ Type: "tmpfs", ++ Source: "shm", ++ Options: []string{"nosuid", "noexec", "nodev", "mode=1777", "size=65536k"}, ++ }, ++ { ++ Destination: "/dev/mqueue", ++ Type: "mqueue", ++ Source: "mqueue", ++ Options: []string{"nosuid", "noexec", "nodev"}, ++ }, ++ { ++ Destination: "/sys", ++ Type: "sysfs", ++ Source: "sysfs", ++ Options: []string{"nosuid", "noexec", "nodev", "ro"}, ++ }, ++ { ++ Destination: "/sys/fs/cgroup", ++ Type: "cgroup", ++ Source: "cgroup", ++ Options: []string{"nosuid", "noexec", "nodev", "relatime", "ro"}, ++ }, ++ }, ++ Linux: &specs.Linux{ ++ MaskedPaths: []string{ ++ "/proc/kcore", ++ "/proc/latency_stats", ++ "/proc/timer_list", ++ "/proc/timer_stats", ++ "/proc/sched_debug", ++ "/sys/firmware", ++ }, ++ ReadonlyPaths: []string{ ++ "/proc/asound", ++ "/proc/bus", ++ "/proc/fs", ++ "/proc/irq", ++ "/proc/sys", ++ "/proc/sysrq-trigger", ++ }, ++ Resources: &specs.LinuxResources{ ++ Devices: []specs.LinuxDeviceCgroup{ ++ { ++ Allow: false, ++ Access: "rwm", ++ }, ++ }, ++ }, ++ Namespaces: []specs.LinuxNamespace{ ++ { ++ Type: "pid", ++ }, ++ { ++ Type: "network", ++ }, ++ { ++ Type: "ipc", ++ }, ++ { ++ Type: "uts", ++ }, ++ { ++ Type: "mount", ++ }, ++ }, ++ }, ++ } ++} +diff --git a/libcontainer/specconv/spec_linux.go b/libcontainer/specconv/spec_linux.go +index 52b3ca1..346b268 100644 +--- a/libcontainer/specconv/spec_linux.go ++++ b/libcontainer/specconv/spec_linux.go +@@ -145,6 +145,7 @@ type CreateOpts struct { + NoPivotRoot bool + NoNewKeyring bool + Spec *specs.Spec ++ Rootless bool + } + + // CreateLibcontainerConfig creates a new libcontainer configuration from a +@@ -175,6 +176,7 @@ func CreateLibcontainerConfig(opts *CreateOpts) (*configs.Config, error) { + Hostname: spec.Hostname, + Labels: append(labels, fmt.Sprintf("bundle=%s", cwd)), + NoNewKeyring: opts.NoNewKeyring, ++ Rootless: opts.Rootless, + } + + exists := false +@@ -208,7 +210,7 @@ func CreateLibcontainerConfig(opts *CreateOpts) (*configs.Config, error) { + if err := setupUserNamespace(spec, config); err != nil { + return nil, err + } +- c, err := createCgroupConfig(opts.CgroupName, opts.UseSystemdCgroup, spec) ++ c, err := createCgroupConfig(opts) + if err != nil { + return nil, err + } +@@ -264,8 +266,14 @@ func createLibcontainerMount(cwd string, m specs.Mount) *configs.Mount { + } + } + +-func createCgroupConfig(name string, useSystemdCgroup bool, spec *specs.Spec) (*configs.Cgroup, error) { +- var myCgroupPath string ++func createCgroupConfig(opts *CreateOpts) (*configs.Cgroup, error) { ++ var ( ++ myCgroupPath string ++ ++ spec = opts.Spec ++ useSystemdCgroup = opts.UseSystemdCgroup ++ name = opts.CgroupName ++ ) + + c := &configs.Cgroup{ + Resources: &configs.Resources{}, +@@ -301,9 +309,14 @@ func createCgroupConfig(name string, useSystemdCgroup bool, spec *specs.Spec) (* + c.Path = myCgroupPath + } + +- c.Resources.AllowedDevices = allowedDevices +- if spec.Linux == nil { +- return c, nil ++ // In rootless containers, any attempt to make cgroup changes will fail. ++ // libcontainer will validate this and we shouldn't add any cgroup options ++ // the user didn't specify. ++ if !opts.Rootless { ++ c.Resources.AllowedDevices = allowedDevices ++ if spec.Linux == nil { ++ return c, nil ++ } + } + r := spec.Linux.Resources + if r == nil { +@@ -340,8 +353,10 @@ func createCgroupConfig(name string, useSystemdCgroup bool, spec *specs.Spec) (* + } + c.Resources.Devices = append(c.Resources.Devices, dd) + } +- // append the default allowed devices to the end of the list +- c.Resources.Devices = append(c.Resources.Devices, allowedDevices...) ++ if !opts.Rootless { ++ // append the default allowed devices to the end of the list ++ c.Resources.Devices = append(c.Resources.Devices, allowedDevices...) ++ } + if r.Memory != nil { + if r.Memory.Limit != nil { + c.Resources.Memory = *r.Memory.Limit +diff --git a/libcontainer/specconv/spec_linux_test.go b/libcontainer/specconv/spec_linux_test.go +index baa2638..741fae6 100644 +--- a/libcontainer/specconv/spec_linux_test.go ++++ b/libcontainer/specconv/spec_linux_test.go +@@ -3,8 +3,10 @@ + package specconv + + import ( ++ "os" + "testing" + ++ "github.com/opencontainers/runc/libcontainer/configs/validate" + "github.com/opencontainers/runtime-spec/specs-go" + ) + +@@ -16,7 +18,13 @@ func TestLinuxCgroupsPathSpecified(t *testing.T) { + CgroupsPath: cgroupsPath, + } + +- cgroup, err := createCgroupConfig("ContainerID", false, spec) ++ opts := &CreateOpts{ ++ CgroupName: "ContainerID", ++ UseSystemdCgroup: false, ++ Spec: spec, ++ } ++ ++ cgroup, err := createCgroupConfig(opts) + if err != nil { + t.Errorf("Couldn't create Cgroup config: %v", err) + } +@@ -28,8 +36,13 @@ func TestLinuxCgroupsPathSpecified(t *testing.T) { + + func TestLinuxCgroupsPathNotSpecified(t *testing.T) { + spec := &specs.Spec{} ++ opts := &CreateOpts{ ++ CgroupName: "ContainerID", ++ UseSystemdCgroup: false, ++ Spec: spec, ++ } + +- cgroup, err := createCgroupConfig("ContainerID", false, spec) ++ cgroup, err := createCgroupConfig(opts) + if err != nil { + t.Errorf("Couldn't create Cgroup config: %v", err) + } +@@ -39,6 +52,26 @@ func TestLinuxCgroupsPathNotSpecified(t *testing.T) { + } + } + ++func TestSpecconvExampleValidate(t *testing.T) { ++ spec := ExampleSpec() ++ spec.Root.Path = "/" ++ opts := &CreateOpts{ ++ CgroupName: "ContainerID", ++ UseSystemdCgroup: false, ++ Spec: spec, ++ } ++ ++ config, err := CreateLibcontainerConfig(opts) ++ if err != nil { ++ t.Errorf("Couldn't create libcontainer config: %v", err) ++ } ++ ++ validator := validate.New() ++ if err := validator.Validate(config); err != nil { ++ t.Errorf("Expected specconv to produce valid container config: %v", err) ++ } ++} ++ + func TestDupNamespaces(t *testing.T) { + spec := &specs.Spec{ + Linux: &specs.Linux{ +@@ -62,3 +95,46 @@ func TestDupNamespaces(t *testing.T) { + t.Errorf("Duplicated namespaces should be forbidden") + } + } ++ ++func TestRootlessSpecconvValidate(t *testing.T) { ++ spec := &specs.Spec{ ++ Linux: specs.Linux{ ++ Namespaces: []specs.Namespace{ ++ { ++ Type: specs.UserNamespace, ++ }, ++ }, ++ UIDMappings: []specs.IDMapping{ ++ { ++ HostID: uint32(os.Geteuid()), ++ ContainerID: 0, ++ Size: 1, ++ }, ++ }, ++ GIDMappings: []specs.IDMapping{ ++ { ++ HostID: uint32(os.Getegid()), ++ ContainerID: 0, ++ Size: 1, ++ }, ++ }, ++ }, ++ } ++ ++ opts := &CreateOpts{ ++ CgroupName: "ContainerID", ++ UseSystemdCgroup: false, ++ Spec: spec, ++ Rootless: true, ++ } ++ ++ config, err := CreateLibcontainerConfig(opts) ++ if err != nil { ++ t.Errorf("Couldn't create libcontainer config: %v", err) ++ } ++ ++ validator := validate.New() ++ if err := validator.Validate(config); err != nil { ++ t.Errorf("Expected specconv to produce valid rootless container config: %v", err) ++ } ++} +diff --git a/list.go b/list.go +index c7550a2..1c3b9aa 100644 +--- a/list.go ++++ b/list.go +@@ -7,12 +7,14 @@ import ( + "io/ioutil" + "os" + "path/filepath" ++ "syscall" + "text/tabwriter" + "time" + + "encoding/json" + + "github.com/opencontainers/runc/libcontainer" ++ "github.com/opencontainers/runc/libcontainer/user" + "github.com/opencontainers/runc/libcontainer/utils" + "github.com/urfave/cli" + ) +@@ -38,6 +40,8 @@ type containerState struct { + Created time.Time `json:"created"` + // Annotations is the user defined annotations added to the config. + Annotations map[string]string `json:"annotations,omitempty"` ++ // The owner of the state directory (the owner of the container). ++ Owner string `json:"owner"` + } + + var listCommand = cli.Command{ +@@ -85,14 +89,15 @@ To list containers created using a non-default value for "--root": + switch context.String("format") { + case "table": + w := tabwriter.NewWriter(os.Stdout, 12, 1, 3, ' ', 0) +- fmt.Fprint(w, "ID\tPID\tSTATUS\tBUNDLE\tCREATED\n") ++ fmt.Fprint(w, "ID\tPID\tSTATUS\tBUNDLE\tCREATED\tOWNER\n") + for _, item := range s { +- fmt.Fprintf(w, "%s\t%d\t%s\t%s\t%s\n", ++ fmt.Fprintf(w, "%s\t%d\t%s\t%s\t%s\t%s\n", + item.ID, + item.InitProcessPid, + item.Status, + item.Bundle, +- item.Created.Format(time.RFC3339Nano)) ++ item.Created.Format(time.RFC3339Nano), ++ item.Owner) + } + if err := w.Flush(); err != nil { + return err +@@ -126,6 +131,13 @@ func getContainers(context *cli.Context) ([]containerState, error) { + var s []containerState + for _, item := range list { + if item.IsDir() { ++ // This cast is safe on Linux. ++ stat := item.Sys().(*syscall.Stat_t) ++ owner, err := user.LookupUid(int(stat.Uid)) ++ if err != nil { ++ owner.Name = string(stat.Uid) ++ } ++ + container, err := factory.Load(item.Name()) + if err != nil { + fmt.Fprintf(os.Stderr, "load container %s: %v\n", item.Name(), err) +@@ -155,6 +167,7 @@ func getContainers(context *cli.Context) ([]containerState, error) { + Rootfs: state.BaseState.Config.Rootfs, + Created: state.BaseState.Created, + Annotations: annotations, ++ Owner: owner.Name, + }) + } + } +diff --git a/ps.go b/ps.go +index b8a1b11..6e0c737 100644 +--- a/ps.go ++++ b/ps.go +@@ -28,6 +28,11 @@ var psCommand = cli.Command{ + if err := checkArgs(context, 1, minArgs); err != nil { + return err + } ++ // XXX: Currently not supported with rootless containers. ++ if isRootless() { ++ return fmt.Errorf("runc ps requires root") ++ } ++ + container, err := getContainer(context) + if err != nil { + return err +diff --git a/restore.go b/restore.go +index afc6046..06f635f 100644 +--- a/restore.go ++++ b/restore.go +@@ -3,6 +3,7 @@ + package main + + import ( ++ "fmt" + "os" + "syscall" + +@@ -86,6 +87,11 @@ using the runc checkpoint command.`, + if err := checkArgs(context, 1, exactArgs); err != nil { + return err + } ++ // XXX: Currently this is untested with rootless containers. ++ if isRootless() { ++ return fmt.Errorf("runc restore requires root") ++ } ++ + imagePath := context.String("image-path") + id := context.Args().First() + if id == "" { +diff --git a/spec.go b/spec.go +index 1b55c6b..d7df312 100644 +--- a/spec.go ++++ b/spec.go +@@ -10,6 +10,7 @@ import ( + "runtime" + + "github.com/opencontainers/runc/libcontainer/configs" ++ "github.com/opencontainers/runc/libcontainer/specconv" + "github.com/opencontainers/runtime-spec/specs-go" + "github.com/urfave/cli" + ) +@@ -68,152 +69,7 @@ container on your host.`, + if err := checkArgs(context, 0, exactArgs); err != nil { + return err + } +- spec := specs.Spec{ +- Version: specs.Version, +- Platform: specs.Platform{ +- OS: runtime.GOOS, +- Arch: runtime.GOARCH, +- }, +- Root: specs.Root{ +- Path: "rootfs", +- Readonly: true, +- }, +- Process: specs.Process{ +- Terminal: true, +- User: specs.User{}, +- Args: []string{ +- "sh", +- }, +- Env: []string{ +- "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", +- "TERM=xterm", +- }, +- Cwd: "/", +- NoNewPrivileges: true, +- Capabilities: &specs.LinuxCapabilities{ +- Bounding: []string{ +- "CAP_AUDIT_WRITE", +- "CAP_KILL", +- "CAP_NET_BIND_SERVICE", +- }, +- Permitted: []string{ +- "CAP_AUDIT_WRITE", +- "CAP_KILL", +- "CAP_NET_BIND_SERVICE", +- }, +- Inheritable: []string{ +- "CAP_AUDIT_WRITE", +- "CAP_KILL", +- "CAP_NET_BIND_SERVICE", +- }, +- Ambient: []string{ +- "CAP_AUDIT_WRITE", +- "CAP_KILL", +- "CAP_NET_BIND_SERVICE", +- }, +- Effective: []string{ +- "CAP_AUDIT_WRITE", +- "CAP_KILL", +- "CAP_NET_BIND_SERVICE", +- }, +- }, +- Rlimits: []specs.LinuxRlimit{ +- { +- Type: "RLIMIT_NOFILE", +- Hard: uint64(1024), +- Soft: uint64(1024), +- }, +- }, +- }, +- Hostname: "runc", +- Mounts: []specs.Mount{ +- { +- Destination: "/proc", +- Type: "proc", +- Source: "proc", +- Options: nil, +- }, +- { +- Destination: "/dev", +- Type: "tmpfs", +- Source: "tmpfs", +- Options: []string{"nosuid", "strictatime", "mode=755", "size=65536k"}, +- }, +- { +- Destination: "/dev/pts", +- Type: "devpts", +- Source: "devpts", +- Options: []string{"nosuid", "noexec", "newinstance", "ptmxmode=0666", "mode=0620", "gid=5"}, +- }, +- { +- Destination: "/dev/shm", +- Type: "tmpfs", +- Source: "shm", +- Options: []string{"nosuid", "noexec", "nodev", "mode=1777", "size=65536k"}, +- }, +- { +- Destination: "/dev/mqueue", +- Type: "mqueue", +- Source: "mqueue", +- Options: []string{"nosuid", "noexec", "nodev"}, +- }, +- { +- Destination: "/sys", +- Type: "sysfs", +- Source: "sysfs", +- Options: []string{"nosuid", "noexec", "nodev", "ro"}, +- }, +- { +- Destination: "/sys/fs/cgroup", +- Type: "cgroup", +- Source: "cgroup", +- Options: []string{"nosuid", "noexec", "nodev", "relatime", "ro"}, +- }, +- }, +- Linux: &specs.Linux{ +- MaskedPaths: []string{ +- "/proc/kcore", +- "/proc/latency_stats", +- "/proc/timer_list", +- "/proc/timer_stats", +- "/proc/sched_debug", +- "/sys/firmware", +- }, +- ReadonlyPaths: []string{ +- "/proc/asound", +- "/proc/bus", +- "/proc/fs", +- "/proc/irq", +- "/proc/sys", +- "/proc/sysrq-trigger", +- }, +- Resources: &specs.LinuxResources{ +- Devices: []specs.LinuxDeviceCgroup{ +- { +- Allow: false, +- Access: "rwm", +- }, +- }, +- }, +- Namespaces: []specs.LinuxNamespace{ +- { +- Type: "pid", +- }, +- { +- Type: "network", +- }, +- { +- Type: "ipc", +- }, +- { +- Type: "uts", +- }, +- { +- Type: "mount", +- }, +- }, +- }, +- } ++ spec := specconv.ExampleSpec() + + checkNoFile := func(name string) error { + _, err := os.Stat(name) +@@ -234,7 +90,7 @@ container on your host.`, + if err := checkNoFile(specConfig); err != nil { + return err + } +- data, err := json.MarshalIndent(&spec, "", "\t") ++ data, err := json.MarshalIndent(spec, "", "\t") + if err != nil { + return err + } +diff --git a/utils.go b/utils.go +index 1286fd6..98f93a4 100644 +--- a/utils.go ++++ b/utils.go +@@ -63,9 +63,6 @@ func setupSpec(context *cli.Context) (*specs.Spec, error) { + if err != nil { + return nil, err + } +- if os.Geteuid() != 0 { +- return nil, fmt.Errorf("runc should be run as root") +- } + return spec, nil + } + +diff --git a/utils_linux.go b/utils_linux.go +index dcf156c..767015e 100644 +--- a/utils_linux.go ++++ b/utils_linux.go +@@ -186,6 +186,11 @@ func createPidFile(path string, process *libcontainer.Process) error { + return os.Rename(tmpName, path) + } + ++// XXX: Currently we autodetect rootless mode. ++func isRootless() bool { ++ return os.Geteuid() != 0 ++} ++ + func createContainer(context *cli.Context, id string, spec *specs.Spec) (libcontainer.Container, error) { + config, err := specconv.CreateLibcontainerConfig(&specconv.CreateOpts{ + CgroupName: id, +@@ -193,6 +198,7 @@ func createContainer(context *cli.Context, id string, spec *specs.Spec) (libcont + NoPivotRoot: context.Bool("no-pivot"), + NoNewKeyring: context.Bool("no-new-keyring"), + Spec: spec, ++ Rootless: isRootless(), + }) + if err != nil { + return nil, err +-- +2.7.4.3 + diff --git a/patch/0006-rootless-add-rootless-cgroup-manager.patch b/patch/0006-rootless-add-rootless-cgroup-manager.patch new file mode 100644 index 0000000..0e7858f --- /dev/null +++ b/patch/0006-rootless-add-rootless-cgroup-manager.patch @@ -0,0 +1,421 @@ +From 6c69b3f5c8eb23eb47917371b4ae69a76912ec83 Mon Sep 17 00:00:00 2001 +From: Aleksa Sarai +Date: Tue, 26 Apr 2016 02:19:39 +1000 +Subject: [PATCH 06/94] rootless: add rootless cgroup manager + +The rootless cgroup manager acts as a noop for all set and apply +operations. It is just used for rootless setups. Currently this is far +too simple (we need to add opportunistic cgroup management), but is good +enough as a first-pass at a noop cgroup manager. + +Change-Id: Iae5668680e5e2896246792fe6f2ac1bb37eab1d5 +Signed-off-by: Aleksa Sarai +--- + libcontainer/cgroups/fs/apply_raw.go | 24 +---- + libcontainer/cgroups/rootless/rootless.go | 128 ++++++++++++++++++++++++++ + libcontainer/cgroups/systemd/apply_systemd.go | 2 +- + libcontainer/cgroups/utils.go | 41 ++++++++- + libcontainer/container_linux.go | 8 ++ + libcontainer/factory_linux.go | 22 +++++ + libcontainer/process_linux.go | 20 ++-- + libcontainer/rootfs_linux.go | 2 +- + 8 files changed, 210 insertions(+), 37 deletions(-) + create mode 100644 libcontainer/cgroups/rootless/rootless.go + +diff --git a/libcontainer/cgroups/fs/apply_raw.go b/libcontainer/cgroups/fs/apply_raw.go +index d316313..22d82ac 100644 +--- a/libcontainer/cgroups/fs/apply_raw.go ++++ b/libcontainer/cgroups/fs/apply_raw.go +@@ -267,25 +267,8 @@ func getCgroupData(c *configs.Cgroup, pid int) (*cgroupData, error) { + }, nil + } + +-func (raw *cgroupData) parentPath(subsystem, mountpoint, root string) (string, error) { +- // Use GetThisCgroupDir instead of GetInitCgroupDir, because the creating +- // process could in container and shared pid namespace with host, and +- // /proc/1/cgroup could point to whole other world of cgroups. +- initPath, err := cgroups.GetThisCgroupDir(subsystem) +- if err != nil { +- return "", err +- } +- // This is needed for nested containers, because in /proc/self/cgroup we +- // see pathes from host, which don't exist in container. +- relDir, err := filepath.Rel(root, initPath) +- if err != nil { +- return "", err +- } +- return filepath.Join(mountpoint, relDir), nil +-} +- + func (raw *cgroupData) path(subsystem string) (string, error) { +- mnt, root, err := cgroups.FindCgroupMountpointAndRoot(subsystem) ++ mnt, err := cgroups.FindCgroupMountpoint(subsystem) + // If we didn't mount the subsystem, there is no point we make the path. + if err != nil { + return "", err +@@ -297,7 +280,10 @@ func (raw *cgroupData) path(subsystem string) (string, error) { + return filepath.Join(raw.root, filepath.Base(mnt), raw.innerPath), nil + } + +- parentPath, err := raw.parentPath(subsystem, mnt, root) ++ // Use GetOwnCgroupPath instead of GetInitCgroupPath, because the creating ++ // process could in container and shared pid namespace with host, and ++ // /proc/1/cgroup could point to whole other world of cgroups. ++ parentPath, err := cgroups.GetOwnCgroupPath(subsystem) + if err != nil { + return "", err + } +diff --git a/libcontainer/cgroups/rootless/rootless.go b/libcontainer/cgroups/rootless/rootless.go +new file mode 100644 +index 0000000..b1efbfd +--- /dev/null ++++ b/libcontainer/cgroups/rootless/rootless.go +@@ -0,0 +1,128 @@ ++// +build linux ++ ++package rootless ++ ++import ( ++ "fmt" ++ ++ "github.com/opencontainers/runc/libcontainer/cgroups" ++ "github.com/opencontainers/runc/libcontainer/cgroups/fs" ++ "github.com/opencontainers/runc/libcontainer/configs" ++ "github.com/opencontainers/runc/libcontainer/configs/validate" ++) ++ ++// TODO: This is copied from libcontainer/cgroups/fs, which duplicates this code ++// needlessly. We should probably export this list. ++ ++var subsystems = []subsystem{ ++ &fs.CpusetGroup{}, ++ &fs.DevicesGroup{}, ++ &fs.MemoryGroup{}, ++ &fs.CpuGroup{}, ++ &fs.CpuacctGroup{}, ++ &fs.PidsGroup{}, ++ &fs.BlkioGroup{}, ++ &fs.HugetlbGroup{}, ++ &fs.NetClsGroup{}, ++ &fs.NetPrioGroup{}, ++ &fs.PerfEventGroup{}, ++ &fs.FreezerGroup{}, ++ &fs.NameGroup{GroupName: "name=systemd"}, ++} ++ ++type subsystem interface { ++ // Name returns the name of the subsystem. ++ Name() string ++ ++ // Returns the stats, as 'stats', corresponding to the cgroup under 'path'. ++ GetStats(path string, stats *cgroups.Stats) error ++} ++ ++// The noop cgroup manager is used for rootless containers, because we currently ++// cannot manage cgroups if we are in a rootless setup. This manager is chosen ++// by factory if we are in rootless mode. We error out if any cgroup options are ++// set in the config -- this may change in the future with upcoming kernel features ++// like the cgroup namespace. ++ ++type Manager struct { ++ Cgroups *configs.Cgroup ++ Paths map[string]string ++} ++ ++func (m *Manager) Apply(pid int) error { ++ // If there are no cgroup settings, there's nothing to do. ++ if m.Cgroups == nil { ++ return nil ++ } ++ ++ // We can't set paths. ++ // TODO(cyphar): Implement the case where the runner of a rootless container ++ // owns their own cgroup, which would allow us to set up a ++ // cgroup for each path. ++ if m.Cgroups.Paths != nil { ++ return fmt.Errorf("cannot change cgroup path in rootless container") ++ } ++ ++ // We load the paths into the manager. ++ paths := make(map[string]string) ++ for _, sys := range subsystems { ++ name := sys.Name() ++ ++ path, err := cgroups.GetOwnCgroupPath(name) ++ if err != nil { ++ // Ignore paths we couldn't resolve. ++ continue ++ } ++ ++ paths[name] = path ++ } ++ ++ m.Paths = paths ++ return nil ++} ++ ++func (m *Manager) GetPaths() map[string]string { ++ return m.Paths ++} ++ ++func (m *Manager) Set(container *configs.Config) error { ++ // We have to re-do the validation here, since someone might decide to ++ // update a rootless container. ++ return validate.New().Validate(container) ++} ++ ++func (m *Manager) GetPids() ([]int, error) { ++ dir, err := cgroups.GetOwnCgroupPath("devices") ++ if err != nil { ++ return nil, err ++ } ++ return cgroups.GetPids(dir) ++} ++ ++func (m *Manager) GetAllPids() ([]int, error) { ++ dir, err := cgroups.GetOwnCgroupPath("devices") ++ if err != nil { ++ return nil, err ++ } ++ return cgroups.GetAllPids(dir) ++} ++ ++func (m *Manager) GetStats() (*cgroups.Stats, error) { ++ // TODO(cyphar): We can make this work if we figure out a way to allow usage ++ // of cgroups with a rootless container. While this doesn't ++ // actually require write access to a cgroup directory, the ++ // statistics are not useful if they can be affected by ++ // non-container processes. ++ return nil, fmt.Errorf("cannot get cgroup stats in rootless container") ++} ++ ++func (m *Manager) Freeze(state configs.FreezerState) error { ++ // TODO(cyphar): We can make this work if we figure out a way to allow usage ++ // of cgroups with a rootless container. ++ return fmt.Errorf("cannot use freezer cgroup in rootless container") ++} ++ ++func (m *Manager) Destroy() error { ++ // We don't have to do anything here because we didn't do any setup. ++ return nil ++} +diff --git a/libcontainer/cgroups/systemd/apply_systemd.go b/libcontainer/cgroups/systemd/apply_systemd.go +index 2872bfa..456c57d 100644 +--- a/libcontainer/cgroups/systemd/apply_systemd.go ++++ b/libcontainer/cgroups/systemd/apply_systemd.go +@@ -426,7 +426,7 @@ func getSubsystemPath(c *configs.Cgroup, subsystem string) (string, error) { + return "", err + } + +- initPath, err := cgroups.GetInitCgroupDir(subsystem) ++ initPath, err := cgroups.GetInitCgroup(subsystem) + if err != nil { + return "", err + } +diff --git a/libcontainer/cgroups/utils.go b/libcontainer/cgroups/utils.go +index 52fc87e..5db3734 100644 +--- a/libcontainer/cgroups/utils.go ++++ b/libcontainer/cgroups/utils.go +@@ -109,7 +109,7 @@ type Mount struct { + Subsystems []string + } + +-func (m Mount) GetThisCgroupDir(cgroups map[string]string) (string, error) { ++func (m Mount) GetOwnCgroup(cgroups map[string]string) (string, error) { + if len(m.Subsystems) == 0 { + return "", fmt.Errorf("no subsystem for mount") + } +@@ -203,8 +203,8 @@ func GetAllSubsystems() ([]string, error) { + return subsystems, nil + } + +-// GetThisCgroupDir returns the relative path to the cgroup docker is running in. +-func GetThisCgroupDir(subsystem string) (string, error) { ++// GetOwnCgroup returns the relative path to the cgroup docker is running in. ++func GetOwnCgroup(subsystem string) (string, error) { + cgroups, err := ParseCgroupFile("/proc/self/cgroup") + if err != nil { + return "", err +@@ -213,8 +213,16 @@ func GetThisCgroupDir(subsystem string) (string, error) { + return getControllerPath(subsystem, cgroups) + } + +-func GetInitCgroupDir(subsystem string) (string, error) { ++func GetOwnCgroupPath(subsystem string) (string, error) { ++ cgroup, err := GetOwnCgroup(subsystem) ++ if err != nil { ++ return "", err ++ } + ++ return getCgroupPathHelper(subsystem, cgroup) ++} ++ ++func GetInitCgroup(subsystem string) (string, error) { + cgroups, err := ParseCgroupFile("/proc/1/cgroup") + if err != nil { + return "", err +@@ -223,6 +231,31 @@ func GetInitCgroupDir(subsystem string) (string, error) { + return getControllerPath(subsystem, cgroups) + } + ++func GetInitCgroupPath(subsystem string) (string, error) { ++ cgroup, err := GetInitCgroup(subsystem) ++ if err != nil { ++ return "", err ++ } ++ ++ return getCgroupPathHelper(subsystem, cgroup) ++} ++ ++func getCgroupPathHelper(subsystem, cgroup string) (string, error) { ++ mnt, root, err := FindCgroupMountpointAndRoot(subsystem) ++ if err != nil { ++ return "", err ++ } ++ ++ // This is needed for nested containers, because in /proc/self/cgroup we ++ // see pathes from host, which don't exist in container. ++ relCgroup, err := filepath.Rel(root, cgroup) ++ if err != nil { ++ return "", err ++ } ++ ++ return filepath.Join(mnt, relCgroup), nil ++} ++ + func readProcsFile(dir string) ([]int, error) { + f, err := os.Open(filepath.Join(dir, CgroupProcesses)) + if err != nil { +diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go +index 372763a..d847f18 100644 +--- a/libcontainer/container_linux.go ++++ b/libcontainer/container_linux.go +@@ -520,10 +520,18 @@ func (c *linuxContainer) Resume() error { + } + + func (c *linuxContainer) NotifyOOM() (<-chan struct{}, error) { ++ // XXX(cyphar): This requires cgroups. ++ if c.config.Rootless { ++ return nil, fmt.Errorf("cannot get OOM notifications from rootless container") ++ } + return notifyOnOOM(c.cgroupManager.GetPaths()) + } + + func (c *linuxContainer) NotifyMemoryPressure(level PressureLevel) (<-chan struct{}, error) { ++ // XXX(cyphar): This requires cgroups. ++ if c.config.Rootless { ++ return nil, fmt.Errorf("cannot get memory pressure notifications from rootless container") ++ } + return notifyMemoryPressure(c.cgroupManager.GetPaths(), level) + } + +diff --git a/libcontainer/factory_linux.go b/libcontainer/factory_linux.go +index d553287..1f965e6 100644 +--- a/libcontainer/factory_linux.go ++++ b/libcontainer/factory_linux.go +@@ -15,6 +15,7 @@ import ( + "github.com/docker/docker/pkg/mount" + "github.com/opencontainers/runc/libcontainer/cgroups" + "github.com/opencontainers/runc/libcontainer/cgroups/fs" ++ "github.com/opencontainers/runc/libcontainer/cgroups/rootless" + "github.com/opencontainers/runc/libcontainer/cgroups/systemd" + "github.com/opencontainers/runc/libcontainer/configs" + "github.com/opencontainers/runc/libcontainer/configs/validate" +@@ -73,6 +74,20 @@ func Cgroupfs(l *LinuxFactory) error { + return nil + } + ++// RootlessCgroups is an options func to configure a LinuxFactory to ++// return containers that use the "rootless" cgroup manager, which will ++// fail to do any operations not possible to do with an unprivileged user. ++// It should only be used in conjunction with rootless containers. ++func RootlessCgroups(l *LinuxFactory) error { ++ l.NewCgroupsManager = func(config *configs.Cgroup, paths map[string]string) cgroups.Manager { ++ return &rootless.Manager{ ++ Cgroups: config, ++ Paths: paths, ++ } ++ } ++ return nil ++} ++ + // TmpfsRoot is an option func to mount LinuxFactory.Root to tmpfs. + func TmpfsRoot(l *LinuxFactory) error { + mounted, err := mount.Mounted(l.Root) +@@ -169,6 +184,9 @@ func (l *LinuxFactory) Create(id string, config *configs.Config) (Container, err + if err := os.Chown(containerRoot, uid, gid); err != nil { + return nil, newGenericError(err, SystemError) + } ++ if config.Rootless { ++ RootlessCgroups(l) ++ } + c := &linuxContainer{ + id: id, + root: containerRoot, +@@ -195,6 +213,10 @@ func (l *LinuxFactory) Load(id string) (Container, error) { + processStartTime: state.InitProcessStartTime, + fds: state.ExternalDescriptors, + } ++ // We have to use the RootlessManager. ++ if state.Rootless { ++ RootlessCgroups(l) ++ } + c := &linuxContainer{ + initProcess: r, + initProcessStartTime: state.InitProcessStartTime, +diff --git a/libcontainer/process_linux.go b/libcontainer/process_linux.go +index e8b7506..bfe9955 100644 +--- a/libcontainer/process_linux.go ++++ b/libcontainer/process_linux.go +@@ -254,15 +254,14 @@ func (p *initProcess) start() error { + return newSystemErrorWithCausef(err, "getting pipe fds for pid %d", p.pid()) + } + p.setExternalDescriptors(fds) +- if !p.container.config.Rootless { +- // Do this before syncing with child so that no children can escape the +- // cgroup. We can't do this if we're not running as root. +- if err := p.manager.Apply(p.pid()); err != nil { +- return newSystemErrorWithCause(err, "applying cgroup configuration for process") +- } ++ // Do this before syncing with child so that no children can escape the ++ // cgroup. We don't need to worry about not doing this and not being root ++ // because we'd be using the rootless cgroup manager in that case. ++ if err := p.manager.Apply(p.pid()); err != nil { ++ return newSystemErrorWithCause(err, "applying cgroup configuration for process") + } + defer func() { +- if err != nil && !p.container.config.Rootless { ++ if err != nil { + // TODO: should not be the responsibility to call here + p.manager.Destroy() + } +@@ -281,11 +280,8 @@ func (p *initProcess) start() error { + ierr := parseSync(p.parentPipe, func(sync *syncT) error { + switch sync.Type { + case procReady: +- // We can't set cgroups if we're in a rootless container. +- if !p.container.config.Rootless { +- if err := p.manager.Set(p.config.Config); err != nil { +- return newSystemErrorWithCause(err, "setting cgroup config for ready process") +- } ++ if err := p.manager.Set(p.config.Config); err != nil { ++ return newSystemErrorWithCause(err, "setting cgroup config for ready process") + } + // set rlimits, this has to be done here because we lose permissions + // to raise the limits once we enter a user-namespace +diff --git a/libcontainer/rootfs_linux.go b/libcontainer/rootfs_linux.go +index 1045a45..d507373 100644 +--- a/libcontainer/rootfs_linux.go ++++ b/libcontainer/rootfs_linux.go +@@ -348,7 +348,7 @@ func getCgroupMounts(m *configs.Mount) ([]*configs.Mount, error) { + var binds []*configs.Mount + + for _, mm := range mounts { +- dir, err := mm.GetThisCgroupDir(cgroupPaths) ++ dir, err := mm.GetOwnCgroup(cgroupPaths) + if err != nil { + return nil, err + } +-- +2.7.4.3 + diff --git a/patch/0007-libcontainer-configs-add-proper-HostUID-and.patch b/patch/0007-libcontainer-configs-add-proper-HostUID-and.patch new file mode 100644 index 0000000..be6f687 --- /dev/null +++ b/patch/0007-libcontainer-configs-add-proper-HostUID-and.patch @@ -0,0 +1,256 @@ +From f139024bb220e087a20e8089b5dbd4fb4c06c4a8 Mon Sep 17 00:00:00 2001 +From: Aleksa Sarai +Date: Sat, 18 Mar 2017 04:32:16 +1100 +Subject: [PATCH 07/94] libcontainer: configs: add proper HostUID and + HostGID + +Previously Host{U,G}ID only gave you the root mapping, which isn't very +useful if you are trying to do other things with the IDMaps. + +Change-Id: Idceb42455e258e5514c966fe8363693adb9d0028 +Signed-off-by: Aleksa Sarai +--- + libcontainer/configs/config_unix.go | 40 ++++++++++++++++++++----------- + libcontainer/configs/config_unix_test.go | 16 ++++++------- + libcontainer/configs/validate/rootless.go | 4 ++-- + libcontainer/container_linux.go | 4 ++-- + libcontainer/factory_linux.go | 4 ++-- + libcontainer/specconv/spec_linux.go | 4 ++-- + utils_linux.go | 4 ++-- + 7 files changed, 44 insertions(+), 32 deletions(-) + +diff --git a/libcontainer/configs/config_unix.go b/libcontainer/configs/config_unix.go +index a60554a..8446399 100644 +--- a/libcontainer/configs/config_unix.go ++++ b/libcontainer/configs/config_unix.go +@@ -4,38 +4,50 @@ package configs + + import "fmt" + +-// HostUID gets the root uid for the process on host which could be non-zero +-// when user namespaces are enabled. +-func (c Config) HostUID() (int, error) { ++// HostUID gets the translated uid for the process on host which could be ++// different when user namespaces are enabled. ++func (c Config) HostUID(containerId int) (int, error) { + if c.Namespaces.Contains(NEWUSER) { + if c.UidMappings == nil { +- return -1, fmt.Errorf("User namespaces enabled, but no user mappings found.") ++ return -1, fmt.Errorf("User namespaces enabled, but no uid mappings found.") + } +- id, found := c.hostIDFromMapping(0, c.UidMappings) ++ id, found := c.hostIDFromMapping(containerId, c.UidMappings) + if !found { +- return -1, fmt.Errorf("User namespaces enabled, but no root user mapping found.") ++ return -1, fmt.Errorf("User namespaces enabled, but no user mapping found.") + } + return id, nil + } +- // Return default root uid 0 +- return 0, nil ++ // Return unchanged id. ++ return containerId, nil + } + +-// HostGID gets the root gid for the process on host which could be non-zero ++// HostRootUID gets the root uid for the process on host which could be non-zero + // when user namespaces are enabled. +-func (c Config) HostGID() (int, error) { ++func (c Config) HostRootUID() (int, error) { ++ return c.HostUID(0) ++} ++ ++// HostGID gets the translated gid for the process on host which could be ++// different when user namespaces are enabled. ++func (c Config) HostGID(containerId int) (int, error) { + if c.Namespaces.Contains(NEWUSER) { + if c.GidMappings == nil { + return -1, fmt.Errorf("User namespaces enabled, but no gid mappings found.") + } +- id, found := c.hostIDFromMapping(0, c.GidMappings) ++ id, found := c.hostIDFromMapping(containerId, c.GidMappings) + if !found { +- return -1, fmt.Errorf("User namespaces enabled, but no root group mapping found.") ++ return -1, fmt.Errorf("User namespaces enabled, but no group mapping found.") + } + return id, nil + } +- // Return default root gid 0 +- return 0, nil ++ // Return unchanged id. ++ return containerId, nil ++} ++ ++// HostRootGID gets the root gid for the process on host which could be non-zero ++// when user namespaces are enabled. ++func (c Config) HostRootGID() (int, error) { ++ return c.HostGID(0) + } + + // Utility function that gets a host ID for a container ID from user namespace map +diff --git a/libcontainer/configs/config_unix_test.go b/libcontainer/configs/config_unix_test.go +index dc01cd0..7f96615 100644 +--- a/libcontainer/configs/config_unix_test.go ++++ b/libcontainer/configs/config_unix_test.go +@@ -65,11 +65,11 @@ func TestRemoveNamespace(t *testing.T) { + } + } + +-func TestHostUIDNoUSERNS(t *testing.T) { ++func TestHostRootUIDNoUSERNS(t *testing.T) { + config := &Config{ + Namespaces: Namespaces{}, + } +- uid, err := config.HostUID() ++ uid, err := config.HostRootUID() + if err != nil { + t.Fatal(err) + } +@@ -78,7 +78,7 @@ func TestHostUIDNoUSERNS(t *testing.T) { + } + } + +-func TestHostUIDWithUSERNS(t *testing.T) { ++func TestHostRootUIDWithUSERNS(t *testing.T) { + config := &Config{ + Namespaces: Namespaces{{Type: NEWUSER}}, + UidMappings: []IDMap{ +@@ -89,7 +89,7 @@ func TestHostUIDWithUSERNS(t *testing.T) { + }, + }, + } +- uid, err := config.HostUID() ++ uid, err := config.HostRootUID() + if err != nil { + t.Fatal(err) + } +@@ -98,11 +98,11 @@ func TestHostUIDWithUSERNS(t *testing.T) { + } + } + +-func TestHostGIDNoUSERNS(t *testing.T) { ++func TestHostRootGIDNoUSERNS(t *testing.T) { + config := &Config{ + Namespaces: Namespaces{}, + } +- uid, err := config.HostGID() ++ uid, err := config.HostRootGID() + if err != nil { + t.Fatal(err) + } +@@ -111,7 +111,7 @@ func TestHostGIDNoUSERNS(t *testing.T) { + } + } + +-func TestHostGIDWithUSERNS(t *testing.T) { ++func TestHostRootGIDWithUSERNS(t *testing.T) { + config := &Config{ + Namespaces: Namespaces{{Type: NEWUSER}}, + GidMappings: []IDMap{ +@@ -122,7 +122,7 @@ func TestHostGIDWithUSERNS(t *testing.T) { + }, + }, + } +- uid, err := config.HostGID() ++ uid, err := config.HostRootGID() + if err != nil { + t.Fatal(err) + } +diff --git a/libcontainer/configs/validate/rootless.go b/libcontainer/configs/validate/rootless.go +index 1e83ced..0cebfaf 100644 +--- a/libcontainer/configs/validate/rootless.go ++++ b/libcontainer/configs/validate/rootless.go +@@ -37,7 +37,7 @@ func (v *ConfigValidator) rootless(config *configs.Config) error { + } + + func rootlessMappings(config *configs.Config) error { +- rootuid, err := config.HostUID() ++ rootuid, err := config.HostRootUID() + if err != nil { + return fmt.Errorf("failed to get root uid from uidMappings: %v", err) + } +@@ -50,7 +50,7 @@ func rootlessMappings(config *configs.Config) error { + } + } + +- rootgid, err := config.HostGID() ++ rootgid, err := config.HostRootGID() + if err != nil { + return fmt.Errorf("failed to get root gid from gidMappings: %v", err) + } +diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go +index d847f18..71fa682 100644 +--- a/libcontainer/container_linux.go ++++ b/libcontainer/container_linux.go +@@ -307,11 +307,11 @@ func (c *linuxContainer) Signal(s os.Signal, all bool) error { + } + + func (c *linuxContainer) createExecFifo() error { +- rootuid, err := c.Config().HostUID() ++ rootuid, err := c.Config().HostRootUID() + if err != nil { + return err + } +- rootgid, err := c.Config().HostGID() ++ rootgid, err := c.Config().HostRootGID() + if err != nil { + return err + } +diff --git a/libcontainer/factory_linux.go b/libcontainer/factory_linux.go +index 1f965e6..6a0f855 100644 +--- a/libcontainer/factory_linux.go ++++ b/libcontainer/factory_linux.go +@@ -164,11 +164,11 @@ func (l *LinuxFactory) Create(id string, config *configs.Config) (Container, err + if err := l.Validator.Validate(config); err != nil { + return nil, newGenericError(err, ConfigInvalid) + } +- uid, err := config.HostUID() ++ uid, err := config.HostRootUID() + if err != nil { + return nil, newGenericError(err, SystemError) + } +- gid, err := config.HostGID() ++ gid, err := config.HostRootGID() + if err != nil { + return nil, newGenericError(err, SystemError) + } +diff --git a/libcontainer/specconv/spec_linux.go b/libcontainer/specconv/spec_linux.go +index 346b268..1575ae0 100644 +--- a/libcontainer/specconv/spec_linux.go ++++ b/libcontainer/specconv/spec_linux.go +@@ -610,11 +610,11 @@ func setupUserNamespace(spec *specs.Spec, config *configs.Config) error { + for _, m := range spec.Linux.GIDMappings { + config.GidMappings = append(config.GidMappings, create(m)) + } +- rootUID, err := config.HostUID() ++ rootUID, err := config.HostRootUID() + if err != nil { + return err + } +- rootGID, err := config.HostGID() ++ rootGID, err := config.HostRootGID() + if err != nil { + return err + } +diff --git a/utils_linux.go b/utils_linux.go +index 767015e..c6a8c02 100644 +--- a/utils_linux.go ++++ b/utils_linux.go +@@ -242,12 +242,12 @@ func (r *runner) run(config *specs.Process) (int, error) { + for i := baseFd; i < baseFd+r.preserveFDs; i++ { + process.ExtraFiles = append(process.ExtraFiles, os.NewFile(uintptr(i), "PreserveFD:"+strconv.Itoa(i))) + } +- rootuid, err := r.container.Config().HostUID() ++ rootuid, err := r.container.Config().HostRootUID() + if err != nil { + r.destroy() + return -1, err + } +- rootgid, err := r.container.Config().HostGID() ++ rootgid, err := r.container.Config().HostRootGID() + if err != nil { + r.destroy() + return -1, err +-- +2.7.4.3 + diff --git a/patch/0008-libcontainer-init-fix-unmapped-console-fcho.patch b/patch/0008-libcontainer-init-fix-unmapped-console-fcho.patch new file mode 100644 index 0000000..8d77669 --- /dev/null +++ b/patch/0008-libcontainer-init-fix-unmapped-console-fcho.patch @@ -0,0 +1,64 @@ +From f4158e00cac1f576f61904a73530c373c15354e2 Mon Sep 17 00:00:00 2001 +From: Aleksa Sarai +Date: Sat, 18 Mar 2017 04:33:14 +1100 +Subject: [PATCH 08/94] libcontainer: init: fix unmapped console + fchown + +If the stdio of the container is owned by a group which is not mapped in +the user namespace, attempting to fchown the file descriptor will result +in EINVAL. Counteract this by simply not doing an fchown if the group +owner of the file descriptor has no host mapping according to the +configured GIDMappings. + +Change-Id: I7a7911f398a38b2d21e1bb6bc4b3131f6504ca8d +Signed-off-by: Aleksa Sarai +--- + libcontainer/init_linux.go | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +diff --git a/libcontainer/init_linux.go b/libcontainer/init_linux.go +index 1187835..99cc02c 100644 +--- a/libcontainer/init_linux.go ++++ b/libcontainer/init_linux.go +@@ -277,7 +277,7 @@ func setupUser(config *initConfig) error { + + // before we change to the container's user make sure that the processes STDIO + // is correctly owned by the user that we are switching to. +- if err := fixStdioPermissions(execUser); err != nil { ++ if err := fixStdioPermissions(config, execUser); err != nil { + return err + } + +@@ -312,7 +312,7 @@ func setupUser(config *initConfig) error { + // fixStdioPermissions fixes the permissions of PID 1's STDIO within the container to the specified user. + // The ownership needs to match because it is created outside of the container and needs to be + // localized. +-func fixStdioPermissions(u *user.ExecUser) error { ++func fixStdioPermissions(config *initConfig, u *user.ExecUser) error { + var null syscall.Stat_t + if err := syscall.Stat("/dev/null", &null); err != nil { + return err +@@ -326,10 +326,20 @@ func fixStdioPermissions(u *user.ExecUser) error { + if err := syscall.Fstat(int(fd), &s); err != nil { + return err + } ++ + // Skip chown of /dev/null if it was used as one of the STDIO fds. + if s.Rdev == null.Rdev { + continue + } ++ ++ // Skip chown if s.Gid is actually an unmapped gid in the host. While ++ // this is a bit dodgy if it just so happens that the console _is_ ++ // owned by overflow_gid, there's no way for us to disambiguate this as ++ // a userspace program. ++ if _, err := config.Config.HostGID(int(s.Gid)); err != nil { ++ continue ++ } ++ + // We only change the uid owner (as it is possible for the mount to + // prefer a different gid, and there's no reason for us to change it). + // The reason why we don't just leave the default uid=X mount setup is +-- +2.7.4.3 + diff --git a/patch/0009-rootless-add-autogenerated-rootless-config-.patch b/patch/0009-rootless-add-autogenerated-rootless-config-.patch new file mode 100644 index 0000000..9cbad02 --- /dev/null +++ b/patch/0009-rootless-add-autogenerated-rootless-config-.patch @@ -0,0 +1,203 @@ +From bdc84a618b475cc21a39dfa2fe57eae68b6110b6 Mon Sep 17 00:00:00 2001 +From: Aleksa Sarai +Date: Mon, 9 May 2016 21:26:11 +1000 +Subject: [PATCH 09/94] rootless: add autogenerated rootless config + from `runc spec` + +Since this is a runC-specific feature, this belongs here over in +opencontainers/ocitools (which is for generic OCI runtimes). + +In addition, we don't create a new network namespace. This is because +currently if you want to set up a veth bridge you need CAP_NET_ADMIN in +both network namespaces' pinned user namespace to create the necessary +interfaces in each network namespace. + +Change-Id: I682b9c82f75c04b58d523ddb084b6adbb543e3d1 +Signed-off-by: Aleksa Sarai +--- + libcontainer/specconv/example.go | 73 ++++++++++++++++++++++++++++++-- + libcontainer/specconv/spec_linux_test.go | 30 +++---------- + spec.go | 11 ++++- + 3 files changed, 85 insertions(+), 29 deletions(-) + +diff --git a/libcontainer/specconv/example.go b/libcontainer/specconv/example.go +index 44fad97..9a4460c 100644 +--- a/libcontainer/specconv/example.go ++++ b/libcontainer/specconv/example.go +@@ -1,16 +1,18 @@ + package specconv + + import ( ++ "os" + "runtime" ++ "strings" + + "github.com/opencontainers/runtime-spec/specs-go" + ) + + func sPtr(s string) *string { return &s } + +-// ExampleSpec returns an example spec file, with many options set so a user +-// can see what a standard spec file looks like. +-func ExampleSpec() *specs.Spec { ++// Example returns an example spec file, with many options set so a user can ++// see what a standard spec file looks like. ++func Example() *specs.Spec { + return &specs.Spec{ + Version: specs.Version, + Platform: specs.Platform{ +@@ -158,3 +160,68 @@ func ExampleSpec() *specs.Spec { + }, + } + } ++ ++// ExampleRootless returns an example spec file that works with rootless ++// containers. It's essentially a modified version of the specfile from ++// Example(). ++func ToRootless(spec *specs.Spec) { ++ var namespaces []specs.LinuxNamespace ++ ++ // Remove networkns from the spec. ++ for _, ns := range spec.Linux.Namespaces { ++ switch ns.Type { ++ case specs.NetworkNamespace, specs.UserNamespace: ++ // Do nothing. ++ default: ++ namespaces = append(namespaces, ns) ++ } ++ } ++ // Add userns to the spec. ++ namespaces = append(namespaces, specs.LinuxNamespace{ ++ Type: specs.UserNamespace, ++ }) ++ spec.Linux.Namespaces = namespaces ++ ++ // Add mappings for the current user. ++ spec.Linux.UIDMappings = []specs.LinuxIDMapping{{ ++ HostID: uint32(os.Geteuid()), ++ ContainerID: 0, ++ Size: 1, ++ }} ++ spec.Linux.GIDMappings = []specs.LinuxIDMapping{{ ++ HostID: uint32(os.Getegid()), ++ ContainerID: 0, ++ Size: 1, ++ }} ++ ++ // Fix up mounts. ++ var mounts []specs.Mount ++ for _, mount := range spec.Mounts { ++ // Ignore all mounts that are under /sys. ++ if strings.HasPrefix(mount.Destination, "/sys") { ++ continue ++ } ++ ++ // Remove all gid= and uid= mappings. ++ var options []string ++ for _, option := range mount.Options { ++ if !strings.HasPrefix(option, "gid=") && !strings.HasPrefix(option, "uid=") { ++ options = append(options, option) ++ } ++ } ++ ++ mount.Options = options ++ mounts = append(mounts, mount) ++ } ++ // Add the sysfs mount as an rbind. ++ mounts = append(mounts, specs.Mount{ ++ Source: "/sys", ++ Destination: "/sys", ++ Type: "none", ++ Options: []string{"rbind", "nosuid", "noexec", "nodev", "ro"}, ++ }) ++ spec.Mounts = mounts ++ ++ // Remove cgroup settings. ++ spec.Linux.Resources = nil ++} +diff --git a/libcontainer/specconv/spec_linux_test.go b/libcontainer/specconv/spec_linux_test.go +index 741fae6..f7292f3 100644 +--- a/libcontainer/specconv/spec_linux_test.go ++++ b/libcontainer/specconv/spec_linux_test.go +@@ -3,7 +3,6 @@ + package specconv + + import ( +- "os" + "testing" + + "github.com/opencontainers/runc/libcontainer/configs/validate" +@@ -53,8 +52,9 @@ func TestLinuxCgroupsPathNotSpecified(t *testing.T) { + } + + func TestSpecconvExampleValidate(t *testing.T) { +- spec := ExampleSpec() ++ spec := Example() + spec.Root.Path = "/" ++ + opts := &CreateOpts{ + CgroupName: "ContainerID", + UseSystemdCgroup: false, +@@ -97,29 +97,9 @@ func TestDupNamespaces(t *testing.T) { + } + + func TestRootlessSpecconvValidate(t *testing.T) { +- spec := &specs.Spec{ +- Linux: specs.Linux{ +- Namespaces: []specs.Namespace{ +- { +- Type: specs.UserNamespace, +- }, +- }, +- UIDMappings: []specs.IDMapping{ +- { +- HostID: uint32(os.Geteuid()), +- ContainerID: 0, +- Size: 1, +- }, +- }, +- GIDMappings: []specs.IDMapping{ +- { +- HostID: uint32(os.Getegid()), +- ContainerID: 0, +- Size: 1, +- }, +- }, +- }, +- } ++ spec := Example() ++ spec.Root.Path = "/" ++ ToRootless(spec) + + opts := &CreateOpts{ + CgroupName: "ContainerID", +diff --git a/spec.go b/spec.go +index d7df312..9024ad4 100644 +--- a/spec.go ++++ b/spec.go +@@ -64,12 +64,21 @@ container on your host.`, + Value: "", + Usage: "path to the root of the bundle directory", + }, ++ cli.BoolFlag{ ++ Name: "rootless", ++ Usage: "generate a configuration for a rootless container", ++ }, + }, + Action: func(context *cli.Context) error { + if err := checkArgs(context, 0, exactArgs); err != nil { + return err + } +- spec := specconv.ExampleSpec() ++ spec := specconv.Example() ++ ++ rootless := context.Bool("rootless") ++ if rootless { ++ specconv.ToRootless(spec) ++ } + + checkNoFile := func(name string) error { + _, err := os.Stat(name) +-- +2.7.4.3 + diff --git a/patch/0010-integration-added-root-requires.patch b/patch/0010-integration-added-root-requires.patch new file mode 100644 index 0000000..4d2cf87 --- /dev/null +++ b/patch/0010-integration-added-root-requires.patch @@ -0,0 +1,143 @@ +From 7c81f032861f5654e9063e5af82c7794401682f4 Mon Sep 17 00:00:00 2001 +From: Aleksa Sarai +Date: Tue, 10 May 2016 22:22:13 +1000 +Subject: [PATCH 10/94] integration: added root requires + +This is in preperation of allowing us to run the integration test suite +on rootless containers. + +Change-Id: I38f7115df4f931857659892b07745c86507d14bf +Signed-off-by: Aleksa Sarai +--- + tests/integration/cgroups.bats | 8 ++++++-- + tests/integration/checkpoint.bats | 3 ++- + tests/integration/helpers.bash | 10 +++++++++- + tests/integration/kill.bats | 1 - + tests/integration/pause.bats | 6 ++++++ + tests/integration/update.bats | 6 +++++- + 6 files changed, 28 insertions(+), 6 deletions(-) + +diff --git a/tests/integration/cgroups.bats b/tests/integration/cgroups.bats +index 9ab6f43..90095a7 100644 +--- a/tests/integration/cgroups.bats ++++ b/tests/integration/cgroups.bats +@@ -28,7 +28,9 @@ function check_cgroup_value() { + } + + @test "runc update --kernel-memory (initialized)" { +- requires cgroups_kmem ++ # XXX: currently cgroups require root containers. ++ requires cgroups_kmem root ++ + # Add cgroup path + sed -i 's/\("linux": {\)/\1\n "cgroupsPath": "\/runc-cgroups-integration-test",/' ${BUSYBOX_BUNDLE}/config.json + +@@ -56,7 +58,9 @@ EOF + } + + @test "runc update --kernel-memory (uninitialized)" { +- requires cgroups_kmem ++ # XXX: currently cgroups require root containers. ++ requires cgroups_kmem root ++ + # Add cgroup path + sed -i 's/\("linux": {\)/\1\n "cgroupsPath": "\/runc-cgroups-integration-test",/' ${BUSYBOX_BUNDLE}/config.json + +diff --git a/tests/integration/checkpoint.bats b/tests/integration/checkpoint.bats +index 34d1b03..e91fd65 100644 +--- a/tests/integration/checkpoint.bats ++++ b/tests/integration/checkpoint.bats +@@ -12,7 +12,8 @@ function teardown() { + } + + @test "checkpoint and restore" { +- requires criu ++ # XXX: currently criu require root containers. ++ requires criu root + + # criu does not work with external terminals so.. + # setting terminal and root:readonly: to false +diff --git a/tests/integration/helpers.bash b/tests/integration/helpers.bash +index e4c2cb9..6548333 100644 +--- a/tests/integration/helpers.bash ++++ b/tests/integration/helpers.bash +@@ -40,6 +40,9 @@ CGROUP_CPU_BASE_PATH=$(grep "cgroup" /proc/self/mountinfo | gawk 'toupper($NF) ~ + KMEM="${CGROUP_MEMORY_BASE_PATH}/memory.kmem.limit_in_bytes" + RT_PERIOD="${CGROUP_CPU_BASE_PATH}/cpu.rt_period_us" + ++# Check if we're in rootless mode. ++ROOTLESS=$(id -u) ++ + # Wrapper for runc. + function runc() { + run __runc "$@" +@@ -68,7 +71,12 @@ function requires() { + case $var in + criu) + if [ ! -e "$CRIU" ]; then +- skip "Test requires ${var}." ++ skip "test requires ${var}" ++ fi ++ ;; ++ root) ++ if [ "$ROOTLESS" -ne 0 ]; then ++ skip "test requires ${var}" + fi + ;; + cgroups_kmem) +diff --git a/tests/integration/kill.bats b/tests/integration/kill.bats +index a049de6..74246fa 100644 +--- a/tests/integration/kill.bats ++++ b/tests/integration/kill.bats +@@ -13,7 +13,6 @@ function teardown() { + + + @test "kill detached busybox" { +- + # run busybox detached + runc run -d --console-socket $CONSOLE_SOCKET test_busybox + [ "$status" -eq 0 ] +diff --git a/tests/integration/pause.bats b/tests/integration/pause.bats +index 2f46a6c..30d98b5 100644 +--- a/tests/integration/pause.bats ++++ b/tests/integration/pause.bats +@@ -12,6 +12,9 @@ function teardown() { + } + + @test "runc pause and resume" { ++ # XXX: currently cgroups require root containers. ++ requires root ++ + # run busybox detached + runc run -d --console-socket $CONSOLE_SOCKET test_busybox + [ "$status" -eq 0 ] +@@ -34,6 +37,9 @@ function teardown() { + } + + @test "runc pause and resume with nonexist container" { ++ # XXX: currently cgroups require root containers. ++ requires root ++ + # run test_busybox detached + runc run -d --console-socket $CONSOLE_SOCKET test_busybox + [ "$status" -eq 0 ] +diff --git a/tests/integration/update.bats b/tests/integration/update.bats +index 9aaf1b9..4a6bf7f 100644 +--- a/tests/integration/update.bats ++++ b/tests/integration/update.bats +@@ -50,7 +50,11 @@ function check_cgroup_value() { + + # TODO: test rt cgroup updating + @test "update" { +- requires cgroups_kmem ++ # XXX: currently cgroups require root containers. ++ # XXX: Also, this test should be split into separate sections so that we ++ # can skip kmem without skipping update tests overall. ++ requires cgroups_kmem root ++ + # run a few busyboxes detached + runc run -d --console-socket $CONSOLE_SOCKET test_update + [ "$status" -eq 0 ] +-- +2.7.4.3 + diff --git a/patch/0011-tests-add-rootless-integration-tests.patch b/patch/0011-tests-add-rootless-integration-tests.patch new file mode 100644 index 0000000..6598081 --- /dev/null +++ b/patch/0011-tests-add-rootless-integration-tests.patch @@ -0,0 +1,449 @@ +From c62d731fc7e928e944e0290df318042c46e80526 Mon Sep 17 00:00:00 2001 +From: Aleksa Sarai +Date: Wed, 11 May 2016 17:45:00 +1000 +Subject: [PATCH 11/94] tests: add rootless integration tests + +This adds targets for rootless integration tests, as well as all of the +required setup in order to get the tests to run. This includes quite a +few changes, because of a lot of assumptions about things running as +root within the bats scripts (which is not true when setting up rootless +containers). + +Change-Id: I2fab9fd3ac984e06a7d3e1e1ac0cd888b1543801 +Signed-off-by: Aleksa Sarai +--- + Dockerfile | 7 ++++++ + Makefile | 11 +++++++-- + tests/integration/checkpoint.bats | 5 +++-- + tests/integration/delete.bats | 2 ++ + tests/integration/events.bats | 12 ++++++++++ + tests/integration/exec.bats | 3 +++ + tests/integration/help.bats | 1 + + tests/integration/helpers.bash | 23 ++++++++++++++----- + tests/integration/ps.bats | 11 ++++++++- + tests/integration/spec.bats | 4 ++-- + tests/integration/start_detached.bats | 3 +++ + tests/integration/start_hello.bats | 3 +++ + tests/integration/state.bats | 42 ++++++++++++++++++++++++++--------- + tests/integration/tty.bats | 14 ++++++++++++ + 14 files changed, 117 insertions(+), 24 deletions(-) + +diff --git a/Dockerfile b/Dockerfile +index c971448..fd9be94 100644 +--- a/Dockerfile ++++ b/Dockerfile +@@ -6,6 +6,7 @@ RUN echo 'deb http://httpredir.debian.org/debian jessie-backports main' > /etc/a + RUN apt-get update && apt-get install -y \ + build-essential \ + curl \ ++ sudo \ + gawk \ + iptables \ + jq \ +@@ -22,6 +23,12 @@ RUN apt-get update && apt-get install -y \ + --no-install-recommends \ + && apt-get clean + ++# Add a dummy user for the rootless integration tests. While runC does ++# not require an entry in /etc/passwd to operate, one of the tests uses ++# `git clone` -- and `git clone` does not allow you to clone a ++# repository if the current uid does not have an entry in /etc/passwd. ++RUN useradd -u1000 -m -d/home/rootless -s/bin/bash rootless ++ + # install bats + RUN cd /tmp \ + && git clone https://github.com/sstephenson/bats.git \ +diff --git a/Makefile b/Makefile +index 5fff515..1cecca1 100644 +--- a/Makefile ++++ b/Makefile +@@ -79,10 +79,10 @@ runcimage: + docker build -t $(RUNC_IMAGE) . + + test: +- make unittest integration ++ make unittest integration rootlessintegration + + localtest: +- make localunittest localintegration ++ make localunittest localintegration localrootlessintegration + + unittest: runcimage + docker run -e TESTFLAGS -t --privileged --rm -v $(CURDIR):/go/src/$(PROJECT) $(RUNC_IMAGE) make localunittest +@@ -96,6 +96,13 @@ integration: runcimage + localintegration: all + bats -t tests/integration${TESTFLAGS} + ++rootlessintegration: runcimage ++ docker run -e TESTFLAGS -t --privileged --rm -v $(CURDIR):/go/src/$(PROJECT) --cap-drop=ALL -u rootless $(RUNC_IMAGE) make localintegration ++ ++# FIXME: This should not be separate from rootlessintegration's method of running. ++localrootlessintegration: all ++ sudo -u rootless -H PATH="${PATH}" bats -t tests/integration${TESTFLAGS} ++ + shell: all + docker run -e TESTFLAGS -ti --privileged --rm -v $(CURDIR):/go/src/$(PROJECT) $(RUNC_IMAGE) bash + +diff --git a/tests/integration/checkpoint.bats b/tests/integration/checkpoint.bats +index e91fd65..cd969a8 100644 +--- a/tests/integration/checkpoint.bats ++++ b/tests/integration/checkpoint.bats +@@ -59,8 +59,9 @@ function teardown() { + [[ "${output}" == *"running"* ]] + } + +-@test "checkpoint(pre-dump) and restore" { +- requires criu ++@test "checkpoint --pre-dump and restore" { ++ # XXX: currently criu require root containers. ++ requires criu root + + # criu does not work with external terminals so.. + # setting terminal and root:readonly: to false +diff --git a/tests/integration/delete.bats b/tests/integration/delete.bats +index cdadd7d..2c11e79 100644 +--- a/tests/integration/delete.bats ++++ b/tests/integration/delete.bats +@@ -22,11 +22,13 @@ function teardown() { + testcontainer test_busybox running + + runc kill test_busybox KILL ++ [ "$status" -eq 0 ] + # wait for busybox to be in the destroyed state + retry 10 1 eval "__runc state test_busybox | grep -q 'stopped'" + + # delete test_busybox + runc delete test_busybox ++ [ "$status" -eq 0 ] + + runc state test_busybox + [ "$status" -ne 0 ] +diff --git a/tests/integration/events.bats b/tests/integration/events.bats +index 182b721..2350073 100644 +--- a/tests/integration/events.bats ++++ b/tests/integration/events.bats +@@ -12,6 +12,9 @@ function teardown() { + } + + @test "events --stats" { ++ # XXX: currently cgroups require root containers. ++ requires root ++ + # run busybox detached + runc run -d --console-socket $CONSOLE_SOCKET test_busybox + [ "$status" -eq 0 ] +@@ -27,6 +30,9 @@ function teardown() { + } + + @test "events --interval default " { ++ # XXX: currently cgroups require root containers. ++ requires root ++ + # run busybox detached + runc run -d --console-socket $CONSOLE_SOCKET test_busybox + [ "$status" -eq 0 ] +@@ -54,6 +60,9 @@ function teardown() { + } + + @test "events --interval 1s " { ++ # XXX: currently cgroups require root containers. ++ requires root ++ + # run busybox detached + runc run -d --console-socket $CONSOLE_SOCKET test_busybox + [ "$status" -eq 0 ] +@@ -80,6 +89,9 @@ function teardown() { + } + + @test "events --interval 100ms " { ++ # XXX: currently cgroups require root containers. ++ requires root ++ + # run busybox detached + runc run -d --console-socket $CONSOLE_SOCKET test_busybox + [ "$status" -eq 0 ] +diff --git a/tests/integration/exec.bats b/tests/integration/exec.bats +index ba60ea1..f172f9b 100644 +--- a/tests/integration/exec.bats ++++ b/tests/integration/exec.bats +@@ -112,6 +112,9 @@ function teardown() { + } + + @test "runc exec --user" { ++ # --user can't work in rootless containers ++ requires root ++ + # run busybox detached + runc run -d --console-socket $CONSOLE_SOCKET test_busybox + [ "$status" -eq 0 ] +diff --git a/tests/integration/help.bats b/tests/integration/help.bats +index ca404f3..163de2d 100644 +--- a/tests/integration/help.bats ++++ b/tests/integration/help.bats +@@ -57,6 +57,7 @@ load helpers + [ "$status" -eq 0 ] + [[ ${lines[1]} =~ runc\ resume+ ]] + ++ # We don't use runc_spec here, because we're just testing the help page. + runc spec -h + [ "$status" -eq 0 ] + [[ ${lines[1]} =~ runc\ spec+ ]] +diff --git a/tests/integration/helpers.bash b/tests/integration/helpers.bash +index 6548333..fc8c290 100644 +--- a/tests/integration/helpers.bash ++++ b/tests/integration/helpers.bash +@@ -4,7 +4,7 @@ + INTEGRATION_ROOT=$(dirname "$(readlink -f "$BASH_SOURCE")") + RUNC="${INTEGRATION_ROOT}/../../runc" + RECVTTY="${INTEGRATION_ROOT}/../../contrib/cmd/recvtty/recvtty" +-GOPATH="${INTEGRATION_ROOT}/../../../.." ++GOPATH="$(mktemp -d --tmpdir runc-integration-gopath.XXXXXX)" + + # Test data path. + TESTDATA="${INTEGRATION_ROOT}/testdata" +@@ -27,7 +27,7 @@ KERNEL_MINOR="${KERNEL_VERSION#$KERNEL_MAJOR.}" + KERNEL_MINOR="${KERNEL_MINOR%%.*}" + + # Root state path. +-ROOT="$BATS_TMPDIR/runc" ++ROOT=$(mktemp -d "$BATS_TMPDIR/runc.XXXXXX") + + # Path to console socket. + CONSOLE_SOCKET="$BATS_TMPDIR/console.sock" +@@ -58,6 +58,17 @@ function __runc() { + "$RUNC" --root "$ROOT" "$@" + } + ++# Wrapper for runc spec. ++function runc_spec() { ++ local args="" ++ ++ if [ "$ROOTLESS" -ne 0 ]; then ++ args+="--rootless" ++ fi ++ ++ runc spec $args "$@" ++} ++ + # Fails the current test, providing the error given. + function fail() { + echo "$@" >&2 +@@ -187,18 +198,18 @@ function setup_busybox() { + if [ ! -e $BUSYBOX_IMAGE ]; then + curl -o $BUSYBOX_IMAGE -sSL 'https://github.com/docker-library/busybox/raw/a0558a9006ce0dd6f6ec5d56cfd3f32ebeeb815f/glibc/busybox.tar.xz' + fi +- tar -C "$BUSYBOX_BUNDLE"/rootfs -xf "$BUSYBOX_IMAGE" ++ tar --exclude './dev/*' -C "$BUSYBOX_BUNDLE"/rootfs -xf "$BUSYBOX_IMAGE" + cd "$BUSYBOX_BUNDLE" +- runc spec ++ runc_spec + } + + function setup_hello() { + setup_recvtty + run mkdir "$HELLO_BUNDLE" + run mkdir "$HELLO_BUNDLE"/rootfs +- tar -C "$HELLO_BUNDLE"/rootfs -xf "$HELLO_IMAGE" ++ tar --exclude './dev/*' -C "$HELLO_BUNDLE"/rootfs -xf "$HELLO_IMAGE" + cd "$HELLO_BUNDLE" +- runc spec ++ runc_spec + sed -i 's;"sh";"/hello";' config.json + } + +diff --git a/tests/integration/ps.bats b/tests/integration/ps.bats +index 7a20015..c000af6 100644 +--- a/tests/integration/ps.bats ++++ b/tests/integration/ps.bats +@@ -12,6 +12,9 @@ function teardown() { + } + + @test "ps" { ++ # ps is not supported, it requires cgroups ++ requires root ++ + # start busybox detached + runc run -d --console-socket $CONSOLE_SOCKET test_busybox + [ "$status" -eq 0 ] +@@ -24,10 +27,13 @@ function teardown() { + runc ps test_busybox + [ "$status" -eq 0 ] + [[ ${lines[0]} =~ UID\ +PID\ +PPID\ +C\ +STIME\ +TTY\ +TIME\ +CMD+ ]] +- [[ "${lines[1]}" == *"root"*[0-9]* ]] ++ [[ "${lines[1]}" == *"$(id -un 2>/dev/null)"*[0-9]* ]] + } + + @test "ps -f json" { ++ # ps is not supported, it requires cgroups ++ requires root ++ + # start busybox detached + runc run -d --console-socket $CONSOLE_SOCKET test_busybox + [ "$status" -eq 0 ] +@@ -43,6 +49,9 @@ function teardown() { + } + + @test "ps -e -x" { ++ # ps is not supported, it requires cgroups ++ requires root ++ + # start busybox detached + runc run -d --console-socket $CONSOLE_SOCKET test_busybox + [ "$status" -eq 0 ] +diff --git a/tests/integration/spec.bats b/tests/integration/spec.bats +index 79bb690..e9f28fb 100644 +--- a/tests/integration/spec.bats ++++ b/tests/integration/spec.bats +@@ -26,7 +26,7 @@ function teardown() { + [ ! -e config.json ] + + # test generation of spec does not return an error +- runc spec ++ runc_spec + [ "$status" -eq 0 ] + + # test generation of spec created our config.json (spec) +@@ -51,7 +51,7 @@ function teardown() { + [ ! -e "$HELLO_BUNDLE"/config.json ] + + # test generation of spec does not return an error +- runc spec --bundle "$HELLO_BUNDLE" ++ runc_spec --bundle "$HELLO_BUNDLE" + [ "$status" -eq 0 ] + + # test generation of spec created our config.json (spec) +diff --git a/tests/integration/start_detached.bats b/tests/integration/start_detached.bats +index 605fde2..08036dd 100644 +--- a/tests/integration/start_detached.bats ++++ b/tests/integration/start_detached.bats +@@ -23,6 +23,9 @@ function teardown() { + } + + @test "runc run detached ({u,g}id != 0)" { ++ # cannot start containers as another user in rootless setup ++ requires root ++ + # replace "uid": 0 with "uid": 1000 + # and do a similar thing for gid. + sed -i 's;"uid": 0;"uid": 1000;g' config.json +diff --git a/tests/integration/start_hello.bats b/tests/integration/start_hello.bats +index 6de65e0..2e93572 100644 +--- a/tests/integration/start_hello.bats ++++ b/tests/integration/start_hello.bats +@@ -21,6 +21,9 @@ function teardown() { + } + + @test "runc run ({u,g}id != 0)" { ++ # cannot start containers as another user in rootless setup ++ requires root ++ + # replace "uid": 0 with "uid": 1000 + # and do a similar thing for gid. + sed -i 's;"uid": 0;"uid": 1000;g' config.json +diff --git a/tests/integration/state.bats b/tests/integration/state.bats +index eed2eb3..3772c1e 100644 +--- a/tests/integration/state.bats ++++ b/tests/integration/state.bats +@@ -11,7 +11,37 @@ function teardown() { + teardown_busybox + } + +-@test "state" { ++@test "state (kill + delete)" { ++ runc state test_busybox ++ [ "$status" -ne 0 ] ++ ++ # run busybox detached ++ runc run -d --console-socket $CONSOLE_SOCKET test_busybox ++ [ "$status" -eq 0 ] ++ ++ # check state ++ wait_for_container 15 1 test_busybox ++ ++ testcontainer test_busybox running ++ ++ runc kill test_busybox KILL ++ [ "$status" -eq 0 ] ++ ++ # wait for busybox to be in the destroyed state ++ retry 10 1 eval "__runc state test_busybox | grep -q 'stopped'" ++ ++ # delete test_busybox ++ runc delete test_busybox ++ [ "$status" -eq 0 ] ++ ++ runc state test_busybox ++ [ "$status" -ne 0 ] ++} ++ ++@test "state (pause + resume)" { ++ # XXX: pause and resume require cgroups. ++ requires root ++ + runc state test_busybox + [ "$status" -ne 0 ] + +@@ -37,14 +67,4 @@ function teardown() { + + # test state of busybox is back to running + testcontainer test_busybox running +- +- runc kill test_busybox KILL +- # wait for busybox to be in the destroyed state +- retry 10 1 eval "__runc state test_busybox | grep -q 'stopped'" +- +- # delete test_busybox +- runc delete test_busybox +- +- runc state test_busybox +- [ "$status" -ne 0 ] + } +diff --git a/tests/integration/tty.bats b/tests/integration/tty.bats +index b9a1f10..9e817db 100644 +--- a/tests/integration/tty.bats ++++ b/tests/integration/tty.bats +@@ -24,6 +24,10 @@ function teardown() { + } + + @test "runc run [tty owner]" { ++ # tty chmod is not doable in rootless containers. ++ # TODO: this can be made as a change to the gid test. ++ requires root ++ + # Replace sh script with stat. + sed -i 's/"sh"/"sh", "-c", "stat -c %u:%g $(tty) | tr : \\\\\\\\n"/' config.json + +@@ -36,6 +40,9 @@ function teardown() { + } + + @test "runc run [tty owner] ({u,g}id != 0)" { ++ # tty chmod is not doable in rootless containers. ++ requires root ++ + # replace "uid": 0 with "uid": 1000 + # and do a similar thing for gid. + sed -i 's;"uid": 0;"uid": 1000;g' config.json +@@ -72,6 +79,10 @@ function teardown() { + } + + @test "runc exec [tty owner]" { ++ # tty chmod is not doable in rootless containers. ++ # TODO: this can be made as a change to the gid test. ++ requires root ++ + # run busybox detached + runc run -d --console-socket $CONSOLE_SOCKET test_busybox + [ "$status" -eq 0 ] +@@ -90,6 +101,9 @@ function teardown() { + } + + @test "runc exec [tty owner] ({u,g}id != 0)" { ++ # tty chmod is not doable in rootless containers. ++ requires root ++ + # replace "uid": 0 with "uid": 1000 + # and do a similar thing for gid. + sed -i 's;"uid": 0;"uid": 1000;g' config.json +-- +2.7.4.3 + diff --git a/patch/0012-vendor-add-golang.org-x-sys-unix-9a7256cb28.patch b/patch/0012-vendor-add-golang.org-x-sys-unix-9a7256cb28.patch new file mode 100644 index 0000000..ee2e8dc --- /dev/null +++ b/patch/0012-vendor-add-golang.org-x-sys-unix-9a7256cb28.patch @@ -0,0 +1,123561 @@ +From 8601a060f98d137335619c83219779011961fa2f Mon Sep 17 00:00:00 2001 +From: Aleksa Sarai +Date: Wed, 29 Mar 2017 22:07:03 +1100 +Subject: [PATCH 12/94] vendor: add + golang.org/x/sys/unix@9a7256cb28ed514b4e1e5f68959914c4c28a92e0 + +It turns out that the standard "syscall" library is not recommended for +new programs. runC will need to eventually move to this, but for now +include it in vendor so we can use it for new features. + +Change-Id: I52211ff68e7b35cff8fe1b4534ce0a5b25fbd0da +Signed-off-by: Aleksa Sarai +--- + vendor.conf | 1 + + vendor/golang.org/x/sys/LICENSE | 27 + + vendor/golang.org/x/sys/PATENTS | 22 + + vendor/golang.org/x/sys/README | 3 + + vendor/golang.org/x/sys/unix/asm_darwin_386.s | 29 + + vendor/golang.org/x/sys/unix/asm_darwin_amd64.s | 29 + + vendor/golang.org/x/sys/unix/asm_darwin_arm.s | 30 + + vendor/golang.org/x/sys/unix/asm_darwin_arm64.s | 30 + + vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s | 29 + + vendor/golang.org/x/sys/unix/asm_freebsd_386.s | 29 + + vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s | 29 + + vendor/golang.org/x/sys/unix/asm_freebsd_arm.s | 29 + + vendor/golang.org/x/sys/unix/asm_linux_386.s | 35 + + vendor/golang.org/x/sys/unix/asm_linux_amd64.s | 29 + + vendor/golang.org/x/sys/unix/asm_linux_arm.s | 29 + + vendor/golang.org/x/sys/unix/asm_linux_arm64.s | 24 + + vendor/golang.org/x/sys/unix/asm_linux_mips64x.s | 28 + + vendor/golang.org/x/sys/unix/asm_linux_mipsx.s | 31 + + vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s | 28 + + vendor/golang.org/x/sys/unix/asm_linux_s390x.s | 28 + + vendor/golang.org/x/sys/unix/asm_netbsd_386.s | 29 + + vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s | 29 + + vendor/golang.org/x/sys/unix/asm_netbsd_arm.s | 29 + + vendor/golang.org/x/sys/unix/asm_openbsd_386.s | 29 + + vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s | 29 + + vendor/golang.org/x/sys/unix/asm_solaris_amd64.s | 17 + + vendor/golang.org/x/sys/unix/bluetooth_linux.go | 35 + + vendor/golang.org/x/sys/unix/constants.go | 13 + + vendor/golang.org/x/sys/unix/dirent.go | 102 + + vendor/golang.org/x/sys/unix/endian_big.go | 9 + + vendor/golang.org/x/sys/unix/endian_little.go | 9 + + vendor/golang.org/x/sys/unix/env_unix.go | 27 + + vendor/golang.org/x/sys/unix/env_unset.go | 14 + + vendor/golang.org/x/sys/unix/flock.go | 24 + + vendor/golang.org/x/sys/unix/flock_linux_32bit.go | 13 + + vendor/golang.org/x/sys/unix/gccgo.go | 46 + + vendor/golang.org/x/sys/unix/gccgo_c.c | 41 + + vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go | 20 + + .../golang.org/x/sys/unix/gccgo_linux_sparc64.go | 20 + + vendor/golang.org/x/sys/unix/mkpost.go | 62 + + vendor/golang.org/x/sys/unix/openbsd_pledge.go | 38 + + vendor/golang.org/x/sys/unix/race.go | 30 + + vendor/golang.org/x/sys/unix/race0.go | 25 + + vendor/golang.org/x/sys/unix/sockcmsg_linux.go | 36 + + vendor/golang.org/x/sys/unix/sockcmsg_unix.go | 103 + + vendor/golang.org/x/sys/unix/str.go | 26 + + vendor/golang.org/x/sys/unix/syscall.go | 69 + + vendor/golang.org/x/sys/unix/syscall_bsd.go | 614 ++++++ + vendor/golang.org/x/sys/unix/syscall_darwin.go | 493 +++++ + vendor/golang.org/x/sys/unix/syscall_darwin_386.go | 77 + + .../golang.org/x/sys/unix/syscall_darwin_amd64.go | 79 + + vendor/golang.org/x/sys/unix/syscall_darwin_arm.go | 71 + + .../golang.org/x/sys/unix/syscall_darwin_arm64.go | 77 + + vendor/golang.org/x/sys/unix/syscall_dragonfly.go | 402 ++++ + .../x/sys/unix/syscall_dragonfly_amd64.go | 61 + + vendor/golang.org/x/sys/unix/syscall_freebsd.go | 666 ++++++ + .../golang.org/x/sys/unix/syscall_freebsd_386.go | 61 + + .../golang.org/x/sys/unix/syscall_freebsd_amd64.go | 61 + + .../golang.org/x/sys/unix/syscall_freebsd_arm.go | 61 + + vendor/golang.org/x/sys/unix/syscall_linux.go | 1290 ++++++++++++ + vendor/golang.org/x/sys/unix/syscall_linux_386.go | 399 ++++ + .../golang.org/x/sys/unix/syscall_linux_amd64.go | 152 ++ + .../x/sys/unix/syscall_linux_amd64_gc.go | 13 + + vendor/golang.org/x/sys/unix/syscall_linux_arm.go | 263 +++ + .../golang.org/x/sys/unix/syscall_linux_arm64.go | 190 ++ + .../golang.org/x/sys/unix/syscall_linux_mips64x.go | 208 ++ + .../golang.org/x/sys/unix/syscall_linux_mipsx.go | 239 +++ + .../golang.org/x/sys/unix/syscall_linux_ppc64x.go | 135 ++ + .../golang.org/x/sys/unix/syscall_linux_s390x.go | 328 +++ + .../golang.org/x/sys/unix/syscall_linux_sparc64.go | 169 ++ + vendor/golang.org/x/sys/unix/syscall_netbsd.go | 476 +++++ + vendor/golang.org/x/sys/unix/syscall_netbsd_386.go | 42 + + .../golang.org/x/sys/unix/syscall_netbsd_amd64.go | 42 + + vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go | 42 + + vendor/golang.org/x/sys/unix/syscall_no_getwd.go | 11 + + vendor/golang.org/x/sys/unix/syscall_openbsd.go | 287 +++ + .../golang.org/x/sys/unix/syscall_openbsd_386.go | 42 + + .../golang.org/x/sys/unix/syscall_openbsd_amd64.go | 42 + + vendor/golang.org/x/sys/unix/syscall_solaris.go | 713 +++++++ + .../golang.org/x/sys/unix/syscall_solaris_amd64.go | 35 + + vendor/golang.org/x/sys/unix/syscall_unix.go | 292 +++ + vendor/golang.org/x/sys/unix/syscall_unix_gc.go | 15 + + vendor/golang.org/x/sys/unix/types_darwin.go | 250 +++ + vendor/golang.org/x/sys/unix/types_dragonfly.go | 242 +++ + vendor/golang.org/x/sys/unix/types_freebsd.go | 353 ++++ + vendor/golang.org/x/sys/unix/types_linux.go | 469 +++++ + vendor/golang.org/x/sys/unix/types_netbsd.go | 232 +++ + vendor/golang.org/x/sys/unix/types_openbsd.go | 244 +++ + vendor/golang.org/x/sys/unix/types_solaris.go | 262 +++ + vendor/golang.org/x/sys/unix/zerrors_darwin_386.go | 1576 ++++++++++++++ + .../golang.org/x/sys/unix/zerrors_darwin_amd64.go | 1576 ++++++++++++++ + vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go | 1293 ++++++++++++ + .../golang.org/x/sys/unix/zerrors_darwin_arm64.go | 1576 ++++++++++++++ + .../x/sys/unix/zerrors_dragonfly_amd64.go | 1530 ++++++++++++++ + .../golang.org/x/sys/unix/zerrors_freebsd_386.go | 1743 ++++++++++++++++ + .../golang.org/x/sys/unix/zerrors_freebsd_amd64.go | 1748 ++++++++++++++++ + .../golang.org/x/sys/unix/zerrors_freebsd_arm.go | 1729 ++++++++++++++++ + vendor/golang.org/x/sys/unix/zerrors_linux_386.go | 1887 +++++++++++++++++ + .../golang.org/x/sys/unix/zerrors_linux_amd64.go | 1895 +++++++++++++++++ + vendor/golang.org/x/sys/unix/zerrors_linux_arm.go | 1815 +++++++++++++++++ + .../golang.org/x/sys/unix/zerrors_linux_arm64.go | 1967 ++++++++++++++++++ + vendor/golang.org/x/sys/unix/zerrors_linux_mips.go | 1869 +++++++++++++++++ + .../golang.org/x/sys/unix/zerrors_linux_mips64.go | 1965 ++++++++++++++++++ + .../x/sys/unix/zerrors_linux_mips64le.go | 1965 ++++++++++++++++++ + .../golang.org/x/sys/unix/zerrors_linux_mipsle.go | 2066 +++++++++++++++++++ + .../golang.org/x/sys/unix/zerrors_linux_ppc64.go | 2040 +++++++++++++++++++ + .../golang.org/x/sys/unix/zerrors_linux_ppc64le.go | 2036 +++++++++++++++++++ + .../golang.org/x/sys/unix/zerrors_linux_s390x.go | 2093 +++++++++++++++++++ + .../golang.org/x/sys/unix/zerrors_linux_sparc64.go | 2142 ++++++++++++++++++++ + vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go | 1712 ++++++++++++++++ + .../golang.org/x/sys/unix/zerrors_netbsd_amd64.go | 1702 ++++++++++++++++ + vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go | 1688 +++++++++++++++ + .../golang.org/x/sys/unix/zerrors_openbsd_386.go | 1584 +++++++++++++++ + .../golang.org/x/sys/unix/zerrors_openbsd_amd64.go | 1583 +++++++++++++++ + .../golang.org/x/sys/unix/zerrors_solaris_amd64.go | 1436 +++++++++++++ + .../golang.org/x/sys/unix/zsyscall_darwin_386.go | 1394 +++++++++++++ + .../golang.org/x/sys/unix/zsyscall_darwin_amd64.go | 1409 +++++++++++++ + .../golang.org/x/sys/unix/zsyscall_darwin_arm.go | 1394 +++++++++++++ + .../golang.org/x/sys/unix/zsyscall_darwin_arm64.go | 1394 +++++++++++++ + .../x/sys/unix/zsyscall_dragonfly_amd64.go | 1382 +++++++++++++ + .../golang.org/x/sys/unix/zsyscall_freebsd_386.go | 1617 +++++++++++++++ + .../x/sys/unix/zsyscall_freebsd_amd64.go | 1617 +++++++++++++++ + .../golang.org/x/sys/unix/zsyscall_freebsd_arm.go | 1617 +++++++++++++++ + vendor/golang.org/x/sys/unix/zsyscall_linux_386.go | 1649 +++++++++++++++ + .../golang.org/x/sys/unix/zsyscall_linux_amd64.go | 1842 +++++++++++++++++ + vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go | 1751 ++++++++++++++++ + .../golang.org/x/sys/unix/zsyscall_linux_arm64.go | 1725 ++++++++++++++++ + .../golang.org/x/sys/unix/zsyscall_linux_mips.go | 1807 +++++++++++++++++ + .../golang.org/x/sys/unix/zsyscall_linux_mips64.go | 1791 ++++++++++++++++ + .../x/sys/unix/zsyscall_linux_mips64le.go | 1791 ++++++++++++++++ + .../golang.org/x/sys/unix/zsyscall_linux_mipsle.go | 1807 +++++++++++++++++ + .../golang.org/x/sys/unix/zsyscall_linux_ppc64.go | 1853 +++++++++++++++++ + .../x/sys/unix/zsyscall_linux_ppc64le.go | 1853 +++++++++++++++++ + .../golang.org/x/sys/unix/zsyscall_linux_s390x.go | 1633 +++++++++++++++ + .../x/sys/unix/zsyscall_linux_sparc64.go | 1822 +++++++++++++++++ + .../golang.org/x/sys/unix/zsyscall_netbsd_386.go | 1299 ++++++++++++ + .../golang.org/x/sys/unix/zsyscall_netbsd_amd64.go | 1299 ++++++++++++ + .../golang.org/x/sys/unix/zsyscall_netbsd_arm.go | 1299 ++++++++++++ + .../golang.org/x/sys/unix/zsyscall_openbsd_386.go | 1357 +++++++++++++ + .../x/sys/unix/zsyscall_openbsd_amd64.go | 1357 +++++++++++++ + .../x/sys/unix/zsyscall_solaris_amd64.go | 1562 ++++++++++++++ + vendor/golang.org/x/sys/unix/zsysctl_openbsd.go | 270 +++ + vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go | 398 ++++ + .../golang.org/x/sys/unix/zsysnum_darwin_amd64.go | 398 ++++ + vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go | 358 ++++ + .../golang.org/x/sys/unix/zsysnum_darwin_arm64.go | 398 ++++ + .../x/sys/unix/zsysnum_dragonfly_amd64.go | 304 +++ + .../golang.org/x/sys/unix/zsysnum_freebsd_386.go | 351 ++++ + .../golang.org/x/sys/unix/zsysnum_freebsd_amd64.go | 351 ++++ + .../golang.org/x/sys/unix/zsysnum_freebsd_arm.go | 351 ++++ + vendor/golang.org/x/sys/unix/zsysnum_linux_386.go | 388 ++++ + .../golang.org/x/sys/unix/zsysnum_linux_amd64.go | 341 ++++ + vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go | 361 ++++ + .../golang.org/x/sys/unix/zsysnum_linux_arm64.go | 285 +++ + vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go | 374 ++++ + .../golang.org/x/sys/unix/zsysnum_linux_mips64.go | 334 +++ + .../x/sys/unix/zsysnum_linux_mips64le.go | 334 +++ + .../golang.org/x/sys/unix/zsysnum_linux_mipsle.go | 374 ++++ + .../golang.org/x/sys/unix/zsysnum_linux_ppc64.go | 369 ++++ + .../golang.org/x/sys/unix/zsysnum_linux_ppc64le.go | 369 ++++ + .../golang.org/x/sys/unix/zsysnum_linux_s390x.go | 331 +++ + .../golang.org/x/sys/unix/zsysnum_linux_sparc64.go | 348 ++++ + vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go | 273 +++ + .../golang.org/x/sys/unix/zsysnum_netbsd_amd64.go | 273 +++ + vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go | 273 +++ + .../golang.org/x/sys/unix/zsysnum_openbsd_386.go | 207 ++ + .../golang.org/x/sys/unix/zsysnum_openbsd_amd64.go | 207 ++ + .../golang.org/x/sys/unix/zsysnum_solaris_amd64.go | 13 + + vendor/golang.org/x/sys/unix/ztypes_darwin_386.go | 447 ++++ + .../golang.org/x/sys/unix/ztypes_darwin_amd64.go | 462 +++++ + vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go | 449 ++++ + .../golang.org/x/sys/unix/ztypes_darwin_arm64.go | 457 +++++ + .../x/sys/unix/ztypes_dragonfly_amd64.go | 443 ++++ + vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go | 502 +++++ + .../golang.org/x/sys/unix/ztypes_freebsd_amd64.go | 505 +++++ + vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go | 497 +++++ + vendor/golang.org/x/sys/unix/ztypes_linux_386.go | 653 ++++++ + vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go | 671 ++++++ + vendor/golang.org/x/sys/unix/ztypes_linux_arm.go | 642 ++++++ + vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go | 650 ++++++ + vendor/golang.org/x/sys/unix/ztypes_linux_mips.go | 660 ++++++ + .../golang.org/x/sys/unix/ztypes_linux_mips64.go | 653 ++++++ + .../golang.org/x/sys/unix/ztypes_linux_mips64le.go | 653 ++++++ + .../golang.org/x/sys/unix/ztypes_linux_mipsle.go | 660 ++++++ + vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go | 660 ++++++ + .../golang.org/x/sys/unix/ztypes_linux_ppc64le.go | 660 ++++++ + vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go | 675 ++++++ + .../golang.org/x/sys/unix/ztypes_linux_sparc64.go | 666 ++++++ + vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go | 396 ++++ + .../golang.org/x/sys/unix/ztypes_netbsd_amd64.go | 403 ++++ + vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go | 401 ++++ + vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go | 441 ++++ + .../golang.org/x/sys/unix/ztypes_openbsd_amd64.go | 448 ++++ + .../golang.org/x/sys/unix/ztypes_solaris_amd64.go | 423 ++++ + 194 files changed, 121990 insertions(+) + create mode 100644 vendor/golang.org/x/sys/LICENSE + create mode 100644 vendor/golang.org/x/sys/PATENTS + create mode 100644 vendor/golang.org/x/sys/README + create mode 100644 vendor/golang.org/x/sys/unix/asm_darwin_386.s + create mode 100644 vendor/golang.org/x/sys/unix/asm_darwin_amd64.s + create mode 100644 vendor/golang.org/x/sys/unix/asm_darwin_arm.s + create mode 100644 vendor/golang.org/x/sys/unix/asm_darwin_arm64.s + create mode 100644 vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s + create mode 100644 vendor/golang.org/x/sys/unix/asm_freebsd_386.s + create mode 100644 vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s + create mode 100644 vendor/golang.org/x/sys/unix/asm_freebsd_arm.s + create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_386.s + create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_amd64.s + create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_arm.s + create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_arm64.s + create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_mips64x.s + create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_mipsx.s + create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s + create mode 100644 vendor/golang.org/x/sys/unix/asm_linux_s390x.s + create mode 100644 vendor/golang.org/x/sys/unix/asm_netbsd_386.s + create mode 100644 vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s + create mode 100644 vendor/golang.org/x/sys/unix/asm_netbsd_arm.s + create mode 100644 vendor/golang.org/x/sys/unix/asm_openbsd_386.s + create mode 100644 vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s + create mode 100644 vendor/golang.org/x/sys/unix/asm_solaris_amd64.s + create mode 100644 vendor/golang.org/x/sys/unix/bluetooth_linux.go + create mode 100644 vendor/golang.org/x/sys/unix/constants.go + create mode 100644 vendor/golang.org/x/sys/unix/dirent.go + create mode 100644 vendor/golang.org/x/sys/unix/endian_big.go + create mode 100644 vendor/golang.org/x/sys/unix/endian_little.go + create mode 100644 vendor/golang.org/x/sys/unix/env_unix.go + create mode 100644 vendor/golang.org/x/sys/unix/env_unset.go + create mode 100644 vendor/golang.org/x/sys/unix/flock.go + create mode 100644 vendor/golang.org/x/sys/unix/flock_linux_32bit.go + create mode 100644 vendor/golang.org/x/sys/unix/gccgo.go + create mode 100644 vendor/golang.org/x/sys/unix/gccgo_c.c + create mode 100644 vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go + create mode 100644 vendor/golang.org/x/sys/unix/mkpost.go + create mode 100644 vendor/golang.org/x/sys/unix/openbsd_pledge.go + create mode 100644 vendor/golang.org/x/sys/unix/race.go + create mode 100644 vendor/golang.org/x/sys/unix/race0.go + create mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_linux.go + create mode 100644 vendor/golang.org/x/sys/unix/sockcmsg_unix.go + create mode 100644 vendor/golang.org/x/sys/unix/str.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_bsd.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_386.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_arm.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_dragonfly.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd_386.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_386.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_arm.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_arm64.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_s390x.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_netbsd.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_netbsd_386.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_no_getwd.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_386.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_solaris.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_unix.go + create mode 100644 vendor/golang.org/x/sys/unix/syscall_unix_gc.go + create mode 100644 vendor/golang.org/x/sys/unix/types_darwin.go + create mode 100644 vendor/golang.org/x/sys/unix/types_dragonfly.go + create mode 100644 vendor/golang.org/x/sys/unix/types_freebsd.go + create mode 100644 vendor/golang.org/x/sys/unix/types_linux.go + create mode 100644 vendor/golang.org/x/sys/unix/types_netbsd.go + create mode 100644 vendor/golang.org/x/sys/unix/types_openbsd.go + create mode 100644 vendor/golang.org/x/sys/unix/types_solaris.go + create mode 100644 vendor/golang.org/x/sys/unix/zerrors_darwin_386.go + create mode 100644 vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go + create mode 100644 vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go + create mode 100644 vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go + create mode 100644 vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go + create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_386.go + create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_arm.go + create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go + create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_mips.go + create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go + create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go + create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go + create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go + create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go + create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go + create mode 100644 vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go + create mode 100644 vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go + create mode 100644 vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go + create mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go + create mode 100644 vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go + create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go + create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go + create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go + create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go + create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_386.go + create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go + create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go + create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go + create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go + create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go + create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go + create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go + create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go + create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go + create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go + create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go + create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go + create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go + create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysctl_openbsd.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_386.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/zsysnum_solaris_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/ztypes_darwin_386.go + create mode 100644 vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go + create mode 100644 vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go + create mode 100644 vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go + create mode 100644 vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go + create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_386.go + create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_arm.go + create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go + create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_mips.go + create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go + create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go + create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go + create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go + create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go + create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go + create mode 100644 vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go + create mode 100644 vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go + create mode 100644 vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go + create mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go + create mode 100644 vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go + create mode 100644 vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go + +diff --git a/vendor.conf b/vendor.conf +index 75dfca4..17a546e 100644 +--- a/vendor.conf ++++ b/vendor.conf +@@ -12,3 +12,4 @@ github.com/seccomp/libseccomp-golang 32f571b70023028bd57d9288c20efbcb237f3ce0 + github.com/syndtr/gocapability/capability e7cb7fa329f456b3855136a2642b197bad7366ba + github.com/urfave/cli d53eb991652b1d438abdd34ce4bfa3ef1539108e + github.com/vishvananda/netlink 1e2e08e8a2dcdacaae3f14ac44c5cfa31361f270 ++golang.org/x/sys 9a7256cb28ed514b4e1e5f68959914c4c28a92e0 https://github.com/golang/sys +diff --git a/vendor/golang.org/x/sys/LICENSE b/vendor/golang.org/x/sys/LICENSE +new file mode 100644 +index 0000000..6a66aea +--- /dev/null ++++ b/vendor/golang.org/x/sys/LICENSE +@@ -0,0 +1,27 @@ ++Copyright (c) 2009 The Go Authors. All rights reserved. ++ ++Redistribution and use in source and binary forms, with or without ++modification, are permitted provided that the following conditions are ++met: ++ ++ * Redistributions of source code must retain the above copyright ++notice, this list of conditions and the following disclaimer. ++ * Redistributions in binary form must reproduce the above ++copyright notice, this list of conditions and the following disclaimer ++in the documentation and/or other materials provided with the ++distribution. ++ * Neither the name of Google Inc. nor the names of its ++contributors may be used to endorse or promote products derived from ++this software without specific prior written permission. ++ ++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR ++A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT ++OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ++SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ++LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +diff --git a/vendor/golang.org/x/sys/PATENTS b/vendor/golang.org/x/sys/PATENTS +new file mode 100644 +index 0000000..7330990 +--- /dev/null ++++ b/vendor/golang.org/x/sys/PATENTS +@@ -0,0 +1,22 @@ ++Additional IP Rights Grant (Patents) ++ ++"This implementation" means the copyrightable works distributed by ++Google as part of the Go project. ++ ++Google hereby grants to You a perpetual, worldwide, non-exclusive, ++no-charge, royalty-free, irrevocable (except as stated in this section) ++patent license to make, have made, use, offer to sell, sell, import, ++transfer and otherwise run, modify and propagate the contents of this ++implementation of Go, where such license applies only to those patent ++claims, both currently owned or controlled by Google and acquired in ++the future, licensable by Google that are necessarily infringed by this ++implementation of Go. This grant does not include claims that would be ++infringed only as a consequence of further modification of this ++implementation. If you or your agent or exclusive licensee institute or ++order or agree to the institution of patent litigation against any ++entity (including a cross-claim or counterclaim in a lawsuit) alleging ++that this implementation of Go or any code incorporated within this ++implementation of Go constitutes direct or contributory patent ++infringement, or inducement of patent infringement, then any patent ++rights granted to you under this License for this implementation of Go ++shall terminate as of the date such litigation is filed. +diff --git a/vendor/golang.org/x/sys/README b/vendor/golang.org/x/sys/README +new file mode 100644 +index 0000000..bd422b4 +--- /dev/null ++++ b/vendor/golang.org/x/sys/README +@@ -0,0 +1,3 @@ ++This repository holds supplemental Go packages for low-level interactions with the operating system. ++ ++To submit changes to this repository, see http://golang.org/doc/contribute.html. +diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_386.s b/vendor/golang.org/x/sys/unix/asm_darwin_386.s +new file mode 100644 +index 0000000..8a72783 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/asm_darwin_386.s +@@ -0,0 +1,29 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build !gccgo ++ ++#include "textflag.h" ++ ++// ++// System call support for 386, Darwin ++// ++ ++// Just jump to package syscall's implementation for all these functions. ++// The runtime may know about them. ++ ++TEXT ·Syscall(SB),NOSPLIT,$0-28 ++ JMP syscall·Syscall(SB) ++ ++TEXT ·Syscall6(SB),NOSPLIT,$0-40 ++ JMP syscall·Syscall6(SB) ++ ++TEXT ·Syscall9(SB),NOSPLIT,$0-52 ++ JMP syscall·Syscall9(SB) ++ ++TEXT ·RawSyscall(SB),NOSPLIT,$0-28 ++ JMP syscall·RawSyscall(SB) ++ ++TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 ++ JMP syscall·RawSyscall6(SB) +diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_amd64.s b/vendor/golang.org/x/sys/unix/asm_darwin_amd64.s +new file mode 100644 +index 0000000..6321421 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/asm_darwin_amd64.s +@@ -0,0 +1,29 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build !gccgo ++ ++#include "textflag.h" ++ ++// ++// System call support for AMD64, Darwin ++// ++ ++// Just jump to package syscall's implementation for all these functions. ++// The runtime may know about them. ++ ++TEXT ·Syscall(SB),NOSPLIT,$0-56 ++ JMP syscall·Syscall(SB) ++ ++TEXT ·Syscall6(SB),NOSPLIT,$0-80 ++ JMP syscall·Syscall6(SB) ++ ++TEXT ·Syscall9(SB),NOSPLIT,$0-104 ++ JMP syscall·Syscall9(SB) ++ ++TEXT ·RawSyscall(SB),NOSPLIT,$0-56 ++ JMP syscall·RawSyscall(SB) ++ ++TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 ++ JMP syscall·RawSyscall6(SB) +diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_arm.s b/vendor/golang.org/x/sys/unix/asm_darwin_arm.s +new file mode 100644 +index 0000000..333242d +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/asm_darwin_arm.s +@@ -0,0 +1,30 @@ ++// Copyright 2015 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build !gccgo ++// +build arm,darwin ++ ++#include "textflag.h" ++ ++// ++// System call support for ARM, Darwin ++// ++ ++// Just jump to package syscall's implementation for all these functions. ++// The runtime may know about them. ++ ++TEXT ·Syscall(SB),NOSPLIT,$0-28 ++ B syscall·Syscall(SB) ++ ++TEXT ·Syscall6(SB),NOSPLIT,$0-40 ++ B syscall·Syscall6(SB) ++ ++TEXT ·Syscall9(SB),NOSPLIT,$0-52 ++ B syscall·Syscall9(SB) ++ ++TEXT ·RawSyscall(SB),NOSPLIT,$0-28 ++ B syscall·RawSyscall(SB) ++ ++TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 ++ B syscall·RawSyscall6(SB) +diff --git a/vendor/golang.org/x/sys/unix/asm_darwin_arm64.s b/vendor/golang.org/x/sys/unix/asm_darwin_arm64.s +new file mode 100644 +index 0000000..97e0174 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/asm_darwin_arm64.s +@@ -0,0 +1,30 @@ ++// Copyright 2015 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build !gccgo ++// +build arm64,darwin ++ ++#include "textflag.h" ++ ++// ++// System call support for AMD64, Darwin ++// ++ ++// Just jump to package syscall's implementation for all these functions. ++// The runtime may know about them. ++ ++TEXT ·Syscall(SB),NOSPLIT,$0-56 ++ B syscall·Syscall(SB) ++ ++TEXT ·Syscall6(SB),NOSPLIT,$0-80 ++ B syscall·Syscall6(SB) ++ ++TEXT ·Syscall9(SB),NOSPLIT,$0-104 ++ B syscall·Syscall9(SB) ++ ++TEXT ·RawSyscall(SB),NOSPLIT,$0-56 ++ B syscall·RawSyscall(SB) ++ ++TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 ++ B syscall·RawSyscall6(SB) +diff --git a/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s b/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s +new file mode 100644 +index 0000000..d5ed672 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s +@@ -0,0 +1,29 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build !gccgo ++ ++#include "textflag.h" ++ ++// ++// System call support for AMD64, DragonFly ++// ++ ++// Just jump to package syscall's implementation for all these functions. ++// The runtime may know about them. ++ ++TEXT ·Syscall(SB),NOSPLIT,$0-64 ++ JMP syscall·Syscall(SB) ++ ++TEXT ·Syscall6(SB),NOSPLIT,$0-88 ++ JMP syscall·Syscall6(SB) ++ ++TEXT ·Syscall9(SB),NOSPLIT,$0-112 ++ JMP syscall·Syscall9(SB) ++ ++TEXT ·RawSyscall(SB),NOSPLIT,$0-64 ++ JMP syscall·RawSyscall(SB) ++ ++TEXT ·RawSyscall6(SB),NOSPLIT,$0-88 ++ JMP syscall·RawSyscall6(SB) +diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_386.s b/vendor/golang.org/x/sys/unix/asm_freebsd_386.s +new file mode 100644 +index 0000000..c9a0a26 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/asm_freebsd_386.s +@@ -0,0 +1,29 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build !gccgo ++ ++#include "textflag.h" ++ ++// ++// System call support for 386, FreeBSD ++// ++ ++// Just jump to package syscall's implementation for all these functions. ++// The runtime may know about them. ++ ++TEXT ·Syscall(SB),NOSPLIT,$0-28 ++ JMP syscall·Syscall(SB) ++ ++TEXT ·Syscall6(SB),NOSPLIT,$0-40 ++ JMP syscall·Syscall6(SB) ++ ++TEXT ·Syscall9(SB),NOSPLIT,$0-52 ++ JMP syscall·Syscall9(SB) ++ ++TEXT ·RawSyscall(SB),NOSPLIT,$0-28 ++ JMP syscall·RawSyscall(SB) ++ ++TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 ++ JMP syscall·RawSyscall6(SB) +diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s +new file mode 100644 +index 0000000..3517247 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s +@@ -0,0 +1,29 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build !gccgo ++ ++#include "textflag.h" ++ ++// ++// System call support for AMD64, FreeBSD ++// ++ ++// Just jump to package syscall's implementation for all these functions. ++// The runtime may know about them. ++ ++TEXT ·Syscall(SB),NOSPLIT,$0-56 ++ JMP syscall·Syscall(SB) ++ ++TEXT ·Syscall6(SB),NOSPLIT,$0-80 ++ JMP syscall·Syscall6(SB) ++ ++TEXT ·Syscall9(SB),NOSPLIT,$0-104 ++ JMP syscall·Syscall9(SB) ++ ++TEXT ·RawSyscall(SB),NOSPLIT,$0-56 ++ JMP syscall·RawSyscall(SB) ++ ++TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 ++ JMP syscall·RawSyscall6(SB) +diff --git a/vendor/golang.org/x/sys/unix/asm_freebsd_arm.s b/vendor/golang.org/x/sys/unix/asm_freebsd_arm.s +new file mode 100644 +index 0000000..9227c87 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/asm_freebsd_arm.s +@@ -0,0 +1,29 @@ ++// Copyright 2012 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build !gccgo ++ ++#include "textflag.h" ++ ++// ++// System call support for ARM, FreeBSD ++// ++ ++// Just jump to package syscall's implementation for all these functions. ++// The runtime may know about them. ++ ++TEXT ·Syscall(SB),NOSPLIT,$0-28 ++ B syscall·Syscall(SB) ++ ++TEXT ·Syscall6(SB),NOSPLIT,$0-40 ++ B syscall·Syscall6(SB) ++ ++TEXT ·Syscall9(SB),NOSPLIT,$0-52 ++ B syscall·Syscall9(SB) ++ ++TEXT ·RawSyscall(SB),NOSPLIT,$0-28 ++ B syscall·RawSyscall(SB) ++ ++TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 ++ B syscall·RawSyscall6(SB) +diff --git a/vendor/golang.org/x/sys/unix/asm_linux_386.s b/vendor/golang.org/x/sys/unix/asm_linux_386.s +new file mode 100644 +index 0000000..4db2909 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/asm_linux_386.s +@@ -0,0 +1,35 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build !gccgo ++ ++#include "textflag.h" ++ ++// ++// System calls for 386, Linux ++// ++ ++// Just jump to package syscall's implementation for all these functions. ++// The runtime may know about them. ++ ++TEXT ·Syscall(SB),NOSPLIT,$0-28 ++ JMP syscall·Syscall(SB) ++ ++TEXT ·Syscall6(SB),NOSPLIT,$0-40 ++ JMP syscall·Syscall6(SB) ++ ++TEXT ·RawSyscall(SB),NOSPLIT,$0-28 ++ JMP syscall·RawSyscall(SB) ++ ++TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 ++ JMP syscall·RawSyscall6(SB) ++ ++TEXT ·socketcall(SB),NOSPLIT,$0-36 ++ JMP syscall·socketcall(SB) ++ ++TEXT ·rawsocketcall(SB),NOSPLIT,$0-36 ++ JMP syscall·rawsocketcall(SB) ++ ++TEXT ·seek(SB),NOSPLIT,$0-28 ++ JMP syscall·seek(SB) +diff --git a/vendor/golang.org/x/sys/unix/asm_linux_amd64.s b/vendor/golang.org/x/sys/unix/asm_linux_amd64.s +new file mode 100644 +index 0000000..44e25c6 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/asm_linux_amd64.s +@@ -0,0 +1,29 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build !gccgo ++ ++#include "textflag.h" ++ ++// ++// System calls for AMD64, Linux ++// ++ ++// Just jump to package syscall's implementation for all these functions. ++// The runtime may know about them. ++ ++TEXT ·Syscall(SB),NOSPLIT,$0-56 ++ JMP syscall·Syscall(SB) ++ ++TEXT ·Syscall6(SB),NOSPLIT,$0-80 ++ JMP syscall·Syscall6(SB) ++ ++TEXT ·RawSyscall(SB),NOSPLIT,$0-56 ++ JMP syscall·RawSyscall(SB) ++ ++TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 ++ JMP syscall·RawSyscall6(SB) ++ ++TEXT ·gettimeofday(SB),NOSPLIT,$0-16 ++ JMP syscall·gettimeofday(SB) +diff --git a/vendor/golang.org/x/sys/unix/asm_linux_arm.s b/vendor/golang.org/x/sys/unix/asm_linux_arm.s +new file mode 100644 +index 0000000..cf0b574 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/asm_linux_arm.s +@@ -0,0 +1,29 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build !gccgo ++ ++#include "textflag.h" ++ ++// ++// System calls for arm, Linux ++// ++ ++// Just jump to package syscall's implementation for all these functions. ++// The runtime may know about them. ++ ++TEXT ·Syscall(SB),NOSPLIT,$0-28 ++ B syscall·Syscall(SB) ++ ++TEXT ·Syscall6(SB),NOSPLIT,$0-40 ++ B syscall·Syscall6(SB) ++ ++TEXT ·RawSyscall(SB),NOSPLIT,$0-28 ++ B syscall·RawSyscall(SB) ++ ++TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 ++ B syscall·RawSyscall6(SB) ++ ++TEXT ·seek(SB),NOSPLIT,$0-32 ++ B syscall·seek(SB) +diff --git a/vendor/golang.org/x/sys/unix/asm_linux_arm64.s b/vendor/golang.org/x/sys/unix/asm_linux_arm64.s +new file mode 100644 +index 0000000..4be9bfe +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/asm_linux_arm64.s +@@ -0,0 +1,24 @@ ++// Copyright 2015 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build linux ++// +build arm64 ++// +build !gccgo ++ ++#include "textflag.h" ++ ++// Just jump to package syscall's implementation for all these functions. ++// The runtime may know about them. ++ ++TEXT ·Syscall(SB),NOSPLIT,$0-56 ++ B syscall·Syscall(SB) ++ ++TEXT ·Syscall6(SB),NOSPLIT,$0-80 ++ B syscall·Syscall6(SB) ++ ++TEXT ·RawSyscall(SB),NOSPLIT,$0-56 ++ B syscall·RawSyscall(SB) ++ ++TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 ++ B syscall·RawSyscall6(SB) +diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s b/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s +new file mode 100644 +index 0000000..724e580 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s +@@ -0,0 +1,28 @@ ++// Copyright 2015 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build linux ++// +build mips64 mips64le ++// +build !gccgo ++ ++#include "textflag.h" ++ ++// ++// System calls for mips64, Linux ++// ++ ++// Just jump to package syscall's implementation for all these functions. ++// The runtime may know about them. ++ ++TEXT ·Syscall(SB),NOSPLIT,$0-56 ++ JMP syscall·Syscall(SB) ++ ++TEXT ·Syscall6(SB),NOSPLIT,$0-80 ++ JMP syscall·Syscall6(SB) ++ ++TEXT ·RawSyscall(SB),NOSPLIT,$0-56 ++ JMP syscall·RawSyscall(SB) ++ ++TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 ++ JMP syscall·RawSyscall6(SB) +diff --git a/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s b/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s +new file mode 100644 +index 0000000..2ea4257 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s +@@ -0,0 +1,31 @@ ++// Copyright 2016 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build linux ++// +build mips mipsle ++// +build !gccgo ++ ++#include "textflag.h" ++ ++// ++// System calls for mips, Linux ++// ++ ++// Just jump to package syscall's implementation for all these functions. ++// The runtime may know about them. ++ ++TEXT ·Syscall(SB),NOSPLIT,$0-28 ++ JMP syscall·Syscall(SB) ++ ++TEXT ·Syscall6(SB),NOSPLIT,$0-40 ++ JMP syscall·Syscall6(SB) ++ ++TEXT ·Syscall9(SB),NOSPLIT,$0-52 ++ JMP syscall·Syscall9(SB) ++ ++TEXT ·RawSyscall(SB),NOSPLIT,$0-28 ++ JMP syscall·RawSyscall(SB) ++ ++TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 ++ JMP syscall·RawSyscall6(SB) +diff --git a/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s b/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s +new file mode 100644 +index 0000000..8d231fe +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s +@@ -0,0 +1,28 @@ ++// Copyright 2014 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build linux ++// +build ppc64 ppc64le ++// +build !gccgo ++ ++#include "textflag.h" ++ ++// ++// System calls for ppc64, Linux ++// ++ ++// Just jump to package syscall's implementation for all these functions. ++// The runtime may know about them. ++ ++TEXT ·Syscall(SB),NOSPLIT,$0-56 ++ BR syscall·Syscall(SB) ++ ++TEXT ·Syscall6(SB),NOSPLIT,$0-80 ++ BR syscall·Syscall6(SB) ++ ++TEXT ·RawSyscall(SB),NOSPLIT,$0-56 ++ BR syscall·RawSyscall(SB) ++ ++TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 ++ BR syscall·RawSyscall6(SB) +diff --git a/vendor/golang.org/x/sys/unix/asm_linux_s390x.s b/vendor/golang.org/x/sys/unix/asm_linux_s390x.s +new file mode 100644 +index 0000000..1188985 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/asm_linux_s390x.s +@@ -0,0 +1,28 @@ ++// Copyright 2016 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build s390x ++// +build linux ++// +build !gccgo ++ ++#include "textflag.h" ++ ++// ++// System calls for s390x, Linux ++// ++ ++// Just jump to package syscall's implementation for all these functions. ++// The runtime may know about them. ++ ++TEXT ·Syscall(SB),NOSPLIT,$0-56 ++ BR syscall·Syscall(SB) ++ ++TEXT ·Syscall6(SB),NOSPLIT,$0-80 ++ BR syscall·Syscall6(SB) ++ ++TEXT ·RawSyscall(SB),NOSPLIT,$0-56 ++ BR syscall·RawSyscall(SB) ++ ++TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 ++ BR syscall·RawSyscall6(SB) +diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_386.s b/vendor/golang.org/x/sys/unix/asm_netbsd_386.s +new file mode 100644 +index 0000000..48bdcd7 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/asm_netbsd_386.s +@@ -0,0 +1,29 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build !gccgo ++ ++#include "textflag.h" ++ ++// ++// System call support for 386, NetBSD ++// ++ ++// Just jump to package syscall's implementation for all these functions. ++// The runtime may know about them. ++ ++TEXT ·Syscall(SB),NOSPLIT,$0-28 ++ JMP syscall·Syscall(SB) ++ ++TEXT ·Syscall6(SB),NOSPLIT,$0-40 ++ JMP syscall·Syscall6(SB) ++ ++TEXT ·Syscall9(SB),NOSPLIT,$0-52 ++ JMP syscall·Syscall9(SB) ++ ++TEXT ·RawSyscall(SB),NOSPLIT,$0-28 ++ JMP syscall·RawSyscall(SB) ++ ++TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 ++ JMP syscall·RawSyscall6(SB) +diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s +new file mode 100644 +index 0000000..2ede05c +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s +@@ -0,0 +1,29 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build !gccgo ++ ++#include "textflag.h" ++ ++// ++// System call support for AMD64, NetBSD ++// ++ ++// Just jump to package syscall's implementation for all these functions. ++// The runtime may know about them. ++ ++TEXT ·Syscall(SB),NOSPLIT,$0-56 ++ JMP syscall·Syscall(SB) ++ ++TEXT ·Syscall6(SB),NOSPLIT,$0-80 ++ JMP syscall·Syscall6(SB) ++ ++TEXT ·Syscall9(SB),NOSPLIT,$0-104 ++ JMP syscall·Syscall9(SB) ++ ++TEXT ·RawSyscall(SB),NOSPLIT,$0-56 ++ JMP syscall·RawSyscall(SB) ++ ++TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 ++ JMP syscall·RawSyscall6(SB) +diff --git a/vendor/golang.org/x/sys/unix/asm_netbsd_arm.s b/vendor/golang.org/x/sys/unix/asm_netbsd_arm.s +new file mode 100644 +index 0000000..e892857 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/asm_netbsd_arm.s +@@ -0,0 +1,29 @@ ++// Copyright 2013 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build !gccgo ++ ++#include "textflag.h" ++ ++// ++// System call support for ARM, NetBSD ++// ++ ++// Just jump to package syscall's implementation for all these functions. ++// The runtime may know about them. ++ ++TEXT ·Syscall(SB),NOSPLIT,$0-28 ++ B syscall·Syscall(SB) ++ ++TEXT ·Syscall6(SB),NOSPLIT,$0-40 ++ B syscall·Syscall6(SB) ++ ++TEXT ·Syscall9(SB),NOSPLIT,$0-52 ++ B syscall·Syscall9(SB) ++ ++TEXT ·RawSyscall(SB),NOSPLIT,$0-28 ++ B syscall·RawSyscall(SB) ++ ++TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 ++ B syscall·RawSyscall6(SB) +diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_386.s b/vendor/golang.org/x/sys/unix/asm_openbsd_386.s +new file mode 100644 +index 0000000..00576f3 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/asm_openbsd_386.s +@@ -0,0 +1,29 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build !gccgo ++ ++#include "textflag.h" ++ ++// ++// System call support for 386, OpenBSD ++// ++ ++// Just jump to package syscall's implementation for all these functions. ++// The runtime may know about them. ++ ++TEXT ·Syscall(SB),NOSPLIT,$0-28 ++ JMP syscall·Syscall(SB) ++ ++TEXT ·Syscall6(SB),NOSPLIT,$0-40 ++ JMP syscall·Syscall6(SB) ++ ++TEXT ·Syscall9(SB),NOSPLIT,$0-52 ++ JMP syscall·Syscall9(SB) ++ ++TEXT ·RawSyscall(SB),NOSPLIT,$0-28 ++ JMP syscall·RawSyscall(SB) ++ ++TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 ++ JMP syscall·RawSyscall6(SB) +diff --git a/vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s b/vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s +new file mode 100644 +index 0000000..790ef77 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s +@@ -0,0 +1,29 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build !gccgo ++ ++#include "textflag.h" ++ ++// ++// System call support for AMD64, OpenBSD ++// ++ ++// Just jump to package syscall's implementation for all these functions. ++// The runtime may know about them. ++ ++TEXT ·Syscall(SB),NOSPLIT,$0-56 ++ JMP syscall·Syscall(SB) ++ ++TEXT ·Syscall6(SB),NOSPLIT,$0-80 ++ JMP syscall·Syscall6(SB) ++ ++TEXT ·Syscall9(SB),NOSPLIT,$0-104 ++ JMP syscall·Syscall9(SB) ++ ++TEXT ·RawSyscall(SB),NOSPLIT,$0-56 ++ JMP syscall·RawSyscall(SB) ++ ++TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 ++ JMP syscall·RawSyscall6(SB) +diff --git a/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s b/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s +new file mode 100644 +index 0000000..43ed17a +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s +@@ -0,0 +1,17 @@ ++// Copyright 2014 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build !gccgo ++ ++#include "textflag.h" ++ ++// ++// System calls for amd64, Solaris are implemented in runtime/syscall_solaris.go ++// ++ ++TEXT ·sysvicall6(SB),NOSPLIT,$0-64 ++ JMP syscall·sysvicall6(SB) ++ ++TEXT ·rawSysvicall6(SB),NOSPLIT,$0-64 ++ JMP syscall·rawSysvicall6(SB) +diff --git a/vendor/golang.org/x/sys/unix/bluetooth_linux.go b/vendor/golang.org/x/sys/unix/bluetooth_linux.go +new file mode 100644 +index 0000000..6e32296 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/bluetooth_linux.go +@@ -0,0 +1,35 @@ ++// Copyright 2016 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// Bluetooth sockets and messages ++ ++package unix ++ ++// Bluetooth Protocols ++const ( ++ BTPROTO_L2CAP = 0 ++ BTPROTO_HCI = 1 ++ BTPROTO_SCO = 2 ++ BTPROTO_RFCOMM = 3 ++ BTPROTO_BNEP = 4 ++ BTPROTO_CMTP = 5 ++ BTPROTO_HIDP = 6 ++ BTPROTO_AVDTP = 7 ++) ++ ++const ( ++ HCI_CHANNEL_RAW = 0 ++ HCI_CHANNEL_USER = 1 ++ HCI_CHANNEL_MONITOR = 2 ++ HCI_CHANNEL_CONTROL = 3 ++) ++ ++// Socketoption Level ++const ( ++ SOL_BLUETOOTH = 0x112 ++ SOL_HCI = 0x0 ++ SOL_L2CAP = 0x6 ++ SOL_RFCOMM = 0x12 ++ SOL_SCO = 0x11 ++) +diff --git a/vendor/golang.org/x/sys/unix/constants.go b/vendor/golang.org/x/sys/unix/constants.go +new file mode 100644 +index 0000000..a96f0eb +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/constants.go +@@ -0,0 +1,13 @@ ++// Copyright 2015 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++ ++package unix ++ ++const ( ++ R_OK = 0x4 ++ W_OK = 0x2 ++ X_OK = 0x1 ++) +diff --git a/vendor/golang.org/x/sys/unix/dirent.go b/vendor/golang.org/x/sys/unix/dirent.go +new file mode 100644 +index 0000000..bd47581 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/dirent.go +@@ -0,0 +1,102 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris ++ ++package unix ++ ++import "unsafe" ++ ++// readInt returns the size-bytes unsigned integer in native byte order at offset off. ++func readInt(b []byte, off, size uintptr) (u uint64, ok bool) { ++ if len(b) < int(off+size) { ++ return 0, false ++ } ++ if isBigEndian { ++ return readIntBE(b[off:], size), true ++ } ++ return readIntLE(b[off:], size), true ++} ++ ++func readIntBE(b []byte, size uintptr) uint64 { ++ switch size { ++ case 1: ++ return uint64(b[0]) ++ case 2: ++ _ = b[1] // bounds check hint to compiler; see golang.org/issue/14808 ++ return uint64(b[1]) | uint64(b[0])<<8 ++ case 4: ++ _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808 ++ return uint64(b[3]) | uint64(b[2])<<8 | uint64(b[1])<<16 | uint64(b[0])<<24 ++ case 8: ++ _ = b[7] // bounds check hint to compiler; see golang.org/issue/14808 ++ return uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 | ++ uint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56 ++ default: ++ panic("syscall: readInt with unsupported size") ++ } ++} ++ ++func readIntLE(b []byte, size uintptr) uint64 { ++ switch size { ++ case 1: ++ return uint64(b[0]) ++ case 2: ++ _ = b[1] // bounds check hint to compiler; see golang.org/issue/14808 ++ return uint64(b[0]) | uint64(b[1])<<8 ++ case 4: ++ _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808 ++ return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 ++ case 8: ++ _ = b[7] // bounds check hint to compiler; see golang.org/issue/14808 ++ return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | ++ uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 ++ default: ++ panic("syscall: readInt with unsupported size") ++ } ++} ++ ++// ParseDirent parses up to max directory entries in buf, ++// appending the names to names. It returns the number of ++// bytes consumed from buf, the number of entries added ++// to names, and the new names slice. ++func ParseDirent(buf []byte, max int, names []string) (consumed int, count int, newnames []string) { ++ origlen := len(buf) ++ count = 0 ++ for max != 0 && len(buf) > 0 { ++ reclen, ok := direntReclen(buf) ++ if !ok || reclen > uint64(len(buf)) { ++ return origlen, count, names ++ } ++ rec := buf[:reclen] ++ buf = buf[reclen:] ++ ino, ok := direntIno(rec) ++ if !ok { ++ break ++ } ++ if ino == 0 { // File absent in directory. ++ continue ++ } ++ const namoff = uint64(unsafe.Offsetof(Dirent{}.Name)) ++ namlen, ok := direntNamlen(rec) ++ if !ok || namoff+namlen > uint64(len(rec)) { ++ break ++ } ++ name := rec[namoff : namoff+namlen] ++ for i, c := range name { ++ if c == 0 { ++ name = name[:i] ++ break ++ } ++ } ++ // Check for useless names before allocating a string. ++ if string(name) == "." || string(name) == ".." { ++ continue ++ } ++ max-- ++ count++ ++ names = append(names, string(name)) ++ } ++ return origlen - len(buf), count, names ++} +diff --git a/vendor/golang.org/x/sys/unix/endian_big.go b/vendor/golang.org/x/sys/unix/endian_big.go +new file mode 100644 +index 0000000..8cce9f1 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/endian_big.go +@@ -0,0 +1,9 @@ ++// Copyright 2016 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++// ++// +build ppc64 s390x mips64 ++ ++package unix ++ ++const isBigEndian = true +diff --git a/vendor/golang.org/x/sys/unix/endian_little.go b/vendor/golang.org/x/sys/unix/endian_little.go +new file mode 100644 +index 0000000..9ed865f +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/endian_little.go +@@ -0,0 +1,9 @@ ++// Copyright 2016 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++// ++// +build 386 amd64 amd64p32 arm arm64 ppc64le mips64le ++ ++package unix ++ ++const isBigEndian = false +diff --git a/vendor/golang.org/x/sys/unix/env_unix.go b/vendor/golang.org/x/sys/unix/env_unix.go +new file mode 100644 +index 0000000..45e281a +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/env_unix.go +@@ -0,0 +1,27 @@ ++// Copyright 2010 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++ ++// Unix environment variables. ++ ++package unix ++ ++import "syscall" ++ ++func Getenv(key string) (value string, found bool) { ++ return syscall.Getenv(key) ++} ++ ++func Setenv(key, value string) error { ++ return syscall.Setenv(key, value) ++} ++ ++func Clearenv() { ++ syscall.Clearenv() ++} ++ ++func Environ() []string { ++ return syscall.Environ() ++} +diff --git a/vendor/golang.org/x/sys/unix/env_unset.go b/vendor/golang.org/x/sys/unix/env_unset.go +new file mode 100644 +index 0000000..9222262 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/env_unset.go +@@ -0,0 +1,14 @@ ++// Copyright 2014 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build go1.4 ++ ++package unix ++ ++import "syscall" ++ ++func Unsetenv(key string) error { ++ // This was added in Go 1.4. ++ return syscall.Unsetenv(key) ++} +diff --git a/vendor/golang.org/x/sys/unix/flock.go b/vendor/golang.org/x/sys/unix/flock.go +new file mode 100644 +index 0000000..ce67a59 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/flock.go +@@ -0,0 +1,24 @@ ++// +build linux darwin freebsd openbsd netbsd dragonfly ++ ++// Copyright 2014 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build darwin dragonfly freebsd linux netbsd openbsd ++ ++package unix ++ ++import "unsafe" ++ ++// fcntl64Syscall is usually SYS_FCNTL, but is overridden on 32-bit Linux ++// systems by flock_linux_32bit.go to be SYS_FCNTL64. ++var fcntl64Syscall uintptr = SYS_FCNTL ++ ++// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. ++func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { ++ _, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(unsafe.Pointer(lk))) ++ if errno == 0 { ++ return nil ++ } ++ return errno ++} +diff --git a/vendor/golang.org/x/sys/unix/flock_linux_32bit.go b/vendor/golang.org/x/sys/unix/flock_linux_32bit.go +new file mode 100644 +index 0000000..fc0e50e +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/flock_linux_32bit.go +@@ -0,0 +1,13 @@ ++// +build linux,386 linux,arm linux,mips linux,mipsle ++ ++// Copyright 2014 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++package unix ++ ++func init() { ++ // On 32-bit Linux systems, the fcntl syscall that matches Go's ++ // Flock_t type is SYS_FCNTL64, not SYS_FCNTL. ++ fcntl64Syscall = SYS_FCNTL64 ++} +diff --git a/vendor/golang.org/x/sys/unix/gccgo.go b/vendor/golang.org/x/sys/unix/gccgo.go +new file mode 100644 +index 0000000..94c8232 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/gccgo.go +@@ -0,0 +1,46 @@ ++// Copyright 2015 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build gccgo ++ ++package unix ++ ++import "syscall" ++ ++// We can't use the gc-syntax .s files for gccgo. On the plus side ++// much of the functionality can be written directly in Go. ++ ++//extern gccgoRealSyscall ++func realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r, errno uintptr) ++ ++func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { ++ syscall.Entersyscall() ++ r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) ++ syscall.Exitsyscall() ++ return r, 0, syscall.Errno(errno) ++} ++ ++func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { ++ syscall.Entersyscall() ++ r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0) ++ syscall.Exitsyscall() ++ return r, 0, syscall.Errno(errno) ++} ++ ++func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) { ++ syscall.Entersyscall() ++ r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9) ++ syscall.Exitsyscall() ++ return r, 0, syscall.Errno(errno) ++} ++ ++func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { ++ r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) ++ return r, 0, syscall.Errno(errno) ++} ++ ++func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { ++ r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0) ++ return r, 0, syscall.Errno(errno) ++} +diff --git a/vendor/golang.org/x/sys/unix/gccgo_c.c b/vendor/golang.org/x/sys/unix/gccgo_c.c +new file mode 100644 +index 0000000..07f6be0 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/gccgo_c.c +@@ -0,0 +1,41 @@ ++// Copyright 2015 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build gccgo ++ ++#include ++#include ++#include ++ ++#define _STRINGIFY2_(x) #x ++#define _STRINGIFY_(x) _STRINGIFY2_(x) ++#define GOSYM_PREFIX _STRINGIFY_(__USER_LABEL_PREFIX__) ++ ++// Call syscall from C code because the gccgo support for calling from ++// Go to C does not support varargs functions. ++ ++struct ret { ++ uintptr_t r; ++ uintptr_t err; ++}; ++ ++struct ret ++gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9) ++{ ++ struct ret r; ++ ++ errno = 0; ++ r.r = syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9); ++ r.err = errno; ++ return r; ++} ++ ++// Define the use function in C so that it is not inlined. ++ ++extern void use(void *) __asm__ (GOSYM_PREFIX GOPKGPATH ".use") __attribute__((noinline)); ++ ++void ++use(void *p __attribute__ ((unused))) ++{ ++} +diff --git a/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go b/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go +new file mode 100644 +index 0000000..bffe1a7 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go +@@ -0,0 +1,20 @@ ++// Copyright 2015 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build gccgo,linux,amd64 ++ ++package unix ++ ++import "syscall" ++ ++//extern gettimeofday ++func realGettimeofday(*Timeval, *byte) int32 ++ ++func gettimeofday(tv *Timeval) (err syscall.Errno) { ++ r := realGettimeofday(tv, nil) ++ if r < 0 { ++ return syscall.GetErrno() ++ } ++ return 0 ++} +diff --git a/vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go b/vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go +new file mode 100644 +index 0000000..5633269 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/gccgo_linux_sparc64.go +@@ -0,0 +1,20 @@ ++// Copyright 2016 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build gccgo,linux,sparc64 ++ ++package unix ++ ++import "syscall" ++ ++//extern sysconf ++func realSysconf(name int) int64 ++ ++func sysconf(name int) (n int64, err syscall.Errno) { ++ r := realSysconf(name) ++ if r < 0 { ++ return 0, syscall.GetErrno() ++ } ++ return r, 0 ++} +diff --git a/vendor/golang.org/x/sys/unix/mkpost.go b/vendor/golang.org/x/sys/unix/mkpost.go +new file mode 100644 +index 0000000..ed50d90 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/mkpost.go +@@ -0,0 +1,62 @@ ++// Copyright 2016 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build ignore ++ ++// mkpost processes the output of cgo -godefs to ++// modify the generated types. It is used to clean up ++// the sys API in an architecture specific manner. ++// ++// mkpost is run after cgo -godefs by mkall.sh. ++package main ++ ++import ( ++ "fmt" ++ "go/format" ++ "io/ioutil" ++ "log" ++ "os" ++ "regexp" ++) ++ ++func main() { ++ b, err := ioutil.ReadAll(os.Stdin) ++ if err != nil { ++ log.Fatal(err) ++ } ++ s := string(b) ++ ++ goarch := os.Getenv("GOARCH") ++ goos := os.Getenv("GOOS") ++ if goarch == "s390x" && goos == "linux" { ++ // Export the types of PtraceRegs fields. ++ re := regexp.MustCompile("ptrace(Psw|Fpregs|Per)") ++ s = re.ReplaceAllString(s, "Ptrace$1") ++ ++ // Replace padding fields inserted by cgo with blank identifiers. ++ re = regexp.MustCompile("Pad_cgo[A-Za-z0-9_]*") ++ s = re.ReplaceAllString(s, "_") ++ ++ // Replace other unwanted fields with blank identifiers. ++ re = regexp.MustCompile("X_[A-Za-z0-9_]*") ++ s = re.ReplaceAllString(s, "_") ++ ++ // Replace the control_regs union with a blank identifier for now. ++ re = regexp.MustCompile("(Control_regs)\\s+\\[0\\]uint64") ++ s = re.ReplaceAllString(s, "_ [0]uint64") ++ } ++ ++ // gofmt ++ b, err = format.Source([]byte(s)) ++ if err != nil { ++ log.Fatal(err) ++ } ++ ++ // Append this command to the header to show where the new file ++ // came from. ++ re := regexp.MustCompile("(cgo -godefs [a-zA-Z0-9_]+\\.go.*)") ++ b = re.ReplaceAll(b, []byte("$1 | go run mkpost.go")) ++ ++ fmt.Printf("%s", b) ++} +diff --git a/vendor/golang.org/x/sys/unix/openbsd_pledge.go b/vendor/golang.org/x/sys/unix/openbsd_pledge.go +new file mode 100644 +index 0000000..db4f72e +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/openbsd_pledge.go +@@ -0,0 +1,38 @@ ++// Copyright 2016 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build openbsd ++// +build 386 amd64 arm ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++const ( ++ SYS_PLEDGE = 108 ++) ++ ++// Pledge implements the pledge syscall. For more information see pledge(2). ++func Pledge(promises string, paths []string) error { ++ promisesPtr, err := syscall.BytePtrFromString(promises) ++ if err != nil { ++ return err ++ } ++ promisesUnsafe, pathsUnsafe := unsafe.Pointer(promisesPtr), unsafe.Pointer(nil) ++ if paths != nil { ++ var pathsPtr []*byte ++ if pathsPtr, err = syscall.SlicePtrFromStrings(paths); err != nil { ++ return err ++ } ++ pathsUnsafe = unsafe.Pointer(&pathsPtr[0]) ++ } ++ _, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(promisesUnsafe), uintptr(pathsUnsafe), 0) ++ if e != 0 { ++ return e ++ } ++ return nil ++} +diff --git a/vendor/golang.org/x/sys/unix/race.go b/vendor/golang.org/x/sys/unix/race.go +new file mode 100644 +index 0000000..3c7627e +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/race.go +@@ -0,0 +1,30 @@ ++// Copyright 2012 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build darwin,race linux,race freebsd,race ++ ++package unix ++ ++import ( ++ "runtime" ++ "unsafe" ++) ++ ++const raceenabled = true ++ ++func raceAcquire(addr unsafe.Pointer) { ++ runtime.RaceAcquire(addr) ++} ++ ++func raceReleaseMerge(addr unsafe.Pointer) { ++ runtime.RaceReleaseMerge(addr) ++} ++ ++func raceReadRange(addr unsafe.Pointer, len int) { ++ runtime.RaceReadRange(addr, len) ++} ++ ++func raceWriteRange(addr unsafe.Pointer, len int) { ++ runtime.RaceWriteRange(addr, len) ++} +diff --git a/vendor/golang.org/x/sys/unix/race0.go b/vendor/golang.org/x/sys/unix/race0.go +new file mode 100644 +index 0000000..f8678e0 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/race0.go +@@ -0,0 +1,25 @@ ++// Copyright 2012 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build darwin,!race linux,!race freebsd,!race netbsd openbsd solaris dragonfly ++ ++package unix ++ ++import ( ++ "unsafe" ++) ++ ++const raceenabled = false ++ ++func raceAcquire(addr unsafe.Pointer) { ++} ++ ++func raceReleaseMerge(addr unsafe.Pointer) { ++} ++ ++func raceReadRange(addr unsafe.Pointer, len int) { ++} ++ ++func raceWriteRange(addr unsafe.Pointer, len int) { ++} +diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_linux.go b/vendor/golang.org/x/sys/unix/sockcmsg_linux.go +new file mode 100644 +index 0000000..d9ff473 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/sockcmsg_linux.go +@@ -0,0 +1,36 @@ ++// Copyright 2011 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// Socket control messages ++ ++package unix ++ ++import "unsafe" ++ ++// UnixCredentials encodes credentials into a socket control message ++// for sending to another process. This can be used for ++// authentication. ++func UnixCredentials(ucred *Ucred) []byte { ++ b := make([]byte, CmsgSpace(SizeofUcred)) ++ h := (*Cmsghdr)(unsafe.Pointer(&b[0])) ++ h.Level = SOL_SOCKET ++ h.Type = SCM_CREDENTIALS ++ h.SetLen(CmsgLen(SizeofUcred)) ++ *((*Ucred)(cmsgData(h))) = *ucred ++ return b ++} ++ ++// ParseUnixCredentials decodes a socket control message that contains ++// credentials in a Ucred structure. To receive such a message, the ++// SO_PASSCRED option must be enabled on the socket. ++func ParseUnixCredentials(m *SocketControlMessage) (*Ucred, error) { ++ if m.Header.Level != SOL_SOCKET { ++ return nil, EINVAL ++ } ++ if m.Header.Type != SCM_CREDENTIALS { ++ return nil, EINVAL ++ } ++ ucred := *(*Ucred)(unsafe.Pointer(&m.Data[0])) ++ return &ucred, nil ++} +diff --git a/vendor/golang.org/x/sys/unix/sockcmsg_unix.go b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go +new file mode 100644 +index 0000000..f1493a3 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/sockcmsg_unix.go +@@ -0,0 +1,103 @@ ++// Copyright 2011 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++ ++// Socket control messages ++ ++package unix ++ ++import "unsafe" ++ ++// Round the length of a raw sockaddr up to align it properly. ++func cmsgAlignOf(salen int) int { ++ salign := sizeofPtr ++ // NOTE: It seems like 64-bit Darwin and DragonFly BSD kernels ++ // still require 32-bit aligned access to network subsystem. ++ if darwin64Bit || dragonfly64Bit { ++ salign = 4 ++ } ++ return (salen + salign - 1) & ^(salign - 1) ++} ++ ++// CmsgLen returns the value to store in the Len field of the Cmsghdr ++// structure, taking into account any necessary alignment. ++func CmsgLen(datalen int) int { ++ return cmsgAlignOf(SizeofCmsghdr) + datalen ++} ++ ++// CmsgSpace returns the number of bytes an ancillary element with ++// payload of the passed data length occupies. ++func CmsgSpace(datalen int) int { ++ return cmsgAlignOf(SizeofCmsghdr) + cmsgAlignOf(datalen) ++} ++ ++func cmsgData(h *Cmsghdr) unsafe.Pointer { ++ return unsafe.Pointer(uintptr(unsafe.Pointer(h)) + uintptr(cmsgAlignOf(SizeofCmsghdr))) ++} ++ ++// SocketControlMessage represents a socket control message. ++type SocketControlMessage struct { ++ Header Cmsghdr ++ Data []byte ++} ++ ++// ParseSocketControlMessage parses b as an array of socket control ++// messages. ++func ParseSocketControlMessage(b []byte) ([]SocketControlMessage, error) { ++ var msgs []SocketControlMessage ++ i := 0 ++ for i+CmsgLen(0) <= len(b) { ++ h, dbuf, err := socketControlMessageHeaderAndData(b[i:]) ++ if err != nil { ++ return nil, err ++ } ++ m := SocketControlMessage{Header: *h, Data: dbuf} ++ msgs = append(msgs, m) ++ i += cmsgAlignOf(int(h.Len)) ++ } ++ return msgs, nil ++} ++ ++func socketControlMessageHeaderAndData(b []byte) (*Cmsghdr, []byte, error) { ++ h := (*Cmsghdr)(unsafe.Pointer(&b[0])) ++ if h.Len < SizeofCmsghdr || uint64(h.Len) > uint64(len(b)) { ++ return nil, nil, EINVAL ++ } ++ return h, b[cmsgAlignOf(SizeofCmsghdr):h.Len], nil ++} ++ ++// UnixRights encodes a set of open file descriptors into a socket ++// control message for sending to another process. ++func UnixRights(fds ...int) []byte { ++ datalen := len(fds) * 4 ++ b := make([]byte, CmsgSpace(datalen)) ++ h := (*Cmsghdr)(unsafe.Pointer(&b[0])) ++ h.Level = SOL_SOCKET ++ h.Type = SCM_RIGHTS ++ h.SetLen(CmsgLen(datalen)) ++ data := cmsgData(h) ++ for _, fd := range fds { ++ *(*int32)(data) = int32(fd) ++ data = unsafe.Pointer(uintptr(data) + 4) ++ } ++ return b ++} ++ ++// ParseUnixRights decodes a socket control message that contains an ++// integer array of open file descriptors from another process. ++func ParseUnixRights(m *SocketControlMessage) ([]int, error) { ++ if m.Header.Level != SOL_SOCKET { ++ return nil, EINVAL ++ } ++ if m.Header.Type != SCM_RIGHTS { ++ return nil, EINVAL ++ } ++ fds := make([]int, len(m.Data)>>2) ++ for i, j := 0, 0; i < len(m.Data); i += 4 { ++ fds[j] = int(*(*int32)(unsafe.Pointer(&m.Data[i]))) ++ j++ ++ } ++ return fds, nil ++} +diff --git a/vendor/golang.org/x/sys/unix/str.go b/vendor/golang.org/x/sys/unix/str.go +new file mode 100644 +index 0000000..35ed664 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/str.go +@@ -0,0 +1,26 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++ ++package unix ++ ++func itoa(val int) string { // do it here rather than with fmt to avoid dependency ++ if val < 0 { ++ return "-" + uitoa(uint(-val)) ++ } ++ return uitoa(uint(val)) ++} ++ ++func uitoa(val uint) string { ++ var buf [32]byte // big enough for int64 ++ i := len(buf) - 1 ++ for val >= 10 { ++ buf[i] = byte(val%10 + '0') ++ i-- ++ val /= 10 ++ } ++ buf[i] = byte(val + '0') ++ return string(buf[i:]) ++} +diff --git a/vendor/golang.org/x/sys/unix/syscall.go b/vendor/golang.org/x/sys/unix/syscall.go +new file mode 100644 +index 0000000..85e3502 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall.go +@@ -0,0 +1,69 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++ ++// Package unix contains an interface to the low-level operating system ++// primitives. OS details vary depending on the underlying system, and ++// by default, godoc will display OS-specific documentation for the current ++// system. If you want godoc to display OS documentation for another ++// system, set $GOOS and $GOARCH to the desired system. For example, if ++// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS ++// to freebsd and $GOARCH to arm. ++// The primary use of this package is inside other packages that provide a more ++// portable interface to the system, such as "os", "time" and "net". Use ++// those packages rather than this one if you can. ++// For details of the functions and data types in this package consult ++// the manuals for the appropriate operating system. ++// These calls return err == nil to indicate success; otherwise ++// err represents an operating system error describing the failure and ++// holds a value of type syscall.Errno. ++package unix // import "golang.org/x/sys/unix" ++ ++// ByteSliceFromString returns a NUL-terminated slice of bytes ++// containing the text of s. If s contains a NUL byte at any ++// location, it returns (nil, EINVAL). ++func ByteSliceFromString(s string) ([]byte, error) { ++ for i := 0; i < len(s); i++ { ++ if s[i] == 0 { ++ return nil, EINVAL ++ } ++ } ++ a := make([]byte, len(s)+1) ++ copy(a, s) ++ return a, nil ++} ++ ++// BytePtrFromString returns a pointer to a NUL-terminated array of ++// bytes containing the text of s. If s contains a NUL byte at any ++// location, it returns (nil, EINVAL). ++func BytePtrFromString(s string) (*byte, error) { ++ a, err := ByteSliceFromString(s) ++ if err != nil { ++ return nil, err ++ } ++ return &a[0], nil ++} ++ ++// Single-word zero for use when we need a valid pointer to 0 bytes. ++// See mkunix.pl. ++var _zero uintptr ++ ++func (ts *Timespec) Unix() (sec int64, nsec int64) { ++ return int64(ts.Sec), int64(ts.Nsec) ++} ++ ++func (tv *Timeval) Unix() (sec int64, nsec int64) { ++ return int64(tv.Sec), int64(tv.Usec) * 1000 ++} ++ ++func (ts *Timespec) Nano() int64 { ++ return int64(ts.Sec)*1e9 + int64(ts.Nsec) ++} ++ ++func (tv *Timeval) Nano() int64 { ++ return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000 ++} ++ ++func TimevalToNsec(tv Timeval) int64 { return int64(tv.Sec)*1e9 + int64(tv.Usec)*1e3 } +diff --git a/vendor/golang.org/x/sys/unix/syscall_bsd.go b/vendor/golang.org/x/sys/unix/syscall_bsd.go +new file mode 100644 +index 0000000..ccb29c7 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_bsd.go +@@ -0,0 +1,614 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build darwin dragonfly freebsd netbsd openbsd ++ ++// BSD system call wrappers shared by *BSD based systems ++// including OS X (Darwin) and FreeBSD. Like the other ++// syscall_*.go files it is compiled as Go code but also ++// used as input to mksyscall which parses the //sys ++// lines and generates system call stubs. ++ ++package unix ++ ++import ( ++ "runtime" ++ "syscall" ++ "unsafe" ++) ++ ++/* ++ * Wrapped ++ */ ++ ++//sysnb getgroups(ngid int, gid *_Gid_t) (n int, err error) ++//sysnb setgroups(ngid int, gid *_Gid_t) (err error) ++ ++func Getgroups() (gids []int, err error) { ++ n, err := getgroups(0, nil) ++ if err != nil { ++ return nil, err ++ } ++ if n == 0 { ++ return nil, nil ++ } ++ ++ // Sanity check group count. Max is 16 on BSD. ++ if n < 0 || n > 1000 { ++ return nil, EINVAL ++ } ++ ++ a := make([]_Gid_t, n) ++ n, err = getgroups(n, &a[0]) ++ if err != nil { ++ return nil, err ++ } ++ gids = make([]int, n) ++ for i, v := range a[0:n] { ++ gids[i] = int(v) ++ } ++ return ++} ++ ++func Setgroups(gids []int) (err error) { ++ if len(gids) == 0 { ++ return setgroups(0, nil) ++ } ++ ++ a := make([]_Gid_t, len(gids)) ++ for i, v := range gids { ++ a[i] = _Gid_t(v) ++ } ++ return setgroups(len(a), &a[0]) ++} ++ ++func ReadDirent(fd int, buf []byte) (n int, err error) { ++ // Final argument is (basep *uintptr) and the syscall doesn't take nil. ++ // 64 bits should be enough. (32 bits isn't even on 386). Since the ++ // actual system call is getdirentries64, 64 is a good guess. ++ // TODO(rsc): Can we use a single global basep for all calls? ++ var base = (*uintptr)(unsafe.Pointer(new(uint64))) ++ return Getdirentries(fd, buf, base) ++} ++ ++// Wait status is 7 bits at bottom, either 0 (exited), ++// 0x7F (stopped), or a signal number that caused an exit. ++// The 0x80 bit is whether there was a core dump. ++// An extra number (exit code, signal causing a stop) ++// is in the high bits. ++ ++type WaitStatus uint32 ++ ++const ( ++ mask = 0x7F ++ core = 0x80 ++ shift = 8 ++ ++ exited = 0 ++ stopped = 0x7F ++) ++ ++func (w WaitStatus) Exited() bool { return w&mask == exited } ++ ++func (w WaitStatus) ExitStatus() int { ++ if w&mask != exited { ++ return -1 ++ } ++ return int(w >> shift) ++} ++ ++func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 } ++ ++func (w WaitStatus) Signal() syscall.Signal { ++ sig := syscall.Signal(w & mask) ++ if sig == stopped || sig == 0 { ++ return -1 ++ } ++ return sig ++} ++ ++func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 } ++ ++func (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP } ++ ++func (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP } ++ ++func (w WaitStatus) StopSignal() syscall.Signal { ++ if !w.Stopped() { ++ return -1 ++ } ++ return syscall.Signal(w>>shift) & 0xFF ++} ++ ++func (w WaitStatus) TrapCause() int { return -1 } ++ ++//sys wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) ++ ++func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { ++ var status _C_int ++ wpid, err = wait4(pid, &status, options, rusage) ++ if wstatus != nil { ++ *wstatus = WaitStatus(status) ++ } ++ return ++} ++ ++//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) ++//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) ++//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) ++//sysnb socket(domain int, typ int, proto int) (fd int, err error) ++//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) ++//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) ++//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) ++//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) ++//sys Shutdown(s int, how int) (err error) ++ ++func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { ++ if sa.Port < 0 || sa.Port > 0xFFFF { ++ return nil, 0, EINVAL ++ } ++ sa.raw.Len = SizeofSockaddrInet4 ++ sa.raw.Family = AF_INET ++ p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) ++ p[0] = byte(sa.Port >> 8) ++ p[1] = byte(sa.Port) ++ for i := 0; i < len(sa.Addr); i++ { ++ sa.raw.Addr[i] = sa.Addr[i] ++ } ++ return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil ++} ++ ++func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { ++ if sa.Port < 0 || sa.Port > 0xFFFF { ++ return nil, 0, EINVAL ++ } ++ sa.raw.Len = SizeofSockaddrInet6 ++ sa.raw.Family = AF_INET6 ++ p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) ++ p[0] = byte(sa.Port >> 8) ++ p[1] = byte(sa.Port) ++ sa.raw.Scope_id = sa.ZoneId ++ for i := 0; i < len(sa.Addr); i++ { ++ sa.raw.Addr[i] = sa.Addr[i] ++ } ++ return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil ++} ++ ++func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { ++ name := sa.Name ++ n := len(name) ++ if n >= len(sa.raw.Path) || n == 0 { ++ return nil, 0, EINVAL ++ } ++ sa.raw.Len = byte(3 + n) // 2 for Family, Len; 1 for NUL ++ sa.raw.Family = AF_UNIX ++ for i := 0; i < n; i++ { ++ sa.raw.Path[i] = int8(name[i]) ++ } ++ return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil ++} ++ ++func (sa *SockaddrDatalink) sockaddr() (unsafe.Pointer, _Socklen, error) { ++ if sa.Index == 0 { ++ return nil, 0, EINVAL ++ } ++ sa.raw.Len = sa.Len ++ sa.raw.Family = AF_LINK ++ sa.raw.Index = sa.Index ++ sa.raw.Type = sa.Type ++ sa.raw.Nlen = sa.Nlen ++ sa.raw.Alen = sa.Alen ++ sa.raw.Slen = sa.Slen ++ for i := 0; i < len(sa.raw.Data); i++ { ++ sa.raw.Data[i] = sa.Data[i] ++ } ++ return unsafe.Pointer(&sa.raw), SizeofSockaddrDatalink, nil ++} ++ ++func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) { ++ switch rsa.Addr.Family { ++ case AF_LINK: ++ pp := (*RawSockaddrDatalink)(unsafe.Pointer(rsa)) ++ sa := new(SockaddrDatalink) ++ sa.Len = pp.Len ++ sa.Family = pp.Family ++ sa.Index = pp.Index ++ sa.Type = pp.Type ++ sa.Nlen = pp.Nlen ++ sa.Alen = pp.Alen ++ sa.Slen = pp.Slen ++ for i := 0; i < len(sa.Data); i++ { ++ sa.Data[i] = pp.Data[i] ++ } ++ return sa, nil ++ ++ case AF_UNIX: ++ pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) ++ if pp.Len < 2 || pp.Len > SizeofSockaddrUnix { ++ return nil, EINVAL ++ } ++ sa := new(SockaddrUnix) ++ ++ // Some BSDs include the trailing NUL in the length, whereas ++ // others do not. Work around this by subtracting the leading ++ // family and len. The path is then scanned to see if a NUL ++ // terminator still exists within the length. ++ n := int(pp.Len) - 2 // subtract leading Family, Len ++ for i := 0; i < n; i++ { ++ if pp.Path[i] == 0 { ++ // found early NUL; assume Len included the NUL ++ // or was overestimating. ++ n = i ++ break ++ } ++ } ++ bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] ++ sa.Name = string(bytes) ++ return sa, nil ++ ++ case AF_INET: ++ pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) ++ sa := new(SockaddrInet4) ++ p := (*[2]byte)(unsafe.Pointer(&pp.Port)) ++ sa.Port = int(p[0])<<8 + int(p[1]) ++ for i := 0; i < len(sa.Addr); i++ { ++ sa.Addr[i] = pp.Addr[i] ++ } ++ return sa, nil ++ ++ case AF_INET6: ++ pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) ++ sa := new(SockaddrInet6) ++ p := (*[2]byte)(unsafe.Pointer(&pp.Port)) ++ sa.Port = int(p[0])<<8 + int(p[1]) ++ sa.ZoneId = pp.Scope_id ++ for i := 0; i < len(sa.Addr); i++ { ++ sa.Addr[i] = pp.Addr[i] ++ } ++ return sa, nil ++ } ++ return nil, EAFNOSUPPORT ++} ++ ++func Accept(fd int) (nfd int, sa Sockaddr, err error) { ++ var rsa RawSockaddrAny ++ var len _Socklen = SizeofSockaddrAny ++ nfd, err = accept(fd, &rsa, &len) ++ if err != nil { ++ return ++ } ++ if runtime.GOOS == "darwin" && len == 0 { ++ // Accepted socket has no address. ++ // This is likely due to a bug in xnu kernels, ++ // where instead of ECONNABORTED error socket ++ // is accepted, but has no address. ++ Close(nfd) ++ return 0, nil, ECONNABORTED ++ } ++ sa, err = anyToSockaddr(&rsa) ++ if err != nil { ++ Close(nfd) ++ nfd = 0 ++ } ++ return ++} ++ ++func Getsockname(fd int) (sa Sockaddr, err error) { ++ var rsa RawSockaddrAny ++ var len _Socklen = SizeofSockaddrAny ++ if err = getsockname(fd, &rsa, &len); err != nil { ++ return ++ } ++ // TODO(jsing): DragonFly has a "bug" (see issue 3349), which should be ++ // reported upstream. ++ if runtime.GOOS == "dragonfly" && rsa.Addr.Family == AF_UNSPEC && rsa.Addr.Len == 0 { ++ rsa.Addr.Family = AF_UNIX ++ rsa.Addr.Len = SizeofSockaddrUnix ++ } ++ return anyToSockaddr(&rsa) ++} ++ ++//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) ++ ++func GetsockoptByte(fd, level, opt int) (value byte, err error) { ++ var n byte ++ vallen := _Socklen(1) ++ err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) ++ return n, err ++} ++ ++func GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) { ++ vallen := _Socklen(4) ++ err = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) ++ return value, err ++} ++ ++func GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) { ++ var value IPMreq ++ vallen := _Socklen(SizeofIPMreq) ++ err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) ++ return &value, err ++} ++ ++func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) { ++ var value IPv6Mreq ++ vallen := _Socklen(SizeofIPv6Mreq) ++ err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) ++ return &value, err ++} ++ ++func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) { ++ var value IPv6MTUInfo ++ vallen := _Socklen(SizeofIPv6MTUInfo) ++ err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) ++ return &value, err ++} ++ ++func GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) { ++ var value ICMPv6Filter ++ vallen := _Socklen(SizeofICMPv6Filter) ++ err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) ++ return &value, err ++} ++ ++//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) ++//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) ++//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) ++ ++func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { ++ var msg Msghdr ++ var rsa RawSockaddrAny ++ msg.Name = (*byte)(unsafe.Pointer(&rsa)) ++ msg.Namelen = uint32(SizeofSockaddrAny) ++ var iov Iovec ++ if len(p) > 0 { ++ iov.Base = (*byte)(unsafe.Pointer(&p[0])) ++ iov.SetLen(len(p)) ++ } ++ var dummy byte ++ if len(oob) > 0 { ++ // receive at least one normal byte ++ if len(p) == 0 { ++ iov.Base = &dummy ++ iov.SetLen(1) ++ } ++ msg.Control = (*byte)(unsafe.Pointer(&oob[0])) ++ msg.SetControllen(len(oob)) ++ } ++ msg.Iov = &iov ++ msg.Iovlen = 1 ++ if n, err = recvmsg(fd, &msg, flags); err != nil { ++ return ++ } ++ oobn = int(msg.Controllen) ++ recvflags = int(msg.Flags) ++ // source address is only specified if the socket is unconnected ++ if rsa.Addr.Family != AF_UNSPEC { ++ from, err = anyToSockaddr(&rsa) ++ } ++ return ++} ++ ++//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) ++ ++func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { ++ _, err = SendmsgN(fd, p, oob, to, flags) ++ return ++} ++ ++func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { ++ var ptr unsafe.Pointer ++ var salen _Socklen ++ if to != nil { ++ ptr, salen, err = to.sockaddr() ++ if err != nil { ++ return 0, err ++ } ++ } ++ var msg Msghdr ++ msg.Name = (*byte)(unsafe.Pointer(ptr)) ++ msg.Namelen = uint32(salen) ++ var iov Iovec ++ if len(p) > 0 { ++ iov.Base = (*byte)(unsafe.Pointer(&p[0])) ++ iov.SetLen(len(p)) ++ } ++ var dummy byte ++ if len(oob) > 0 { ++ // send at least one normal byte ++ if len(p) == 0 { ++ iov.Base = &dummy ++ iov.SetLen(1) ++ } ++ msg.Control = (*byte)(unsafe.Pointer(&oob[0])) ++ msg.SetControllen(len(oob)) ++ } ++ msg.Iov = &iov ++ msg.Iovlen = 1 ++ if n, err = sendmsg(fd, &msg, flags); err != nil { ++ return 0, err ++ } ++ if len(oob) > 0 && len(p) == 0 { ++ n = 0 ++ } ++ return n, nil ++} ++ ++//sys kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) ++ ++func Kevent(kq int, changes, events []Kevent_t, timeout *Timespec) (n int, err error) { ++ var change, event unsafe.Pointer ++ if len(changes) > 0 { ++ change = unsafe.Pointer(&changes[0]) ++ } ++ if len(events) > 0 { ++ event = unsafe.Pointer(&events[0]) ++ } ++ return kevent(kq, change, len(changes), event, len(events), timeout) ++} ++ ++//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL ++ ++// sysctlmib translates name to mib number and appends any additional args. ++func sysctlmib(name string, args ...int) ([]_C_int, error) { ++ // Translate name to mib number. ++ mib, err := nametomib(name) ++ if err != nil { ++ return nil, err ++ } ++ ++ for _, a := range args { ++ mib = append(mib, _C_int(a)) ++ } ++ ++ return mib, nil ++} ++ ++func Sysctl(name string) (string, error) { ++ return SysctlArgs(name) ++} ++ ++func SysctlArgs(name string, args ...int) (string, error) { ++ buf, err := SysctlRaw(name, args...) ++ if err != nil { ++ return "", err ++ } ++ n := len(buf) ++ ++ // Throw away terminating NUL. ++ if n > 0 && buf[n-1] == '\x00' { ++ n-- ++ } ++ return string(buf[0:n]), nil ++} ++ ++func SysctlUint32(name string) (uint32, error) { ++ return SysctlUint32Args(name) ++} ++ ++func SysctlUint32Args(name string, args ...int) (uint32, error) { ++ mib, err := sysctlmib(name, args...) ++ if err != nil { ++ return 0, err ++ } ++ ++ n := uintptr(4) ++ buf := make([]byte, 4) ++ if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil { ++ return 0, err ++ } ++ if n != 4 { ++ return 0, EIO ++ } ++ return *(*uint32)(unsafe.Pointer(&buf[0])), nil ++} ++ ++func SysctlUint64(name string, args ...int) (uint64, error) { ++ mib, err := sysctlmib(name, args...) ++ if err != nil { ++ return 0, err ++ } ++ ++ n := uintptr(8) ++ buf := make([]byte, 8) ++ if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil { ++ return 0, err ++ } ++ if n != 8 { ++ return 0, EIO ++ } ++ return *(*uint64)(unsafe.Pointer(&buf[0])), nil ++} ++ ++func SysctlRaw(name string, args ...int) ([]byte, error) { ++ mib, err := sysctlmib(name, args...) ++ if err != nil { ++ return nil, err ++ } ++ ++ // Find size. ++ n := uintptr(0) ++ if err := sysctl(mib, nil, &n, nil, 0); err != nil { ++ return nil, err ++ } ++ if n == 0 { ++ return nil, nil ++ } ++ ++ // Read into buffer of that size. ++ buf := make([]byte, n) ++ if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil { ++ return nil, err ++ } ++ ++ // The actual call may return less than the original reported required ++ // size so ensure we deal with that. ++ return buf[:n], nil ++} ++ ++//sys utimes(path string, timeval *[2]Timeval) (err error) ++ ++func Utimes(path string, tv []Timeval) error { ++ if tv == nil { ++ return utimes(path, nil) ++ } ++ if len(tv) != 2 { ++ return EINVAL ++ } ++ return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) ++} ++ ++func UtimesNano(path string, ts []Timespec) error { ++ if ts == nil { ++ return utimes(path, nil) ++ } ++ // TODO: The BSDs can do utimensat with SYS_UTIMENSAT but it ++ // isn't supported by darwin so this uses utimes instead ++ if len(ts) != 2 { ++ return EINVAL ++ } ++ // Not as efficient as it could be because Timespec and ++ // Timeval have different types in the different OSes ++ tv := [2]Timeval{ ++ NsecToTimeval(TimespecToNsec(ts[0])), ++ NsecToTimeval(TimespecToNsec(ts[1])), ++ } ++ return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) ++} ++ ++//sys futimes(fd int, timeval *[2]Timeval) (err error) ++ ++func Futimes(fd int, tv []Timeval) error { ++ if tv == nil { ++ return futimes(fd, nil) ++ } ++ if len(tv) != 2 { ++ return EINVAL ++ } ++ return futimes(fd, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) ++} ++ ++//sys fcntl(fd int, cmd int, arg int) (val int, err error) ++ ++// TODO: wrap ++// Acct(name nil-string) (err error) ++// Gethostuuid(uuid *byte, timeout *Timespec) (err error) ++// Madvise(addr *byte, len int, behav int) (err error) ++// Mprotect(addr *byte, len int, prot int) (err error) ++// Msync(addr *byte, len int, flags int) (err error) ++// Ptrace(req int, pid int, addr uintptr, data int) (ret uintptr, err error) ++ ++var mapper = &mmapper{ ++ active: make(map[*byte][]byte), ++ mmap: mmap, ++ munmap: munmap, ++} ++ ++func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { ++ return mapper.Mmap(fd, offset, length, prot, flags) ++} ++ ++func Munmap(b []byte) (err error) { ++ return mapper.Munmap(b) ++} +diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin.go b/vendor/golang.org/x/sys/unix/syscall_darwin.go +new file mode 100644 +index 0000000..7d91ac0 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_darwin.go +@@ -0,0 +1,493 @@ ++// Copyright 2009,2010 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// Darwin system calls. ++// This file is compiled as ordinary Go code, ++// but it is also input to mksyscall, ++// which parses the //sys lines and generates system call stubs. ++// Note that sometimes we use a lowercase //sys name and wrap ++// it in our own nicer implementation, either here or in ++// syscall_bsd.go or syscall_unix.go. ++ ++package unix ++ ++import ( ++ errorspkg "errors" ++ "syscall" ++ "unsafe" ++) ++ ++const ImplementsGetwd = true ++ ++func Getwd() (string, error) { ++ buf := make([]byte, 2048) ++ attrs, err := getAttrList(".", attrList{CommonAttr: attrCmnFullpath}, buf, 0) ++ if err == nil && len(attrs) == 1 && len(attrs[0]) >= 2 { ++ wd := string(attrs[0]) ++ // Sanity check that it's an absolute path and ends ++ // in a null byte, which we then strip. ++ if wd[0] == '/' && wd[len(wd)-1] == 0 { ++ return wd[:len(wd)-1], nil ++ } ++ } ++ // If pkg/os/getwd.go gets ENOTSUP, it will fall back to the ++ // slow algorithm. ++ return "", ENOTSUP ++} ++ ++type SockaddrDatalink struct { ++ Len uint8 ++ Family uint8 ++ Index uint16 ++ Type uint8 ++ Nlen uint8 ++ Alen uint8 ++ Slen uint8 ++ Data [12]int8 ++ raw RawSockaddrDatalink ++} ++ ++// Translate "kern.hostname" to []_C_int{0,1,2,3}. ++func nametomib(name string) (mib []_C_int, err error) { ++ const siz = unsafe.Sizeof(mib[0]) ++ ++ // NOTE(rsc): It seems strange to set the buffer to have ++ // size CTL_MAXNAME+2 but use only CTL_MAXNAME ++ // as the size. I don't know why the +2 is here, but the ++ // kernel uses +2 for its own implementation of this function. ++ // I am scared that if we don't include the +2 here, the kernel ++ // will silently write 2 words farther than we specify ++ // and we'll get memory corruption. ++ var buf [CTL_MAXNAME + 2]_C_int ++ n := uintptr(CTL_MAXNAME) * siz ++ ++ p := (*byte)(unsafe.Pointer(&buf[0])) ++ bytes, err := ByteSliceFromString(name) ++ if err != nil { ++ return nil, err ++ } ++ ++ // Magic sysctl: "setting" 0.3 to a string name ++ // lets you read back the array of integers form. ++ if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil { ++ return nil, err ++ } ++ return buf[0 : n/siz], nil ++} ++ ++func direntIno(buf []byte) (uint64, bool) { ++ return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) ++} ++ ++func direntReclen(buf []byte) (uint64, bool) { ++ return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) ++} ++ ++func direntNamlen(buf []byte) (uint64, bool) { ++ return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) ++} ++ ++//sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error) ++func PtraceAttach(pid int) (err error) { return ptrace(PT_ATTACH, pid, 0, 0) } ++func PtraceDetach(pid int) (err error) { return ptrace(PT_DETACH, pid, 0, 0) } ++ ++const ( ++ attrBitMapCount = 5 ++ attrCmnFullpath = 0x08000000 ++) ++ ++type attrList struct { ++ bitmapCount uint16 ++ _ uint16 ++ CommonAttr uint32 ++ VolAttr uint32 ++ DirAttr uint32 ++ FileAttr uint32 ++ Forkattr uint32 ++} ++ ++func getAttrList(path string, attrList attrList, attrBuf []byte, options uint) (attrs [][]byte, err error) { ++ if len(attrBuf) < 4 { ++ return nil, errorspkg.New("attrBuf too small") ++ } ++ attrList.bitmapCount = attrBitMapCount ++ ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return nil, err ++ } ++ ++ _, _, e1 := Syscall6( ++ SYS_GETATTRLIST, ++ uintptr(unsafe.Pointer(_p0)), ++ uintptr(unsafe.Pointer(&attrList)), ++ uintptr(unsafe.Pointer(&attrBuf[0])), ++ uintptr(len(attrBuf)), ++ uintptr(options), ++ 0, ++ ) ++ if e1 != 0 { ++ return nil, e1 ++ } ++ size := *(*uint32)(unsafe.Pointer(&attrBuf[0])) ++ ++ // dat is the section of attrBuf that contains valid data, ++ // without the 4 byte length header. All attribute offsets ++ // are relative to dat. ++ dat := attrBuf ++ if int(size) < len(attrBuf) { ++ dat = dat[:size] ++ } ++ dat = dat[4:] // remove length prefix ++ ++ for i := uint32(0); int(i) < len(dat); { ++ header := dat[i:] ++ if len(header) < 8 { ++ return attrs, errorspkg.New("truncated attribute header") ++ } ++ datOff := *(*int32)(unsafe.Pointer(&header[0])) ++ attrLen := *(*uint32)(unsafe.Pointer(&header[4])) ++ if datOff < 0 || uint32(datOff)+attrLen > uint32(len(dat)) { ++ return attrs, errorspkg.New("truncated results; attrBuf too small") ++ } ++ end := uint32(datOff) + attrLen ++ attrs = append(attrs, dat[datOff:end]) ++ i = end ++ if r := i % 4; r != 0 { ++ i += (4 - r) ++ } ++ } ++ return ++} ++ ++//sysnb pipe() (r int, w int, err error) ++ ++func Pipe(p []int) (err error) { ++ if len(p) != 2 { ++ return EINVAL ++ } ++ p[0], p[1], err = pipe() ++ return ++} ++ ++func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ var bufsize uintptr ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) ++ } ++ r0, _, e1 := Syscall(SYS_GETFSSTAT64, uintptr(_p0), bufsize, uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++/* ++ * Wrapped ++ */ ++ ++//sys kill(pid int, signum int, posix int) (err error) ++ ++func Kill(pid int, signum syscall.Signal) (err error) { return kill(pid, int(signum), 1) } ++ ++/* ++ * Exposed directly ++ */ ++//sys Access(path string, mode uint32) (err error) ++//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) ++//sys Chdir(path string) (err error) ++//sys Chflags(path string, flags int) (err error) ++//sys Chmod(path string, mode uint32) (err error) ++//sys Chown(path string, uid int, gid int) (err error) ++//sys Chroot(path string) (err error) ++//sys Close(fd int) (err error) ++//sys Dup(fd int) (nfd int, err error) ++//sys Dup2(from int, to int) (err error) ++//sys Exchangedata(path1 string, path2 string, options int) (err error) ++//sys Exit(code int) ++//sys Fchdir(fd int) (err error) ++//sys Fchflags(fd int, flags int) (err error) ++//sys Fchmod(fd int, mode uint32) (err error) ++//sys Fchown(fd int, uid int, gid int) (err error) ++//sys Flock(fd int, how int) (err error) ++//sys Fpathconf(fd int, name int) (val int, err error) ++//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 ++//sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64 ++//sys Fsync(fd int) (err error) ++//sys Ftruncate(fd int, length int64) (err error) ++//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) = SYS_GETDIRENTRIES64 ++//sys Getdtablesize() (size int) ++//sysnb Getegid() (egid int) ++//sysnb Geteuid() (uid int) ++//sysnb Getgid() (gid int) ++//sysnb Getpgid(pid int) (pgid int, err error) ++//sysnb Getpgrp() (pgrp int) ++//sysnb Getpid() (pid int) ++//sysnb Getppid() (ppid int) ++//sys Getpriority(which int, who int) (prio int, err error) ++//sysnb Getrlimit(which int, lim *Rlimit) (err error) ++//sysnb Getrusage(who int, rusage *Rusage) (err error) ++//sysnb Getsid(pid int) (sid int, err error) ++//sysnb Getuid() (uid int) ++//sysnb Issetugid() (tainted bool) ++//sys Kqueue() (fd int, err error) ++//sys Lchown(path string, uid int, gid int) (err error) ++//sys Link(path string, link string) (err error) ++//sys Listen(s int, backlog int) (err error) ++//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 ++//sys Mkdir(path string, mode uint32) (err error) ++//sys Mkfifo(path string, mode uint32) (err error) ++//sys Mknod(path string, mode uint32, dev int) (err error) ++//sys Mlock(b []byte) (err error) ++//sys Mlockall(flags int) (err error) ++//sys Mprotect(b []byte, prot int) (err error) ++//sys Munlock(b []byte) (err error) ++//sys Munlockall() (err error) ++//sys Open(path string, mode int, perm uint32) (fd int, err error) ++//sys Pathconf(path string, name int) (val int, err error) ++//sys Pread(fd int, p []byte, offset int64) (n int, err error) ++//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) ++//sys read(fd int, p []byte) (n int, err error) ++//sys Readlink(path string, buf []byte) (n int, err error) ++//sys Rename(from string, to string) (err error) ++//sys Revoke(path string) (err error) ++//sys Rmdir(path string) (err error) ++//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK ++//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) ++//sys Setegid(egid int) (err error) ++//sysnb Seteuid(euid int) (err error) ++//sysnb Setgid(gid int) (err error) ++//sys Setlogin(name string) (err error) ++//sysnb Setpgid(pid int, pgid int) (err error) ++//sys Setpriority(which int, who int, prio int) (err error) ++//sys Setprivexec(flag int) (err error) ++//sysnb Setregid(rgid int, egid int) (err error) ++//sysnb Setreuid(ruid int, euid int) (err error) ++//sysnb Setrlimit(which int, lim *Rlimit) (err error) ++//sysnb Setsid() (pid int, err error) ++//sysnb Settimeofday(tp *Timeval) (err error) ++//sysnb Setuid(uid int) (err error) ++//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 ++//sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64 ++//sys Symlink(path string, link string) (err error) ++//sys Sync() (err error) ++//sys Truncate(path string, length int64) (err error) ++//sys Umask(newmask int) (oldmask int) ++//sys Undelete(path string) (err error) ++//sys Unlink(path string) (err error) ++//sys Unmount(path string, flags int) (err error) ++//sys write(fd int, p []byte) (n int, err error) ++//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) ++//sys munmap(addr uintptr, length uintptr) (err error) ++//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ ++//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE ++ ++/* ++ * Unimplemented ++ */ ++// Profil ++// Sigaction ++// Sigprocmask ++// Getlogin ++// Sigpending ++// Sigaltstack ++// Ioctl ++// Reboot ++// Execve ++// Vfork ++// Sbrk ++// Sstk ++// Ovadvise ++// Mincore ++// Setitimer ++// Swapon ++// Select ++// Sigsuspend ++// Readv ++// Writev ++// Nfssvc ++// Getfh ++// Quotactl ++// Mount ++// Csops ++// Waitid ++// Add_profil ++// Kdebug_trace ++// Sigreturn ++// Mmap ++// Mlock ++// Munlock ++// Atsocket ++// Kqueue_from_portset_np ++// Kqueue_portset ++// Getattrlist ++// Setattrlist ++// Getdirentriesattr ++// Searchfs ++// Delete ++// Copyfile ++// Poll ++// Watchevent ++// Waitevent ++// Modwatch ++// Getxattr ++// Fgetxattr ++// Setxattr ++// Fsetxattr ++// Removexattr ++// Fremovexattr ++// Listxattr ++// Flistxattr ++// Fsctl ++// Initgroups ++// Posix_spawn ++// Nfsclnt ++// Fhopen ++// Minherit ++// Semsys ++// Msgsys ++// Shmsys ++// Semctl ++// Semget ++// Semop ++// Msgctl ++// Msgget ++// Msgsnd ++// Msgrcv ++// Shmat ++// Shmctl ++// Shmdt ++// Shmget ++// Shm_open ++// Shm_unlink ++// Sem_open ++// Sem_close ++// Sem_unlink ++// Sem_wait ++// Sem_trywait ++// Sem_post ++// Sem_getvalue ++// Sem_init ++// Sem_destroy ++// Open_extended ++// Umask_extended ++// Stat_extended ++// Lstat_extended ++// Fstat_extended ++// Chmod_extended ++// Fchmod_extended ++// Access_extended ++// Settid ++// Gettid ++// Setsgroups ++// Getsgroups ++// Setwgroups ++// Getwgroups ++// Mkfifo_extended ++// Mkdir_extended ++// Identitysvc ++// Shared_region_check_np ++// Shared_region_map_np ++// __pthread_mutex_destroy ++// __pthread_mutex_init ++// __pthread_mutex_lock ++// __pthread_mutex_trylock ++// __pthread_mutex_unlock ++// __pthread_cond_init ++// __pthread_cond_destroy ++// __pthread_cond_broadcast ++// __pthread_cond_signal ++// Setsid_with_pid ++// __pthread_cond_timedwait ++// Aio_fsync ++// Aio_return ++// Aio_suspend ++// Aio_cancel ++// Aio_error ++// Aio_read ++// Aio_write ++// Lio_listio ++// __pthread_cond_wait ++// Iopolicysys ++// Mlockall ++// Munlockall ++// __pthread_kill ++// __pthread_sigmask ++// __sigwait ++// __disable_threadsignal ++// __pthread_markcancel ++// __pthread_canceled ++// __semwait_signal ++// Proc_info ++// sendfile ++// Stat64_extended ++// Lstat64_extended ++// Fstat64_extended ++// __pthread_chdir ++// __pthread_fchdir ++// Audit ++// Auditon ++// Getauid ++// Setauid ++// Getaudit ++// Setaudit ++// Getaudit_addr ++// Setaudit_addr ++// Auditctl ++// Bsdthread_create ++// Bsdthread_terminate ++// Stack_snapshot ++// Bsdthread_register ++// Workq_open ++// Workq_ops ++// __mac_execve ++// __mac_syscall ++// __mac_get_file ++// __mac_set_file ++// __mac_get_link ++// __mac_set_link ++// __mac_get_proc ++// __mac_set_proc ++// __mac_get_fd ++// __mac_set_fd ++// __mac_get_pid ++// __mac_get_lcid ++// __mac_get_lctx ++// __mac_set_lctx ++// Setlcid ++// Read_nocancel ++// Write_nocancel ++// Open_nocancel ++// Close_nocancel ++// Wait4_nocancel ++// Recvmsg_nocancel ++// Sendmsg_nocancel ++// Recvfrom_nocancel ++// Accept_nocancel ++// Msync_nocancel ++// Fcntl_nocancel ++// Select_nocancel ++// Fsync_nocancel ++// Connect_nocancel ++// Sigsuspend_nocancel ++// Readv_nocancel ++// Writev_nocancel ++// Sendto_nocancel ++// Pread_nocancel ++// Pwrite_nocancel ++// Waitid_nocancel ++// Poll_nocancel ++// Msgsnd_nocancel ++// Msgrcv_nocancel ++// Sem_wait_nocancel ++// Aio_suspend_nocancel ++// __sigwait_nocancel ++// __semwait_signal_nocancel ++// __mac_mount ++// __mac_get_mount ++// __mac_getfsstat +diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_386.go b/vendor/golang.org/x/sys/unix/syscall_darwin_386.go +new file mode 100644 +index 0000000..c172a3d +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_386.go +@@ -0,0 +1,77 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build 386,darwin ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++func Getpagesize() int { return 4096 } ++ ++func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } ++ ++func NsecToTimespec(nsec int64) (ts Timespec) { ++ ts.Sec = int32(nsec / 1e9) ++ ts.Nsec = int32(nsec % 1e9) ++ return ++} ++ ++func NsecToTimeval(nsec int64) (tv Timeval) { ++ nsec += 999 // round up to microsecond ++ tv.Usec = int32(nsec % 1e9 / 1e3) ++ tv.Sec = int32(nsec / 1e9) ++ return ++} ++ ++//sysnb gettimeofday(tp *Timeval) (sec int32, usec int32, err error) ++func Gettimeofday(tv *Timeval) (err error) { ++ // The tv passed to gettimeofday must be non-nil ++ // but is otherwise unused. The answers come back ++ // in the two registers. ++ sec, usec, err := gettimeofday(tv) ++ tv.Sec = int32(sec) ++ tv.Usec = int32(usec) ++ return err ++} ++ ++func SetKevent(k *Kevent_t, fd, mode, flags int) { ++ k.Ident = uint32(fd) ++ k.Filter = int16(mode) ++ k.Flags = uint16(flags) ++} ++ ++func (iov *Iovec) SetLen(length int) { ++ iov.Len = uint32(length) ++} ++ ++func (msghdr *Msghdr) SetControllen(length int) { ++ msghdr.Controllen = uint32(length) ++} ++ ++func (cmsg *Cmsghdr) SetLen(length int) { ++ cmsg.Len = uint32(length) ++} ++ ++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ var length = uint64(count) ++ ++ _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(*offset>>32), uintptr(unsafe.Pointer(&length)), 0, 0, 0, 0) ++ ++ written = int(length) ++ ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) ++ ++// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions ++// of darwin/386 the syscall is called sysctl instead of __sysctl. ++const SYS___SYSCTL = SYS_SYSCTL +diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go +new file mode 100644 +index 0000000..fc1e5a4 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go +@@ -0,0 +1,79 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build amd64,darwin ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) ++ ++func Getpagesize() int { return 4096 } ++ ++func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } ++ ++func NsecToTimespec(nsec int64) (ts Timespec) { ++ ts.Sec = nsec / 1e9 ++ ts.Nsec = nsec % 1e9 ++ return ++} ++ ++func NsecToTimeval(nsec int64) (tv Timeval) { ++ nsec += 999 // round up to microsecond ++ tv.Usec = int32(nsec % 1e9 / 1e3) ++ tv.Sec = int64(nsec / 1e9) ++ return ++} ++ ++//sysnb gettimeofday(tp *Timeval) (sec int64, usec int32, err error) ++func Gettimeofday(tv *Timeval) (err error) { ++ // The tv passed to gettimeofday must be non-nil ++ // but is otherwise unused. The answers come back ++ // in the two registers. ++ sec, usec, err := gettimeofday(tv) ++ tv.Sec = sec ++ tv.Usec = usec ++ return err ++} ++ ++func SetKevent(k *Kevent_t, fd, mode, flags int) { ++ k.Ident = uint64(fd) ++ k.Filter = int16(mode) ++ k.Flags = uint16(flags) ++} ++ ++func (iov *Iovec) SetLen(length int) { ++ iov.Len = uint64(length) ++} ++ ++func (msghdr *Msghdr) SetControllen(length int) { ++ msghdr.Controllen = uint32(length) ++} ++ ++func (cmsg *Cmsghdr) SetLen(length int) { ++ cmsg.Len = uint32(length) ++} ++ ++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ var length = uint64(count) ++ ++ _, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(unsafe.Pointer(&length)), 0, 0) ++ ++ written = int(length) ++ ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) ++ ++// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions ++// of darwin/amd64 the syscall is called sysctl instead of __sysctl. ++const SYS___SYSCTL = SYS_SYSCTL +diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go +new file mode 100644 +index 0000000..d286cf4 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm.go +@@ -0,0 +1,71 @@ ++// Copyright 2015 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++func Getpagesize() int { return 4096 } ++ ++func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } ++ ++func NsecToTimespec(nsec int64) (ts Timespec) { ++ ts.Sec = int32(nsec / 1e9) ++ ts.Nsec = int32(nsec % 1e9) ++ return ++} ++ ++func NsecToTimeval(nsec int64) (tv Timeval) { ++ nsec += 999 // round up to microsecond ++ tv.Usec = int32(nsec % 1e9 / 1e3) ++ tv.Sec = int32(nsec / 1e9) ++ return ++} ++ ++//sysnb gettimeofday(tp *Timeval) (sec int32, usec int32, err error) ++func Gettimeofday(tv *Timeval) (err error) { ++ // The tv passed to gettimeofday must be non-nil ++ // but is otherwise unused. The answers come back ++ // in the two registers. ++ sec, usec, err := gettimeofday(tv) ++ tv.Sec = int32(sec) ++ tv.Usec = int32(usec) ++ return err ++} ++ ++func SetKevent(k *Kevent_t, fd, mode, flags int) { ++ k.Ident = uint32(fd) ++ k.Filter = int16(mode) ++ k.Flags = uint16(flags) ++} ++ ++func (iov *Iovec) SetLen(length int) { ++ iov.Len = uint32(length) ++} ++ ++func (msghdr *Msghdr) SetControllen(length int) { ++ msghdr.Controllen = uint32(length) ++} ++ ++func (cmsg *Cmsghdr) SetLen(length int) { ++ cmsg.Len = uint32(length) ++} ++ ++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ var length = uint64(count) ++ ++ _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(*offset>>32), uintptr(unsafe.Pointer(&length)), 0, 0, 0, 0) ++ ++ written = int(length) ++ ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic +diff --git a/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go +new file mode 100644 +index 0000000..c33905c +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go +@@ -0,0 +1,77 @@ ++// Copyright 2015 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build arm64,darwin ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++func Getpagesize() int { return 16384 } ++ ++func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } ++ ++func NsecToTimespec(nsec int64) (ts Timespec) { ++ ts.Sec = nsec / 1e9 ++ ts.Nsec = nsec % 1e9 ++ return ++} ++ ++func NsecToTimeval(nsec int64) (tv Timeval) { ++ nsec += 999 // round up to microsecond ++ tv.Usec = int32(nsec % 1e9 / 1e3) ++ tv.Sec = int64(nsec / 1e9) ++ return ++} ++ ++//sysnb gettimeofday(tp *Timeval) (sec int64, usec int32, err error) ++func Gettimeofday(tv *Timeval) (err error) { ++ // The tv passed to gettimeofday must be non-nil ++ // but is otherwise unused. The answers come back ++ // in the two registers. ++ sec, usec, err := gettimeofday(tv) ++ tv.Sec = sec ++ tv.Usec = usec ++ return err ++} ++ ++func SetKevent(k *Kevent_t, fd, mode, flags int) { ++ k.Ident = uint64(fd) ++ k.Filter = int16(mode) ++ k.Flags = uint16(flags) ++} ++ ++func (iov *Iovec) SetLen(length int) { ++ iov.Len = uint64(length) ++} ++ ++func (msghdr *Msghdr) SetControllen(length int) { ++ msghdr.Controllen = uint32(length) ++} ++ ++func (cmsg *Cmsghdr) SetLen(length int) { ++ cmsg.Len = uint32(length) ++} ++ ++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ var length = uint64(count) ++ ++ _, _, e1 := Syscall6(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(unsafe.Pointer(&length)), 0, 0) ++ ++ written = int(length) ++ ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic ++ ++// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions ++// of darwin/arm64 the syscall is called sysctl instead of __sysctl. ++const SYS___SYSCTL = SYS_SYSCTL +diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go +new file mode 100644 +index 0000000..3363456 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go +@@ -0,0 +1,402 @@ ++// Copyright 2009,2010 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// FreeBSD system calls. ++// This file is compiled as ordinary Go code, ++// but it is also input to mksyscall, ++// which parses the //sys lines and generates system call stubs. ++// Note that sometimes we use a lowercase //sys name and wrap ++// it in our own nicer implementation, either here or in ++// syscall_bsd.go or syscall_unix.go. ++ ++package unix ++ ++import "unsafe" ++ ++type SockaddrDatalink struct { ++ Len uint8 ++ Family uint8 ++ Index uint16 ++ Type uint8 ++ Nlen uint8 ++ Alen uint8 ++ Slen uint8 ++ Data [12]int8 ++ Rcf uint16 ++ Route [16]uint16 ++ raw RawSockaddrDatalink ++} ++ ++// Translate "kern.hostname" to []_C_int{0,1,2,3}. ++func nametomib(name string) (mib []_C_int, err error) { ++ const siz = unsafe.Sizeof(mib[0]) ++ ++ // NOTE(rsc): It seems strange to set the buffer to have ++ // size CTL_MAXNAME+2 but use only CTL_MAXNAME ++ // as the size. I don't know why the +2 is here, but the ++ // kernel uses +2 for its own implementation of this function. ++ // I am scared that if we don't include the +2 here, the kernel ++ // will silently write 2 words farther than we specify ++ // and we'll get memory corruption. ++ var buf [CTL_MAXNAME + 2]_C_int ++ n := uintptr(CTL_MAXNAME) * siz ++ ++ p := (*byte)(unsafe.Pointer(&buf[0])) ++ bytes, err := ByteSliceFromString(name) ++ if err != nil { ++ return nil, err ++ } ++ ++ // Magic sysctl: "setting" 0.3 to a string name ++ // lets you read back the array of integers form. ++ if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil { ++ return nil, err ++ } ++ return buf[0 : n/siz], nil ++} ++ ++func direntIno(buf []byte) (uint64, bool) { ++ return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) ++} ++ ++func direntReclen(buf []byte) (uint64, bool) { ++ namlen, ok := direntNamlen(buf) ++ if !ok { ++ return 0, false ++ } ++ return (16 + namlen + 1 + 7) & ^7, true ++} ++ ++func direntNamlen(buf []byte) (uint64, bool) { ++ return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) ++} ++ ++//sysnb pipe() (r int, w int, err error) ++ ++func Pipe(p []int) (err error) { ++ if len(p) != 2 { ++ return EINVAL ++ } ++ p[0], p[1], err = pipe() ++ return ++} ++ ++//sys extpread(fd int, p []byte, flags int, offset int64) (n int, err error) ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ return extpread(fd, p, 0, offset) ++} ++ ++//sys extpwrite(fd int, p []byte, flags int, offset int64) (n int, err error) ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ return extpwrite(fd, p, 0, offset) ++} ++ ++func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ var bufsize uintptr ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) ++ } ++ r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++/* ++ * Exposed directly ++ */ ++//sys Access(path string, mode uint32) (err error) ++//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) ++//sys Chdir(path string) (err error) ++//sys Chflags(path string, flags int) (err error) ++//sys Chmod(path string, mode uint32) (err error) ++//sys Chown(path string, uid int, gid int) (err error) ++//sys Chroot(path string) (err error) ++//sys Close(fd int) (err error) ++//sys Dup(fd int) (nfd int, err error) ++//sys Dup2(from int, to int) (err error) ++//sys Exit(code int) ++//sys Fchdir(fd int) (err error) ++//sys Fchflags(fd int, flags int) (err error) ++//sys Fchmod(fd int, mode uint32) (err error) ++//sys Fchown(fd int, uid int, gid int) (err error) ++//sys Flock(fd int, how int) (err error) ++//sys Fpathconf(fd int, name int) (val int, err error) ++//sys Fstat(fd int, stat *Stat_t) (err error) ++//sys Fstatfs(fd int, stat *Statfs_t) (err error) ++//sys Fsync(fd int) (err error) ++//sys Ftruncate(fd int, length int64) (err error) ++//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) ++//sys Getdtablesize() (size int) ++//sysnb Getegid() (egid int) ++//sysnb Geteuid() (uid int) ++//sysnb Getgid() (gid int) ++//sysnb Getpgid(pid int) (pgid int, err error) ++//sysnb Getpgrp() (pgrp int) ++//sysnb Getpid() (pid int) ++//sysnb Getppid() (ppid int) ++//sys Getpriority(which int, who int) (prio int, err error) ++//sysnb Getrlimit(which int, lim *Rlimit) (err error) ++//sysnb Getrusage(who int, rusage *Rusage) (err error) ++//sysnb Getsid(pid int) (sid int, err error) ++//sysnb Gettimeofday(tv *Timeval) (err error) ++//sysnb Getuid() (uid int) ++//sys Issetugid() (tainted bool) ++//sys Kill(pid int, signum syscall.Signal) (err error) ++//sys Kqueue() (fd int, err error) ++//sys Lchown(path string, uid int, gid int) (err error) ++//sys Link(path string, link string) (err error) ++//sys Listen(s int, backlog int) (err error) ++//sys Lstat(path string, stat *Stat_t) (err error) ++//sys Mkdir(path string, mode uint32) (err error) ++//sys Mkfifo(path string, mode uint32) (err error) ++//sys Mknod(path string, mode uint32, dev int) (err error) ++//sys Mlock(b []byte) (err error) ++//sys Mlockall(flags int) (err error) ++//sys Mprotect(b []byte, prot int) (err error) ++//sys Munlock(b []byte) (err error) ++//sys Munlockall() (err error) ++//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) ++//sys Open(path string, mode int, perm uint32) (fd int, err error) ++//sys Pathconf(path string, name int) (val int, err error) ++//sys read(fd int, p []byte) (n int, err error) ++//sys Readlink(path string, buf []byte) (n int, err error) ++//sys Rename(from string, to string) (err error) ++//sys Revoke(path string) (err error) ++//sys Rmdir(path string) (err error) ++//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK ++//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) ++//sysnb Setegid(egid int) (err error) ++//sysnb Seteuid(euid int) (err error) ++//sysnb Setgid(gid int) (err error) ++//sys Setlogin(name string) (err error) ++//sysnb Setpgid(pid int, pgid int) (err error) ++//sys Setpriority(which int, who int, prio int) (err error) ++//sysnb Setregid(rgid int, egid int) (err error) ++//sysnb Setreuid(ruid int, euid int) (err error) ++//sysnb Setresgid(rgid int, egid int, sgid int) (err error) ++//sysnb Setresuid(ruid int, euid int, suid int) (err error) ++//sysnb Setrlimit(which int, lim *Rlimit) (err error) ++//sysnb Setsid() (pid int, err error) ++//sysnb Settimeofday(tp *Timeval) (err error) ++//sysnb Setuid(uid int) (err error) ++//sys Stat(path string, stat *Stat_t) (err error) ++//sys Statfs(path string, stat *Statfs_t) (err error) ++//sys Symlink(path string, link string) (err error) ++//sys Sync() (err error) ++//sys Truncate(path string, length int64) (err error) ++//sys Umask(newmask int) (oldmask int) ++//sys Undelete(path string) (err error) ++//sys Unlink(path string) (err error) ++//sys Unmount(path string, flags int) (err error) ++//sys write(fd int, p []byte) (n int, err error) ++//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) ++//sys munmap(addr uintptr, length uintptr) (err error) ++//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ ++//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE ++ ++/* ++ * Unimplemented ++ * TODO(jsing): Update this list for DragonFly. ++ */ ++// Profil ++// Sigaction ++// Sigprocmask ++// Getlogin ++// Sigpending ++// Sigaltstack ++// Ioctl ++// Reboot ++// Execve ++// Vfork ++// Sbrk ++// Sstk ++// Ovadvise ++// Mincore ++// Setitimer ++// Swapon ++// Select ++// Sigsuspend ++// Readv ++// Writev ++// Nfssvc ++// Getfh ++// Quotactl ++// Mount ++// Csops ++// Waitid ++// Add_profil ++// Kdebug_trace ++// Sigreturn ++// Mmap ++// Atsocket ++// Kqueue_from_portset_np ++// Kqueue_portset ++// Getattrlist ++// Setattrlist ++// Getdirentriesattr ++// Searchfs ++// Delete ++// Copyfile ++// Poll ++// Watchevent ++// Waitevent ++// Modwatch ++// Getxattr ++// Fgetxattr ++// Setxattr ++// Fsetxattr ++// Removexattr ++// Fremovexattr ++// Listxattr ++// Flistxattr ++// Fsctl ++// Initgroups ++// Posix_spawn ++// Nfsclnt ++// Fhopen ++// Minherit ++// Semsys ++// Msgsys ++// Shmsys ++// Semctl ++// Semget ++// Semop ++// Msgctl ++// Msgget ++// Msgsnd ++// Msgrcv ++// Shmat ++// Shmctl ++// Shmdt ++// Shmget ++// Shm_open ++// Shm_unlink ++// Sem_open ++// Sem_close ++// Sem_unlink ++// Sem_wait ++// Sem_trywait ++// Sem_post ++// Sem_getvalue ++// Sem_init ++// Sem_destroy ++// Open_extended ++// Umask_extended ++// Stat_extended ++// Lstat_extended ++// Fstat_extended ++// Chmod_extended ++// Fchmod_extended ++// Access_extended ++// Settid ++// Gettid ++// Setsgroups ++// Getsgroups ++// Setwgroups ++// Getwgroups ++// Mkfifo_extended ++// Mkdir_extended ++// Identitysvc ++// Shared_region_check_np ++// Shared_region_map_np ++// __pthread_mutex_destroy ++// __pthread_mutex_init ++// __pthread_mutex_lock ++// __pthread_mutex_trylock ++// __pthread_mutex_unlock ++// __pthread_cond_init ++// __pthread_cond_destroy ++// __pthread_cond_broadcast ++// __pthread_cond_signal ++// Setsid_with_pid ++// __pthread_cond_timedwait ++// Aio_fsync ++// Aio_return ++// Aio_suspend ++// Aio_cancel ++// Aio_error ++// Aio_read ++// Aio_write ++// Lio_listio ++// __pthread_cond_wait ++// Iopolicysys ++// __pthread_kill ++// __pthread_sigmask ++// __sigwait ++// __disable_threadsignal ++// __pthread_markcancel ++// __pthread_canceled ++// __semwait_signal ++// Proc_info ++// Stat64_extended ++// Lstat64_extended ++// Fstat64_extended ++// __pthread_chdir ++// __pthread_fchdir ++// Audit ++// Auditon ++// Getauid ++// Setauid ++// Getaudit ++// Setaudit ++// Getaudit_addr ++// Setaudit_addr ++// Auditctl ++// Bsdthread_create ++// Bsdthread_terminate ++// Stack_snapshot ++// Bsdthread_register ++// Workq_open ++// Workq_ops ++// __mac_execve ++// __mac_syscall ++// __mac_get_file ++// __mac_set_file ++// __mac_get_link ++// __mac_set_link ++// __mac_get_proc ++// __mac_set_proc ++// __mac_get_fd ++// __mac_set_fd ++// __mac_get_pid ++// __mac_get_lcid ++// __mac_get_lctx ++// __mac_set_lctx ++// Setlcid ++// Read_nocancel ++// Write_nocancel ++// Open_nocancel ++// Close_nocancel ++// Wait4_nocancel ++// Recvmsg_nocancel ++// Sendmsg_nocancel ++// Recvfrom_nocancel ++// Accept_nocancel ++// Msync_nocancel ++// Fcntl_nocancel ++// Select_nocancel ++// Fsync_nocancel ++// Connect_nocancel ++// Sigsuspend_nocancel ++// Readv_nocancel ++// Writev_nocancel ++// Sendto_nocancel ++// Pread_nocancel ++// Pwrite_nocancel ++// Waitid_nocancel ++// Poll_nocancel ++// Msgsnd_nocancel ++// Msgrcv_nocancel ++// Sem_wait_nocancel ++// Aio_suspend_nocancel ++// __sigwait_nocancel ++// __semwait_signal_nocancel ++// __mac_mount ++// __mac_get_mount ++// __mac_getfsstat +diff --git a/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go +new file mode 100644 +index 0000000..da7cb79 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go +@@ -0,0 +1,61 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build amd64,dragonfly ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++func Getpagesize() int { return 4096 } ++ ++func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } ++ ++func NsecToTimespec(nsec int64) (ts Timespec) { ++ ts.Sec = nsec / 1e9 ++ ts.Nsec = nsec % 1e9 ++ return ++} ++ ++func NsecToTimeval(nsec int64) (tv Timeval) { ++ nsec += 999 // round up to microsecond ++ tv.Usec = nsec % 1e9 / 1e3 ++ tv.Sec = int64(nsec / 1e9) ++ return ++} ++ ++func SetKevent(k *Kevent_t, fd, mode, flags int) { ++ k.Ident = uint64(fd) ++ k.Filter = int16(mode) ++ k.Flags = uint16(flags) ++} ++ ++func (iov *Iovec) SetLen(length int) { ++ iov.Len = uint64(length) ++} ++ ++func (msghdr *Msghdr) SetControllen(length int) { ++ msghdr.Controllen = uint32(length) ++} ++ ++func (cmsg *Cmsghdr) SetLen(length int) { ++ cmsg.Len = uint32(length) ++} ++ ++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ var writtenOut uint64 = 0 ++ _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) ++ ++ written = int(writtenOut) ++ ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) +diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/vendor/golang.org/x/sys/unix/syscall_freebsd.go +new file mode 100644 +index 0000000..077d1f3 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_freebsd.go +@@ -0,0 +1,666 @@ ++// Copyright 2009,2010 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// FreeBSD system calls. ++// This file is compiled as ordinary Go code, ++// but it is also input to mksyscall, ++// which parses the //sys lines and generates system call stubs. ++// Note that sometimes we use a lowercase //sys name and wrap ++// it in our own nicer implementation, either here or in ++// syscall_bsd.go or syscall_unix.go. ++ ++package unix ++ ++import "unsafe" ++ ++type SockaddrDatalink struct { ++ Len uint8 ++ Family uint8 ++ Index uint16 ++ Type uint8 ++ Nlen uint8 ++ Alen uint8 ++ Slen uint8 ++ Data [46]int8 ++ raw RawSockaddrDatalink ++} ++ ++// Translate "kern.hostname" to []_C_int{0,1,2,3}. ++func nametomib(name string) (mib []_C_int, err error) { ++ const siz = unsafe.Sizeof(mib[0]) ++ ++ // NOTE(rsc): It seems strange to set the buffer to have ++ // size CTL_MAXNAME+2 but use only CTL_MAXNAME ++ // as the size. I don't know why the +2 is here, but the ++ // kernel uses +2 for its own implementation of this function. ++ // I am scared that if we don't include the +2 here, the kernel ++ // will silently write 2 words farther than we specify ++ // and we'll get memory corruption. ++ var buf [CTL_MAXNAME + 2]_C_int ++ n := uintptr(CTL_MAXNAME) * siz ++ ++ p := (*byte)(unsafe.Pointer(&buf[0])) ++ bytes, err := ByteSliceFromString(name) ++ if err != nil { ++ return nil, err ++ } ++ ++ // Magic sysctl: "setting" 0.3 to a string name ++ // lets you read back the array of integers form. ++ if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil { ++ return nil, err ++ } ++ return buf[0 : n/siz], nil ++} ++ ++func direntIno(buf []byte) (uint64, bool) { ++ return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) ++} ++ ++func direntReclen(buf []byte) (uint64, bool) { ++ return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) ++} ++ ++func direntNamlen(buf []byte) (uint64, bool) { ++ return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) ++} ++ ++//sysnb pipe() (r int, w int, err error) ++ ++func Pipe(p []int) (err error) { ++ if len(p) != 2 { ++ return EINVAL ++ } ++ p[0], p[1], err = pipe() ++ return ++} ++ ++func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) { ++ var value IPMreqn ++ vallen := _Socklen(SizeofIPMreqn) ++ errno := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) ++ return &value, errno ++} ++ ++func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) { ++ return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) ++} ++ ++func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) { ++ var rsa RawSockaddrAny ++ var len _Socklen = SizeofSockaddrAny ++ nfd, err = accept4(fd, &rsa, &len, flags) ++ if err != nil { ++ return ++ } ++ if len > SizeofSockaddrAny { ++ panic("RawSockaddrAny too small") ++ } ++ sa, err = anyToSockaddr(&rsa) ++ if err != nil { ++ Close(nfd) ++ nfd = 0 ++ } ++ return ++} ++ ++func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ var bufsize uintptr ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) ++ } ++ r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++// Derive extattr namespace and attribute name ++ ++func xattrnamespace(fullattr string) (ns int, attr string, err error) { ++ s := -1 ++ for idx, val := range fullattr { ++ if val == '.' { ++ s = idx ++ break ++ } ++ } ++ ++ if s == -1 { ++ return -1, "", ENOATTR ++ } ++ ++ namespace := fullattr[0:s] ++ attr = fullattr[s+1:] ++ ++ switch namespace { ++ case "user": ++ return EXTATTR_NAMESPACE_USER, attr, nil ++ case "system": ++ return EXTATTR_NAMESPACE_SYSTEM, attr, nil ++ default: ++ return -1, "", ENOATTR ++ } ++} ++ ++func initxattrdest(dest []byte, idx int) (d unsafe.Pointer) { ++ if len(dest) > idx { ++ return unsafe.Pointer(&dest[idx]) ++ } else { ++ return unsafe.Pointer(_zero) ++ } ++} ++ ++// FreeBSD implements its own syscalls to handle extended attributes ++ ++func Getxattr(file string, attr string, dest []byte) (sz int, err error) { ++ d := initxattrdest(dest, 0) ++ destsize := len(dest) ++ ++ nsid, a, err := xattrnamespace(attr) ++ if err != nil { ++ return -1, err ++ } ++ ++ return ExtattrGetFile(file, nsid, a, uintptr(d), destsize) ++} ++ ++func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { ++ d := initxattrdest(dest, 0) ++ destsize := len(dest) ++ ++ nsid, a, err := xattrnamespace(attr) ++ if err != nil { ++ return -1, err ++ } ++ ++ return ExtattrGetFd(fd, nsid, a, uintptr(d), destsize) ++} ++ ++func Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { ++ d := initxattrdest(dest, 0) ++ destsize := len(dest) ++ ++ nsid, a, err := xattrnamespace(attr) ++ if err != nil { ++ return -1, err ++ } ++ ++ return ExtattrGetLink(link, nsid, a, uintptr(d), destsize) ++} ++ ++// flags are unused on FreeBSD ++ ++func Fsetxattr(fd int, attr string, data []byte, flags int) (err error) { ++ d := unsafe.Pointer(&data[0]) ++ datasiz := len(data) ++ ++ nsid, a, err := xattrnamespace(attr) ++ if err != nil { ++ return ++ } ++ ++ _, err = ExtattrSetFd(fd, nsid, a, uintptr(d), datasiz) ++ return ++} ++ ++func Setxattr(file string, attr string, data []byte, flags int) (err error) { ++ d := unsafe.Pointer(&data[0]) ++ datasiz := len(data) ++ ++ nsid, a, err := xattrnamespace(attr) ++ if err != nil { ++ return ++ } ++ ++ _, err = ExtattrSetFile(file, nsid, a, uintptr(d), datasiz) ++ return ++} ++ ++func Lsetxattr(link string, attr string, data []byte, flags int) (err error) { ++ d := unsafe.Pointer(&data[0]) ++ datasiz := len(data) ++ ++ nsid, a, err := xattrnamespace(attr) ++ if err != nil { ++ return ++ } ++ ++ _, err = ExtattrSetLink(link, nsid, a, uintptr(d), datasiz) ++ return ++} ++ ++func Removexattr(file string, attr string) (err error) { ++ nsid, a, err := xattrnamespace(attr) ++ if err != nil { ++ return ++ } ++ ++ err = ExtattrDeleteFile(file, nsid, a) ++ return ++} ++ ++func Fremovexattr(fd int, attr string) (err error) { ++ nsid, a, err := xattrnamespace(attr) ++ if err != nil { ++ return ++ } ++ ++ err = ExtattrDeleteFd(fd, nsid, a) ++ return ++} ++ ++func Lremovexattr(link string, attr string) (err error) { ++ nsid, a, err := xattrnamespace(attr) ++ if err != nil { ++ return ++ } ++ ++ err = ExtattrDeleteLink(link, nsid, a) ++ return ++} ++ ++func Listxattr(file string, dest []byte) (sz int, err error) { ++ d := initxattrdest(dest, 0) ++ destsiz := len(dest) ++ ++ // FreeBSD won't allow you to list xattrs from multiple namespaces ++ s := 0 ++ var e error ++ for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { ++ stmp, e := ExtattrListFile(file, nsid, uintptr(d), destsiz) ++ ++ /* Errors accessing system attrs are ignored so that ++ * we can implement the Linux-like behavior of omitting errors that ++ * we don't have read permissions on ++ * ++ * Linux will still error if we ask for user attributes on a file that ++ * we don't have read permissions on, so don't ignore those errors ++ */ ++ if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER { ++ e = nil ++ continue ++ } else if e != nil { ++ return s, e ++ } ++ ++ s += stmp ++ destsiz -= s ++ if destsiz < 0 { ++ destsiz = 0 ++ } ++ d = initxattrdest(dest, s) ++ } ++ ++ return s, e ++} ++ ++func Flistxattr(fd int, dest []byte) (sz int, err error) { ++ d := initxattrdest(dest, 0) ++ destsiz := len(dest) ++ ++ s := 0 ++ var e error ++ for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { ++ stmp, e := ExtattrListFd(fd, nsid, uintptr(d), destsiz) ++ if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER { ++ e = nil ++ continue ++ } else if e != nil { ++ return s, e ++ } ++ ++ s += stmp ++ destsiz -= s ++ if destsiz < 0 { ++ destsiz = 0 ++ } ++ d = initxattrdest(dest, s) ++ } ++ ++ return s, e ++} ++ ++func Llistxattr(link string, dest []byte) (sz int, err error) { ++ d := initxattrdest(dest, 0) ++ destsiz := len(dest) ++ ++ s := 0 ++ var e error ++ for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { ++ stmp, e := ExtattrListLink(link, nsid, uintptr(d), destsiz) ++ if e != nil && e == EPERM && nsid != EXTATTR_NAMESPACE_USER { ++ e = nil ++ continue ++ } else if e != nil { ++ return s, e ++ } ++ ++ s += stmp ++ destsiz -= s ++ if destsiz < 0 { ++ destsiz = 0 ++ } ++ d = initxattrdest(dest, s) ++ } ++ ++ return s, e ++} ++ ++/* ++ * Exposed directly ++ */ ++//sys Access(path string, mode uint32) (err error) ++//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) ++//sys Chdir(path string) (err error) ++//sys Chflags(path string, flags int) (err error) ++//sys Chmod(path string, mode uint32) (err error) ++//sys Chown(path string, uid int, gid int) (err error) ++//sys Chroot(path string) (err error) ++//sys Close(fd int) (err error) ++//sys Dup(fd int) (nfd int, err error) ++//sys Dup2(from int, to int) (err error) ++//sys Exit(code int) ++//sys ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) ++//sys ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) ++//sys ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) ++//sys ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) ++//sys ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) ++//sys ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) ++//sys ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) ++//sys ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) ++//sys ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) ++//sys ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) ++//sys ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) ++//sys ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) ++//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_POSIX_FADVISE ++//sys Fchdir(fd int) (err error) ++//sys Fchflags(fd int, flags int) (err error) ++//sys Fchmod(fd int, mode uint32) (err error) ++//sys Fchown(fd int, uid int, gid int) (err error) ++//sys Flock(fd int, how int) (err error) ++//sys Fpathconf(fd int, name int) (val int, err error) ++//sys Fstat(fd int, stat *Stat_t) (err error) ++//sys Fstatfs(fd int, stat *Statfs_t) (err error) ++//sys Fsync(fd int) (err error) ++//sys Ftruncate(fd int, length int64) (err error) ++//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) ++//sys Getdtablesize() (size int) ++//sysnb Getegid() (egid int) ++//sysnb Geteuid() (uid int) ++//sysnb Getgid() (gid int) ++//sysnb Getpgid(pid int) (pgid int, err error) ++//sysnb Getpgrp() (pgrp int) ++//sysnb Getpid() (pid int) ++//sysnb Getppid() (ppid int) ++//sys Getpriority(which int, who int) (prio int, err error) ++//sysnb Getrlimit(which int, lim *Rlimit) (err error) ++//sysnb Getrusage(who int, rusage *Rusage) (err error) ++//sysnb Getsid(pid int) (sid int, err error) ++//sysnb Gettimeofday(tv *Timeval) (err error) ++//sysnb Getuid() (uid int) ++//sys Issetugid() (tainted bool) ++//sys Kill(pid int, signum syscall.Signal) (err error) ++//sys Kqueue() (fd int, err error) ++//sys Lchown(path string, uid int, gid int) (err error) ++//sys Link(path string, link string) (err error) ++//sys Listen(s int, backlog int) (err error) ++//sys Lstat(path string, stat *Stat_t) (err error) ++//sys Mkdir(path string, mode uint32) (err error) ++//sys Mkfifo(path string, mode uint32) (err error) ++//sys Mknod(path string, mode uint32, dev int) (err error) ++//sys Mlock(b []byte) (err error) ++//sys Mlockall(flags int) (err error) ++//sys Mprotect(b []byte, prot int) (err error) ++//sys Munlock(b []byte) (err error) ++//sys Munlockall() (err error) ++//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) ++//sys Open(path string, mode int, perm uint32) (fd int, err error) ++//sys Pathconf(path string, name int) (val int, err error) ++//sys Pread(fd int, p []byte, offset int64) (n int, err error) ++//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) ++//sys read(fd int, p []byte) (n int, err error) ++//sys Readlink(path string, buf []byte) (n int, err error) ++//sys Rename(from string, to string) (err error) ++//sys Revoke(path string) (err error) ++//sys Rmdir(path string) (err error) ++//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK ++//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) ++//sysnb Setegid(egid int) (err error) ++//sysnb Seteuid(euid int) (err error) ++//sysnb Setgid(gid int) (err error) ++//sys Setlogin(name string) (err error) ++//sysnb Setpgid(pid int, pgid int) (err error) ++//sys Setpriority(which int, who int, prio int) (err error) ++//sysnb Setregid(rgid int, egid int) (err error) ++//sysnb Setreuid(ruid int, euid int) (err error) ++//sysnb Setresgid(rgid int, egid int, sgid int) (err error) ++//sysnb Setresuid(ruid int, euid int, suid int) (err error) ++//sysnb Setrlimit(which int, lim *Rlimit) (err error) ++//sysnb Setsid() (pid int, err error) ++//sysnb Settimeofday(tp *Timeval) (err error) ++//sysnb Setuid(uid int) (err error) ++//sys Stat(path string, stat *Stat_t) (err error) ++//sys Statfs(path string, stat *Statfs_t) (err error) ++//sys Symlink(path string, link string) (err error) ++//sys Sync() (err error) ++//sys Truncate(path string, length int64) (err error) ++//sys Umask(newmask int) (oldmask int) ++//sys Undelete(path string) (err error) ++//sys Unlink(path string) (err error) ++//sys Unmount(path string, flags int) (err error) ++//sys write(fd int, p []byte) (n int, err error) ++//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) ++//sys munmap(addr uintptr, length uintptr) (err error) ++//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ ++//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE ++//sys accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) ++ ++/* ++ * Unimplemented ++ */ ++// Profil ++// Sigaction ++// Sigprocmask ++// Getlogin ++// Sigpending ++// Sigaltstack ++// Ioctl ++// Reboot ++// Execve ++// Vfork ++// Sbrk ++// Sstk ++// Ovadvise ++// Mincore ++// Setitimer ++// Swapon ++// Select ++// Sigsuspend ++// Readv ++// Writev ++// Nfssvc ++// Getfh ++// Quotactl ++// Mount ++// Csops ++// Waitid ++// Add_profil ++// Kdebug_trace ++// Sigreturn ++// Mmap ++// Mlock ++// Munlock ++// Atsocket ++// Kqueue_from_portset_np ++// Kqueue_portset ++// Getattrlist ++// Setattrlist ++// Getdirentriesattr ++// Searchfs ++// Delete ++// Copyfile ++// Poll ++// Watchevent ++// Waitevent ++// Modwatch ++// Getxattr ++// Fgetxattr ++// Setxattr ++// Fsetxattr ++// Removexattr ++// Fremovexattr ++// Listxattr ++// Flistxattr ++// Fsctl ++// Initgroups ++// Posix_spawn ++// Nfsclnt ++// Fhopen ++// Minherit ++// Semsys ++// Msgsys ++// Shmsys ++// Semctl ++// Semget ++// Semop ++// Msgctl ++// Msgget ++// Msgsnd ++// Msgrcv ++// Shmat ++// Shmctl ++// Shmdt ++// Shmget ++// Shm_open ++// Shm_unlink ++// Sem_open ++// Sem_close ++// Sem_unlink ++// Sem_wait ++// Sem_trywait ++// Sem_post ++// Sem_getvalue ++// Sem_init ++// Sem_destroy ++// Open_extended ++// Umask_extended ++// Stat_extended ++// Lstat_extended ++// Fstat_extended ++// Chmod_extended ++// Fchmod_extended ++// Access_extended ++// Settid ++// Gettid ++// Setsgroups ++// Getsgroups ++// Setwgroups ++// Getwgroups ++// Mkfifo_extended ++// Mkdir_extended ++// Identitysvc ++// Shared_region_check_np ++// Shared_region_map_np ++// __pthread_mutex_destroy ++// __pthread_mutex_init ++// __pthread_mutex_lock ++// __pthread_mutex_trylock ++// __pthread_mutex_unlock ++// __pthread_cond_init ++// __pthread_cond_destroy ++// __pthread_cond_broadcast ++// __pthread_cond_signal ++// Setsid_with_pid ++// __pthread_cond_timedwait ++// Aio_fsync ++// Aio_return ++// Aio_suspend ++// Aio_cancel ++// Aio_error ++// Aio_read ++// Aio_write ++// Lio_listio ++// __pthread_cond_wait ++// Iopolicysys ++// Mlockall ++// Munlockall ++// __pthread_kill ++// __pthread_sigmask ++// __sigwait ++// __disable_threadsignal ++// __pthread_markcancel ++// __pthread_canceled ++// __semwait_signal ++// Proc_info ++// Stat64_extended ++// Lstat64_extended ++// Fstat64_extended ++// __pthread_chdir ++// __pthread_fchdir ++// Audit ++// Auditon ++// Getauid ++// Setauid ++// Getaudit ++// Setaudit ++// Getaudit_addr ++// Setaudit_addr ++// Auditctl ++// Bsdthread_create ++// Bsdthread_terminate ++// Stack_snapshot ++// Bsdthread_register ++// Workq_open ++// Workq_ops ++// __mac_execve ++// __mac_syscall ++// __mac_get_file ++// __mac_set_file ++// __mac_get_link ++// __mac_set_link ++// __mac_get_proc ++// __mac_set_proc ++// __mac_get_fd ++// __mac_set_fd ++// __mac_get_pid ++// __mac_get_lcid ++// __mac_get_lctx ++// __mac_set_lctx ++// Setlcid ++// Read_nocancel ++// Write_nocancel ++// Open_nocancel ++// Close_nocancel ++// Wait4_nocancel ++// Recvmsg_nocancel ++// Sendmsg_nocancel ++// Recvfrom_nocancel ++// Accept_nocancel ++// Msync_nocancel ++// Fcntl_nocancel ++// Select_nocancel ++// Fsync_nocancel ++// Connect_nocancel ++// Sigsuspend_nocancel ++// Readv_nocancel ++// Writev_nocancel ++// Sendto_nocancel ++// Pread_nocancel ++// Pwrite_nocancel ++// Waitid_nocancel ++// Poll_nocancel ++// Msgsnd_nocancel ++// Msgrcv_nocancel ++// Sem_wait_nocancel ++// Aio_suspend_nocancel ++// __sigwait_nocancel ++// __semwait_signal_nocancel ++// __mac_mount ++// __mac_get_mount ++// __mac_getfsstat +diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go +new file mode 100644 +index 0000000..6a0cd80 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go +@@ -0,0 +1,61 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build 386,freebsd ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++func Getpagesize() int { return 4096 } ++ ++func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } ++ ++func NsecToTimespec(nsec int64) (ts Timespec) { ++ ts.Sec = int32(nsec / 1e9) ++ ts.Nsec = int32(nsec % 1e9) ++ return ++} ++ ++func NsecToTimeval(nsec int64) (tv Timeval) { ++ nsec += 999 // round up to microsecond ++ tv.Usec = int32(nsec % 1e9 / 1e3) ++ tv.Sec = int32(nsec / 1e9) ++ return ++} ++ ++func SetKevent(k *Kevent_t, fd, mode, flags int) { ++ k.Ident = uint32(fd) ++ k.Filter = int16(mode) ++ k.Flags = uint16(flags) ++} ++ ++func (iov *Iovec) SetLen(length int) { ++ iov.Len = uint32(length) ++} ++ ++func (msghdr *Msghdr) SetControllen(length int) { ++ msghdr.Controllen = uint32(length) ++} ++ ++func (cmsg *Cmsghdr) SetLen(length int) { ++ cmsg.Len = uint32(length) ++} ++ ++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ var writtenOut uint64 = 0 ++ _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0) ++ ++ written = int(writtenOut) ++ ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) +diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go +new file mode 100644 +index 0000000..e142540 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go +@@ -0,0 +1,61 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build amd64,freebsd ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++func Getpagesize() int { return 4096 } ++ ++func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } ++ ++func NsecToTimespec(nsec int64) (ts Timespec) { ++ ts.Sec = nsec / 1e9 ++ ts.Nsec = nsec % 1e9 ++ return ++} ++ ++func NsecToTimeval(nsec int64) (tv Timeval) { ++ nsec += 999 // round up to microsecond ++ tv.Usec = nsec % 1e9 / 1e3 ++ tv.Sec = int64(nsec / 1e9) ++ return ++} ++ ++func SetKevent(k *Kevent_t, fd, mode, flags int) { ++ k.Ident = uint64(fd) ++ k.Filter = int16(mode) ++ k.Flags = uint16(flags) ++} ++ ++func (iov *Iovec) SetLen(length int) { ++ iov.Len = uint64(length) ++} ++ ++func (msghdr *Msghdr) SetControllen(length int) { ++ msghdr.Controllen = uint32(length) ++} ++ ++func (cmsg *Cmsghdr) SetLen(length int) { ++ cmsg.Len = uint32(length) ++} ++ ++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ var writtenOut uint64 = 0 ++ _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) ++ ++ written = int(writtenOut) ++ ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) +diff --git a/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go +new file mode 100644 +index 0000000..5504cb1 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go +@@ -0,0 +1,61 @@ ++// Copyright 2012 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build arm,freebsd ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++func Getpagesize() int { return 4096 } ++ ++func TimespecToNsec(ts Timespec) int64 { return ts.Sec*1e9 + int64(ts.Nsec) } ++ ++func NsecToTimespec(nsec int64) (ts Timespec) { ++ ts.Sec = nsec / 1e9 ++ ts.Nsec = int32(nsec % 1e9) ++ return ++} ++ ++func NsecToTimeval(nsec int64) (tv Timeval) { ++ nsec += 999 // round up to microsecond ++ tv.Usec = int32(nsec % 1e9 / 1e3) ++ tv.Sec = nsec / 1e9 ++ return ++} ++ ++func SetKevent(k *Kevent_t, fd, mode, flags int) { ++ k.Ident = uint32(fd) ++ k.Filter = int16(mode) ++ k.Flags = uint16(flags) ++} ++ ++func (iov *Iovec) SetLen(length int) { ++ iov.Len = uint32(length) ++} ++ ++func (msghdr *Msghdr) SetControllen(length int) { ++ msghdr.Controllen = uint32(length) ++} ++ ++func (cmsg *Cmsghdr) SetLen(length int) { ++ cmsg.Len = uint32(length) ++} ++ ++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ var writtenOut uint64 = 0 ++ _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0) ++ ++ written = int(writtenOut) ++ ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) +diff --git a/vendor/golang.org/x/sys/unix/syscall_linux.go b/vendor/golang.org/x/sys/unix/syscall_linux.go +new file mode 100644 +index 0000000..b43425c +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_linux.go +@@ -0,0 +1,1290 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// Linux system calls. ++// This file is compiled as ordinary Go code, ++// but it is also input to mksyscall, ++// which parses the //sys lines and generates system call stubs. ++// Note that sometimes we use a lowercase //sys name and ++// wrap it in our own nicer implementation. ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++/* ++ * Wrapped ++ */ ++ ++func Access(path string, mode uint32) (err error) { ++ return Faccessat(AT_FDCWD, path, mode, 0) ++} ++ ++func Chmod(path string, mode uint32) (err error) { ++ return Fchmodat(AT_FDCWD, path, mode, 0) ++} ++ ++func Chown(path string, uid int, gid int) (err error) { ++ return Fchownat(AT_FDCWD, path, uid, gid, 0) ++} ++ ++func Creat(path string, mode uint32) (fd int, err error) { ++ return Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode) ++} ++ ++//sys Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) ++ ++func Link(oldpath string, newpath string) (err error) { ++ return Linkat(AT_FDCWD, oldpath, AT_FDCWD, newpath, 0) ++} ++ ++func Mkdir(path string, mode uint32) (err error) { ++ return Mkdirat(AT_FDCWD, path, mode) ++} ++ ++func Mknod(path string, mode uint32, dev int) (err error) { ++ return Mknodat(AT_FDCWD, path, mode, dev) ++} ++ ++func Open(path string, mode int, perm uint32) (fd int, err error) { ++ return openat(AT_FDCWD, path, mode|O_LARGEFILE, perm) ++} ++ ++//sys openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) ++ ++func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { ++ return openat(dirfd, path, flags|O_LARGEFILE, mode) ++} ++ ++//sys ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) ++ ++func Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { ++ if len(fds) == 0 { ++ return ppoll(nil, 0, timeout, sigmask) ++ } ++ return ppoll(&fds[0], len(fds), timeout, sigmask) ++} ++ ++//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) ++ ++func Readlink(path string, buf []byte) (n int, err error) { ++ return Readlinkat(AT_FDCWD, path, buf) ++} ++ ++func Rename(oldpath string, newpath string) (err error) { ++ return Renameat(AT_FDCWD, oldpath, AT_FDCWD, newpath) ++} ++ ++func Rmdir(path string) error { ++ return Unlinkat(AT_FDCWD, path, AT_REMOVEDIR) ++} ++ ++//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) ++ ++func Symlink(oldpath string, newpath string) (err error) { ++ return Symlinkat(oldpath, AT_FDCWD, newpath) ++} ++ ++func Unlink(path string) error { ++ return Unlinkat(AT_FDCWD, path, 0) ++} ++ ++//sys Unlinkat(dirfd int, path string, flags int) (err error) ++ ++//sys utimes(path string, times *[2]Timeval) (err error) ++ ++func Utimes(path string, tv []Timeval) error { ++ if tv == nil { ++ err := utimensat(AT_FDCWD, path, nil, 0) ++ if err != ENOSYS { ++ return err ++ } ++ return utimes(path, nil) ++ } ++ if len(tv) != 2 { ++ return EINVAL ++ } ++ var ts [2]Timespec ++ ts[0] = NsecToTimespec(TimevalToNsec(tv[0])) ++ ts[1] = NsecToTimespec(TimevalToNsec(tv[1])) ++ err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) ++ if err != ENOSYS { ++ return err ++ } ++ return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) ++} ++ ++//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) ++ ++func UtimesNano(path string, ts []Timespec) error { ++ if ts == nil { ++ err := utimensat(AT_FDCWD, path, nil, 0) ++ if err != ENOSYS { ++ return err ++ } ++ return utimes(path, nil) ++ } ++ if len(ts) != 2 { ++ return EINVAL ++ } ++ err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) ++ if err != ENOSYS { ++ return err ++ } ++ // If the utimensat syscall isn't available (utimensat was added to Linux ++ // in 2.6.22, Released, 8 July 2007) then fall back to utimes ++ var tv [2]Timeval ++ for i := 0; i < 2; i++ { ++ tv[i] = NsecToTimeval(TimespecToNsec(ts[i])) ++ } ++ return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) ++} ++ ++func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { ++ if ts == nil { ++ return utimensat(dirfd, path, nil, flags) ++ } ++ if len(ts) != 2 { ++ return EINVAL ++ } ++ return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) ++} ++ ++//sys futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) ++ ++func Futimesat(dirfd int, path string, tv []Timeval) error { ++ pathp, err := BytePtrFromString(path) ++ if err != nil { ++ return err ++ } ++ if tv == nil { ++ return futimesat(dirfd, pathp, nil) ++ } ++ if len(tv) != 2 { ++ return EINVAL ++ } ++ return futimesat(dirfd, pathp, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) ++} ++ ++func Futimes(fd int, tv []Timeval) (err error) { ++ // Believe it or not, this is the best we can do on Linux ++ // (and is what glibc does). ++ return Utimes("/proc/self/fd/"+itoa(fd), tv) ++} ++ ++const ImplementsGetwd = true ++ ++//sys Getcwd(buf []byte) (n int, err error) ++ ++func Getwd() (wd string, err error) { ++ var buf [PathMax]byte ++ n, err := Getcwd(buf[0:]) ++ if err != nil { ++ return "", err ++ } ++ // Getcwd returns the number of bytes written to buf, including the NUL. ++ if n < 1 || n > len(buf) || buf[n-1] != 0 { ++ return "", EINVAL ++ } ++ return string(buf[0 : n-1]), nil ++} ++ ++func Getgroups() (gids []int, err error) { ++ n, err := getgroups(0, nil) ++ if err != nil { ++ return nil, err ++ } ++ if n == 0 { ++ return nil, nil ++ } ++ ++ // Sanity check group count. Max is 1<<16 on Linux. ++ if n < 0 || n > 1<<20 { ++ return nil, EINVAL ++ } ++ ++ a := make([]_Gid_t, n) ++ n, err = getgroups(n, &a[0]) ++ if err != nil { ++ return nil, err ++ } ++ gids = make([]int, n) ++ for i, v := range a[0:n] { ++ gids[i] = int(v) ++ } ++ return ++} ++ ++func Setgroups(gids []int) (err error) { ++ if len(gids) == 0 { ++ return setgroups(0, nil) ++ } ++ ++ a := make([]_Gid_t, len(gids)) ++ for i, v := range gids { ++ a[i] = _Gid_t(v) ++ } ++ return setgroups(len(a), &a[0]) ++} ++ ++type WaitStatus uint32 ++ ++// Wait status is 7 bits at bottom, either 0 (exited), ++// 0x7F (stopped), or a signal number that caused an exit. ++// The 0x80 bit is whether there was a core dump. ++// An extra number (exit code, signal causing a stop) ++// is in the high bits. At least that's the idea. ++// There are various irregularities. For example, the ++// "continued" status is 0xFFFF, distinguishing itself ++// from stopped via the core dump bit. ++ ++const ( ++ mask = 0x7F ++ core = 0x80 ++ exited = 0x00 ++ stopped = 0x7F ++ shift = 8 ++) ++ ++func (w WaitStatus) Exited() bool { return w&mask == exited } ++ ++func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != exited } ++ ++func (w WaitStatus) Stopped() bool { return w&0xFF == stopped } ++ ++func (w WaitStatus) Continued() bool { return w == 0xFFFF } ++ ++func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 } ++ ++func (w WaitStatus) ExitStatus() int { ++ if !w.Exited() { ++ return -1 ++ } ++ return int(w>>shift) & 0xFF ++} ++ ++func (w WaitStatus) Signal() syscall.Signal { ++ if !w.Signaled() { ++ return -1 ++ } ++ return syscall.Signal(w & mask) ++} ++ ++func (w WaitStatus) StopSignal() syscall.Signal { ++ if !w.Stopped() { ++ return -1 ++ } ++ return syscall.Signal(w>>shift) & 0xFF ++} ++ ++func (w WaitStatus) TrapCause() int { ++ if w.StopSignal() != SIGTRAP { ++ return -1 ++ } ++ return int(w>>shift) >> 8 ++} ++ ++//sys wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) ++ ++func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { ++ var status _C_int ++ wpid, err = wait4(pid, &status, options, rusage) ++ if wstatus != nil { ++ *wstatus = WaitStatus(status) ++ } ++ return ++} ++ ++func Mkfifo(path string, mode uint32) (err error) { ++ return Mknod(path, mode|S_IFIFO, 0) ++} ++ ++func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { ++ if sa.Port < 0 || sa.Port > 0xFFFF { ++ return nil, 0, EINVAL ++ } ++ sa.raw.Family = AF_INET ++ p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) ++ p[0] = byte(sa.Port >> 8) ++ p[1] = byte(sa.Port) ++ for i := 0; i < len(sa.Addr); i++ { ++ sa.raw.Addr[i] = sa.Addr[i] ++ } ++ return unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil ++} ++ ++func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { ++ if sa.Port < 0 || sa.Port > 0xFFFF { ++ return nil, 0, EINVAL ++ } ++ sa.raw.Family = AF_INET6 ++ p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) ++ p[0] = byte(sa.Port >> 8) ++ p[1] = byte(sa.Port) ++ sa.raw.Scope_id = sa.ZoneId ++ for i := 0; i < len(sa.Addr); i++ { ++ sa.raw.Addr[i] = sa.Addr[i] ++ } ++ return unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil ++} ++ ++func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { ++ name := sa.Name ++ n := len(name) ++ if n >= len(sa.raw.Path) { ++ return nil, 0, EINVAL ++ } ++ sa.raw.Family = AF_UNIX ++ for i := 0; i < n; i++ { ++ sa.raw.Path[i] = int8(name[i]) ++ } ++ // length is family (uint16), name, NUL. ++ sl := _Socklen(2) ++ if n > 0 { ++ sl += _Socklen(n) + 1 ++ } ++ if sa.raw.Path[0] == '@' { ++ sa.raw.Path[0] = 0 ++ // Don't count trailing NUL for abstract address. ++ sl-- ++ } ++ ++ return unsafe.Pointer(&sa.raw), sl, nil ++} ++ ++type SockaddrLinklayer struct { ++ Protocol uint16 ++ Ifindex int ++ Hatype uint16 ++ Pkttype uint8 ++ Halen uint8 ++ Addr [8]byte ++ raw RawSockaddrLinklayer ++} ++ ++func (sa *SockaddrLinklayer) sockaddr() (unsafe.Pointer, _Socklen, error) { ++ if sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff { ++ return nil, 0, EINVAL ++ } ++ sa.raw.Family = AF_PACKET ++ sa.raw.Protocol = sa.Protocol ++ sa.raw.Ifindex = int32(sa.Ifindex) ++ sa.raw.Hatype = sa.Hatype ++ sa.raw.Pkttype = sa.Pkttype ++ sa.raw.Halen = sa.Halen ++ for i := 0; i < len(sa.Addr); i++ { ++ sa.raw.Addr[i] = sa.Addr[i] ++ } ++ return unsafe.Pointer(&sa.raw), SizeofSockaddrLinklayer, nil ++} ++ ++type SockaddrNetlink struct { ++ Family uint16 ++ Pad uint16 ++ Pid uint32 ++ Groups uint32 ++ raw RawSockaddrNetlink ++} ++ ++func (sa *SockaddrNetlink) sockaddr() (unsafe.Pointer, _Socklen, error) { ++ sa.raw.Family = AF_NETLINK ++ sa.raw.Pad = sa.Pad ++ sa.raw.Pid = sa.Pid ++ sa.raw.Groups = sa.Groups ++ return unsafe.Pointer(&sa.raw), SizeofSockaddrNetlink, nil ++} ++ ++type SockaddrHCI struct { ++ Dev uint16 ++ Channel uint16 ++ raw RawSockaddrHCI ++} ++ ++func (sa *SockaddrHCI) sockaddr() (unsafe.Pointer, _Socklen, error) { ++ sa.raw.Family = AF_BLUETOOTH ++ sa.raw.Dev = sa.Dev ++ sa.raw.Channel = sa.Channel ++ return unsafe.Pointer(&sa.raw), SizeofSockaddrHCI, nil ++} ++ ++// SockaddrCAN implements the Sockaddr interface for AF_CAN type sockets. ++// The RxID and TxID fields are used for transport protocol addressing in ++// (CAN_TP16, CAN_TP20, CAN_MCNET, and CAN_ISOTP), they can be left with ++// zero values for CAN_RAW and CAN_BCM sockets as they have no meaning. ++// ++// The SockaddrCAN struct must be bound to the socket file descriptor ++// using Bind before the CAN socket can be used. ++// ++// // Read one raw CAN frame ++// fd, _ := Socket(AF_CAN, SOCK_RAW, CAN_RAW) ++// addr := &SockaddrCAN{Ifindex: index} ++// Bind(fd, addr) ++// frame := make([]byte, 16) ++// Read(fd, frame) ++// ++// The full SocketCAN documentation can be found in the linux kernel ++// archives at: https://www.kernel.org/doc/Documentation/networking/can.txt ++type SockaddrCAN struct { ++ Ifindex int ++ RxID uint32 ++ TxID uint32 ++ raw RawSockaddrCAN ++} ++ ++func (sa *SockaddrCAN) sockaddr() (unsafe.Pointer, _Socklen, error) { ++ if sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff { ++ return nil, 0, EINVAL ++ } ++ sa.raw.Family = AF_CAN ++ sa.raw.Ifindex = int32(sa.Ifindex) ++ rx := (*[4]byte)(unsafe.Pointer(&sa.RxID)) ++ for i := 0; i < 4; i++ { ++ sa.raw.Addr[i] = rx[i] ++ } ++ tx := (*[4]byte)(unsafe.Pointer(&sa.TxID)) ++ for i := 0; i < 4; i++ { ++ sa.raw.Addr[i+4] = tx[i] ++ } ++ return unsafe.Pointer(&sa.raw), SizeofSockaddrCAN, nil ++} ++ ++// SockaddrALG implements the Sockaddr interface for AF_ALG type sockets. ++// SockaddrALG enables userspace access to the Linux kernel's cryptography ++// subsystem. The Type and Name fields specify which type of hash or cipher ++// should be used with a given socket. ++// ++// To create a file descriptor that provides access to a hash or cipher, both ++// Bind and Accept must be used. Once the setup process is complete, input ++// data can be written to the socket, processed by the kernel, and then read ++// back as hash output or ciphertext. ++// ++// Here is an example of using an AF_ALG socket with SHA1 hashing. ++// The initial socket setup process is as follows: ++// ++// // Open a socket to perform SHA1 hashing. ++// fd, _ := unix.Socket(unix.AF_ALG, unix.SOCK_SEQPACKET, 0) ++// addr := &unix.SockaddrALG{Type: "hash", Name: "sha1"} ++// unix.Bind(fd, addr) ++// // Note: unix.Accept does not work at this time; must invoke accept() ++// // manually using unix.Syscall. ++// hashfd, _, _ := unix.Syscall(unix.SYS_ACCEPT, uintptr(fd), 0, 0) ++// ++// Once a file descriptor has been returned from Accept, it may be used to ++// perform SHA1 hashing. The descriptor is not safe for concurrent use, but ++// may be re-used repeatedly with subsequent Write and Read operations. ++// ++// When hashing a small byte slice or string, a single Write and Read may ++// be used: ++// ++// // Assume hashfd is already configured using the setup process. ++// hash := os.NewFile(hashfd, "sha1") ++// // Hash an input string and read the results. Each Write discards ++// // previous hash state. Read always reads the current state. ++// b := make([]byte, 20) ++// for i := 0; i < 2; i++ { ++// io.WriteString(hash, "Hello, world.") ++// hash.Read(b) ++// fmt.Println(hex.EncodeToString(b)) ++// } ++// // Output: ++// // 2ae01472317d1935a84797ec1983ae243fc6aa28 ++// // 2ae01472317d1935a84797ec1983ae243fc6aa28 ++// ++// For hashing larger byte slices, or byte streams such as those read from ++// a file or socket, use Sendto with MSG_MORE to instruct the kernel to update ++// the hash digest instead of creating a new one for a given chunk and finalizing it. ++// ++// // Assume hashfd and addr are already configured using the setup process. ++// hash := os.NewFile(hashfd, "sha1") ++// // Hash the contents of a file. ++// f, _ := os.Open("/tmp/linux-4.10-rc7.tar.xz") ++// b := make([]byte, 4096) ++// for { ++// n, err := f.Read(b) ++// if err == io.EOF { ++// break ++// } ++// unix.Sendto(hashfd, b[:n], unix.MSG_MORE, addr) ++// } ++// hash.Read(b) ++// fmt.Println(hex.EncodeToString(b)) ++// // Output: 85cdcad0c06eef66f805ecce353bec9accbeecc5 ++// ++// For more information, see: http://www.chronox.de/crypto-API/crypto/userspace-if.html. ++type SockaddrALG struct { ++ Type string ++ Name string ++ Feature uint32 ++ Mask uint32 ++ raw RawSockaddrALG ++} ++ ++func (sa *SockaddrALG) sockaddr() (unsafe.Pointer, _Socklen, error) { ++ // Leave room for NUL byte terminator. ++ if len(sa.Type) > 13 { ++ return nil, 0, EINVAL ++ } ++ if len(sa.Name) > 63 { ++ return nil, 0, EINVAL ++ } ++ ++ sa.raw.Family = AF_ALG ++ sa.raw.Feat = sa.Feature ++ sa.raw.Mask = sa.Mask ++ ++ typ, err := ByteSliceFromString(sa.Type) ++ if err != nil { ++ return nil, 0, err ++ } ++ name, err := ByteSliceFromString(sa.Name) ++ if err != nil { ++ return nil, 0, err ++ } ++ ++ copy(sa.raw.Type[:], typ) ++ copy(sa.raw.Name[:], name) ++ ++ return unsafe.Pointer(&sa.raw), SizeofSockaddrALG, nil ++} ++ ++// SockaddrVM implements the Sockaddr interface for AF_VSOCK type sockets. ++// SockaddrVM provides access to Linux VM sockets: a mechanism that enables ++// bidirectional communication between a hypervisor and its guest virtual ++// machines. ++type SockaddrVM struct { ++ // CID and Port specify a context ID and port address for a VM socket. ++ // Guests have a unique CID, and hosts may have a well-known CID of: ++ // - VMADDR_CID_HYPERVISOR: refers to the hypervisor process. ++ // - VMADDR_CID_HOST: refers to other processes on the host. ++ CID uint32 ++ Port uint32 ++ raw RawSockaddrVM ++} ++ ++func (sa *SockaddrVM) sockaddr() (unsafe.Pointer, _Socklen, error) { ++ sa.raw.Family = AF_VSOCK ++ sa.raw.Port = sa.Port ++ sa.raw.Cid = sa.CID ++ ++ return unsafe.Pointer(&sa.raw), SizeofSockaddrVM, nil ++} ++ ++func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) { ++ switch rsa.Addr.Family { ++ case AF_NETLINK: ++ pp := (*RawSockaddrNetlink)(unsafe.Pointer(rsa)) ++ sa := new(SockaddrNetlink) ++ sa.Family = pp.Family ++ sa.Pad = pp.Pad ++ sa.Pid = pp.Pid ++ sa.Groups = pp.Groups ++ return sa, nil ++ ++ case AF_PACKET: ++ pp := (*RawSockaddrLinklayer)(unsafe.Pointer(rsa)) ++ sa := new(SockaddrLinklayer) ++ sa.Protocol = pp.Protocol ++ sa.Ifindex = int(pp.Ifindex) ++ sa.Hatype = pp.Hatype ++ sa.Pkttype = pp.Pkttype ++ sa.Halen = pp.Halen ++ for i := 0; i < len(sa.Addr); i++ { ++ sa.Addr[i] = pp.Addr[i] ++ } ++ return sa, nil ++ ++ case AF_UNIX: ++ pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) ++ sa := new(SockaddrUnix) ++ if pp.Path[0] == 0 { ++ // "Abstract" Unix domain socket. ++ // Rewrite leading NUL as @ for textual display. ++ // (This is the standard convention.) ++ // Not friendly to overwrite in place, ++ // but the callers below don't care. ++ pp.Path[0] = '@' ++ } ++ ++ // Assume path ends at NUL. ++ // This is not technically the Linux semantics for ++ // abstract Unix domain sockets--they are supposed ++ // to be uninterpreted fixed-size binary blobs--but ++ // everyone uses this convention. ++ n := 0 ++ for n < len(pp.Path) && pp.Path[n] != 0 { ++ n++ ++ } ++ bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] ++ sa.Name = string(bytes) ++ return sa, nil ++ ++ case AF_INET: ++ pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) ++ sa := new(SockaddrInet4) ++ p := (*[2]byte)(unsafe.Pointer(&pp.Port)) ++ sa.Port = int(p[0])<<8 + int(p[1]) ++ for i := 0; i < len(sa.Addr); i++ { ++ sa.Addr[i] = pp.Addr[i] ++ } ++ return sa, nil ++ ++ case AF_INET6: ++ pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) ++ sa := new(SockaddrInet6) ++ p := (*[2]byte)(unsafe.Pointer(&pp.Port)) ++ sa.Port = int(p[0])<<8 + int(p[1]) ++ sa.ZoneId = pp.Scope_id ++ for i := 0; i < len(sa.Addr); i++ { ++ sa.Addr[i] = pp.Addr[i] ++ } ++ return sa, nil ++ ++ case AF_VSOCK: ++ pp := (*RawSockaddrVM)(unsafe.Pointer(rsa)) ++ sa := &SockaddrVM{ ++ CID: pp.Cid, ++ Port: pp.Port, ++ } ++ return sa, nil ++ } ++ return nil, EAFNOSUPPORT ++} ++ ++func Accept(fd int) (nfd int, sa Sockaddr, err error) { ++ var rsa RawSockaddrAny ++ var len _Socklen = SizeofSockaddrAny ++ nfd, err = accept(fd, &rsa, &len) ++ if err != nil { ++ return ++ } ++ sa, err = anyToSockaddr(&rsa) ++ if err != nil { ++ Close(nfd) ++ nfd = 0 ++ } ++ return ++} ++ ++func Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) { ++ var rsa RawSockaddrAny ++ var len _Socklen = SizeofSockaddrAny ++ nfd, err = accept4(fd, &rsa, &len, flags) ++ if err != nil { ++ return ++ } ++ if len > SizeofSockaddrAny { ++ panic("RawSockaddrAny too small") ++ } ++ sa, err = anyToSockaddr(&rsa) ++ if err != nil { ++ Close(nfd) ++ nfd = 0 ++ } ++ return ++} ++ ++func Getsockname(fd int) (sa Sockaddr, err error) { ++ var rsa RawSockaddrAny ++ var len _Socklen = SizeofSockaddrAny ++ if err = getsockname(fd, &rsa, &len); err != nil { ++ return ++ } ++ return anyToSockaddr(&rsa) ++} ++ ++func GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) { ++ vallen := _Socklen(4) ++ err = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) ++ return value, err ++} ++ ++func GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) { ++ var value IPMreq ++ vallen := _Socklen(SizeofIPMreq) ++ err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) ++ return &value, err ++} ++ ++func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) { ++ var value IPMreqn ++ vallen := _Socklen(SizeofIPMreqn) ++ err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) ++ return &value, err ++} ++ ++func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) { ++ var value IPv6Mreq ++ vallen := _Socklen(SizeofIPv6Mreq) ++ err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) ++ return &value, err ++} ++ ++func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) { ++ var value IPv6MTUInfo ++ vallen := _Socklen(SizeofIPv6MTUInfo) ++ err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) ++ return &value, err ++} ++ ++func GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) { ++ var value ICMPv6Filter ++ vallen := _Socklen(SizeofICMPv6Filter) ++ err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) ++ return &value, err ++} ++ ++func GetsockoptUcred(fd, level, opt int) (*Ucred, error) { ++ var value Ucred ++ vallen := _Socklen(SizeofUcred) ++ err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) ++ return &value, err ++} ++ ++func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) { ++ return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) ++} ++ ++func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { ++ var msg Msghdr ++ var rsa RawSockaddrAny ++ msg.Name = (*byte)(unsafe.Pointer(&rsa)) ++ msg.Namelen = uint32(SizeofSockaddrAny) ++ var iov Iovec ++ if len(p) > 0 { ++ iov.Base = (*byte)(unsafe.Pointer(&p[0])) ++ iov.SetLen(len(p)) ++ } ++ var dummy byte ++ if len(oob) > 0 { ++ // receive at least one normal byte ++ if len(p) == 0 { ++ iov.Base = &dummy ++ iov.SetLen(1) ++ } ++ msg.Control = (*byte)(unsafe.Pointer(&oob[0])) ++ msg.SetControllen(len(oob)) ++ } ++ msg.Iov = &iov ++ msg.Iovlen = 1 ++ if n, err = recvmsg(fd, &msg, flags); err != nil { ++ return ++ } ++ oobn = int(msg.Controllen) ++ recvflags = int(msg.Flags) ++ // source address is only specified if the socket is unconnected ++ if rsa.Addr.Family != AF_UNSPEC { ++ from, err = anyToSockaddr(&rsa) ++ } ++ return ++} ++ ++func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { ++ _, err = SendmsgN(fd, p, oob, to, flags) ++ return ++} ++ ++func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { ++ var ptr unsafe.Pointer ++ var salen _Socklen ++ if to != nil { ++ var err error ++ ptr, salen, err = to.sockaddr() ++ if err != nil { ++ return 0, err ++ } ++ } ++ var msg Msghdr ++ msg.Name = (*byte)(unsafe.Pointer(ptr)) ++ msg.Namelen = uint32(salen) ++ var iov Iovec ++ if len(p) > 0 { ++ iov.Base = (*byte)(unsafe.Pointer(&p[0])) ++ iov.SetLen(len(p)) ++ } ++ var dummy byte ++ if len(oob) > 0 { ++ // send at least one normal byte ++ if len(p) == 0 { ++ iov.Base = &dummy ++ iov.SetLen(1) ++ } ++ msg.Control = (*byte)(unsafe.Pointer(&oob[0])) ++ msg.SetControllen(len(oob)) ++ } ++ msg.Iov = &iov ++ msg.Iovlen = 1 ++ if n, err = sendmsg(fd, &msg, flags); err != nil { ++ return 0, err ++ } ++ if len(oob) > 0 && len(p) == 0 { ++ n = 0 ++ } ++ return n, nil ++} ++ ++// BindToDevice binds the socket associated with fd to device. ++func BindToDevice(fd int, device string) (err error) { ++ return SetsockoptString(fd, SOL_SOCKET, SO_BINDTODEVICE, device) ++} ++ ++//sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error) ++ ++func ptracePeek(req int, pid int, addr uintptr, out []byte) (count int, err error) { ++ // The peek requests are machine-size oriented, so we wrap it ++ // to retrieve arbitrary-length data. ++ ++ // The ptrace syscall differs from glibc's ptrace. ++ // Peeks returns the word in *data, not as the return value. ++ ++ var buf [sizeofPtr]byte ++ ++ // Leading edge. PEEKTEXT/PEEKDATA don't require aligned ++ // access (PEEKUSER warns that it might), but if we don't ++ // align our reads, we might straddle an unmapped page ++ // boundary and not get the bytes leading up to the page ++ // boundary. ++ n := 0 ++ if addr%sizeofPtr != 0 { ++ err = ptrace(req, pid, addr-addr%sizeofPtr, uintptr(unsafe.Pointer(&buf[0]))) ++ if err != nil { ++ return 0, err ++ } ++ n += copy(out, buf[addr%sizeofPtr:]) ++ out = out[n:] ++ } ++ ++ // Remainder. ++ for len(out) > 0 { ++ // We use an internal buffer to guarantee alignment. ++ // It's not documented if this is necessary, but we're paranoid. ++ err = ptrace(req, pid, addr+uintptr(n), uintptr(unsafe.Pointer(&buf[0]))) ++ if err != nil { ++ return n, err ++ } ++ copied := copy(out, buf[0:]) ++ n += copied ++ out = out[copied:] ++ } ++ ++ return n, nil ++} ++ ++func PtracePeekText(pid int, addr uintptr, out []byte) (count int, err error) { ++ return ptracePeek(PTRACE_PEEKTEXT, pid, addr, out) ++} ++ ++func PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) { ++ return ptracePeek(PTRACE_PEEKDATA, pid, addr, out) ++} ++ ++func PtracePeekUser(pid int, addr uintptr, out []byte) (count int, err error) { ++ return ptracePeek(PTRACE_PEEKUSR, pid, addr, out) ++} ++ ++func ptracePoke(pokeReq int, peekReq int, pid int, addr uintptr, data []byte) (count int, err error) { ++ // As for ptracePeek, we need to align our accesses to deal ++ // with the possibility of straddling an invalid page. ++ ++ // Leading edge. ++ n := 0 ++ if addr%sizeofPtr != 0 { ++ var buf [sizeofPtr]byte ++ err = ptrace(peekReq, pid, addr-addr%sizeofPtr, uintptr(unsafe.Pointer(&buf[0]))) ++ if err != nil { ++ return 0, err ++ } ++ n += copy(buf[addr%sizeofPtr:], data) ++ word := *((*uintptr)(unsafe.Pointer(&buf[0]))) ++ err = ptrace(pokeReq, pid, addr-addr%sizeofPtr, word) ++ if err != nil { ++ return 0, err ++ } ++ data = data[n:] ++ } ++ ++ // Interior. ++ for len(data) > sizeofPtr { ++ word := *((*uintptr)(unsafe.Pointer(&data[0]))) ++ err = ptrace(pokeReq, pid, addr+uintptr(n), word) ++ if err != nil { ++ return n, err ++ } ++ n += sizeofPtr ++ data = data[sizeofPtr:] ++ } ++ ++ // Trailing edge. ++ if len(data) > 0 { ++ var buf [sizeofPtr]byte ++ err = ptrace(peekReq, pid, addr+uintptr(n), uintptr(unsafe.Pointer(&buf[0]))) ++ if err != nil { ++ return n, err ++ } ++ copy(buf[0:], data) ++ word := *((*uintptr)(unsafe.Pointer(&buf[0]))) ++ err = ptrace(pokeReq, pid, addr+uintptr(n), word) ++ if err != nil { ++ return n, err ++ } ++ n += len(data) ++ } ++ ++ return n, nil ++} ++ ++func PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) { ++ return ptracePoke(PTRACE_POKETEXT, PTRACE_PEEKTEXT, pid, addr, data) ++} ++ ++func PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) { ++ return ptracePoke(PTRACE_POKEDATA, PTRACE_PEEKDATA, pid, addr, data) ++} ++ ++func PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) { ++ return ptrace(PTRACE_GETREGS, pid, 0, uintptr(unsafe.Pointer(regsout))) ++} ++ ++func PtraceSetRegs(pid int, regs *PtraceRegs) (err error) { ++ return ptrace(PTRACE_SETREGS, pid, 0, uintptr(unsafe.Pointer(regs))) ++} ++ ++func PtraceSetOptions(pid int, options int) (err error) { ++ return ptrace(PTRACE_SETOPTIONS, pid, 0, uintptr(options)) ++} ++ ++func PtraceGetEventMsg(pid int) (msg uint, err error) { ++ var data _C_long ++ err = ptrace(PTRACE_GETEVENTMSG, pid, 0, uintptr(unsafe.Pointer(&data))) ++ msg = uint(data) ++ return ++} ++ ++func PtraceCont(pid int, signal int) (err error) { ++ return ptrace(PTRACE_CONT, pid, 0, uintptr(signal)) ++} ++ ++func PtraceSyscall(pid int, signal int) (err error) { ++ return ptrace(PTRACE_SYSCALL, pid, 0, uintptr(signal)) ++} ++ ++func PtraceSingleStep(pid int) (err error) { return ptrace(PTRACE_SINGLESTEP, pid, 0, 0) } ++ ++func PtraceAttach(pid int) (err error) { return ptrace(PTRACE_ATTACH, pid, 0, 0) } ++ ++func PtraceDetach(pid int) (err error) { return ptrace(PTRACE_DETACH, pid, 0, 0) } ++ ++//sys reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) ++ ++func Reboot(cmd int) (err error) { ++ return reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, cmd, "") ++} ++ ++func ReadDirent(fd int, buf []byte) (n int, err error) { ++ return Getdents(fd, buf) ++} ++ ++func direntIno(buf []byte) (uint64, bool) { ++ return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) ++} ++ ++func direntReclen(buf []byte) (uint64, bool) { ++ return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) ++} ++ ++func direntNamlen(buf []byte) (uint64, bool) { ++ reclen, ok := direntReclen(buf) ++ if !ok { ++ return 0, false ++ } ++ return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true ++} ++ ++//sys mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) ++ ++func Mount(source string, target string, fstype string, flags uintptr, data string) (err error) { ++ // Certain file systems get rather angry and EINVAL if you give ++ // them an empty string of data, rather than NULL. ++ if data == "" { ++ return mount(source, target, fstype, flags, nil) ++ } ++ datap, err := BytePtrFromString(data) ++ if err != nil { ++ return err ++ } ++ return mount(source, target, fstype, flags, datap) ++} ++ ++// Sendto ++// Recvfrom ++// Socketpair ++ ++/* ++ * Direct access ++ */ ++//sys Acct(path string) (err error) ++//sys Adjtimex(buf *Timex) (state int, err error) ++//sys Chdir(path string) (err error) ++//sys Chroot(path string) (err error) ++//sys ClockGettime(clockid int32, time *Timespec) (err error) ++//sys Close(fd int) (err error) ++//sys Dup(oldfd int) (fd int, err error) ++//sys Dup3(oldfd int, newfd int, flags int) (err error) ++//sysnb EpollCreate(size int) (fd int, err error) ++//sysnb EpollCreate1(flag int) (fd int, err error) ++//sysnb EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) ++//sys Exit(code int) = SYS_EXIT_GROUP ++//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) ++//sys Fallocate(fd int, mode uint32, off int64, len int64) (err error) ++//sys Fchdir(fd int) (err error) ++//sys Fchmod(fd int, mode uint32) (err error) ++//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) ++//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) ++//sys fcntl(fd int, cmd int, arg int) (val int, err error) ++//sys Fdatasync(fd int) (err error) ++//sys Flock(fd int, how int) (err error) ++//sys Fsync(fd int) (err error) ++//sys Getdents(fd int, buf []byte) (n int, err error) = SYS_GETDENTS64 ++//sysnb Getpgid(pid int) (pgid int, err error) ++ ++func Getpgrp() (pid int) { ++ pid, _ = Getpgid(0) ++ return ++} ++ ++//sysnb Getpid() (pid int) ++//sysnb Getppid() (ppid int) ++//sys Getpriority(which int, who int) (prio int, err error) ++//sys Getrandom(buf []byte, flags int) (n int, err error) ++//sysnb Getrusage(who int, rusage *Rusage) (err error) ++//sysnb Getsid(pid int) (sid int, err error) ++//sysnb Gettid() (tid int) ++//sys Getxattr(path string, attr string, dest []byte) (sz int, err error) ++//sys InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) ++//sysnb InotifyInit1(flags int) (fd int, err error) ++//sysnb InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) ++//sysnb Kill(pid int, sig syscall.Signal) (err error) ++//sys Klogctl(typ int, buf []byte) (n int, err error) = SYS_SYSLOG ++//sys Listxattr(path string, dest []byte) (sz int, err error) ++//sys Mkdirat(dirfd int, path string, mode uint32) (err error) ++//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) ++//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) ++//sys PivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT ++//sysnb prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT64 ++//sys Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) ++//sys read(fd int, p []byte) (n int, err error) ++//sys Removexattr(path string, attr string) (err error) ++//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) ++//sys Setdomainname(p []byte) (err error) ++//sys Sethostname(p []byte) (err error) ++//sysnb Setpgid(pid int, pgid int) (err error) ++//sysnb Setsid() (pid int, err error) ++//sysnb Settimeofday(tv *Timeval) (err error) ++//sys Setns(fd int, nstype int) (err error) ++ ++// issue 1435. ++// On linux Setuid and Setgid only affects the current thread, not the process. ++// This does not match what most callers expect so we must return an error ++// here rather than letting the caller think that the call succeeded. ++ ++func Setuid(uid int) (err error) { ++ return EOPNOTSUPP ++} ++ ++func Setgid(uid int) (err error) { ++ return EOPNOTSUPP ++} ++ ++//sys Setpriority(which int, who int, prio int) (err error) ++//sys Setxattr(path string, attr string, data []byte, flags int) (err error) ++//sys Sync() ++//sysnb Sysinfo(info *Sysinfo_t) (err error) ++//sys Tee(rfd int, wfd int, len int, flags int) (n int64, err error) ++//sysnb Tgkill(tgid int, tid int, sig syscall.Signal) (err error) ++//sysnb Times(tms *Tms) (ticks uintptr, err error) ++//sysnb Umask(mask int) (oldmask int) ++//sysnb Uname(buf *Utsname) (err error) ++//sys Unmount(target string, flags int) (err error) = SYS_UMOUNT2 ++//sys Unshare(flags int) (err error) ++//sys Ustat(dev int, ubuf *Ustat_t) (err error) ++//sys write(fd int, p []byte) (n int, err error) ++//sys exitThread(code int) (err error) = SYS_EXIT ++//sys readlen(fd int, p *byte, np int) (n int, err error) = SYS_READ ++//sys writelen(fd int, p *byte, np int) (n int, err error) = SYS_WRITE ++ ++// mmap varies by architecture; see syscall_linux_*.go. ++//sys munmap(addr uintptr, length uintptr) (err error) ++ ++var mapper = &mmapper{ ++ active: make(map[*byte][]byte), ++ mmap: mmap, ++ munmap: munmap, ++} ++ ++func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { ++ return mapper.Mmap(fd, offset, length, prot, flags) ++} ++ ++func Munmap(b []byte) (err error) { ++ return mapper.Munmap(b) ++} ++ ++//sys Madvise(b []byte, advice int) (err error) ++//sys Mprotect(b []byte, prot int) (err error) ++//sys Mlock(b []byte) (err error) ++//sys Munlock(b []byte) (err error) ++//sys Mlockall(flags int) (err error) ++//sys Munlockall() (err error) ++ ++// Vmsplice splices user pages from a slice of Iovecs into a pipe specified by fd, ++// using the specified flags. ++func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) { ++ n, _, errno := Syscall6( ++ SYS_VMSPLICE, ++ uintptr(fd), ++ uintptr(unsafe.Pointer(&iovs[0])), ++ uintptr(len(iovs)), ++ uintptr(flags), ++ 0, ++ 0, ++ ) ++ if errno != 0 { ++ return 0, syscall.Errno(errno) ++ } ++ ++ return int(n), nil ++} ++ ++/* ++ * Unimplemented ++ */ ++// AddKey ++// AfsSyscall ++// Alarm ++// ArchPrctl ++// Brk ++// Capget ++// Capset ++// ClockGetres ++// ClockNanosleep ++// ClockSettime ++// Clone ++// CreateModule ++// DeleteModule ++// EpollCtlOld ++// EpollPwait ++// EpollWaitOld ++// Eventfd ++// Execve ++// Fgetxattr ++// Flistxattr ++// Fork ++// Fremovexattr ++// Fsetxattr ++// Futex ++// GetKernelSyms ++// GetMempolicy ++// GetRobustList ++// GetThreadArea ++// Getitimer ++// Getpmsg ++// IoCancel ++// IoDestroy ++// IoGetevents ++// IoSetup ++// IoSubmit ++// Ioctl ++// IoprioGet ++// IoprioSet ++// KexecLoad ++// Keyctl ++// Lgetxattr ++// Llistxattr ++// LookupDcookie ++// Lremovexattr ++// Lsetxattr ++// Mbind ++// MigratePages ++// Mincore ++// ModifyLdt ++// Mount ++// MovePages ++// Mprotect ++// MqGetsetattr ++// MqNotify ++// MqOpen ++// MqTimedreceive ++// MqTimedsend ++// MqUnlink ++// Mremap ++// Msgctl ++// Msgget ++// Msgrcv ++// Msgsnd ++// Msync ++// Newfstatat ++// Nfsservctl ++// Personality ++// Pselect6 ++// Ptrace ++// Putpmsg ++// QueryModule ++// Quotactl ++// Readahead ++// Readv ++// RemapFilePages ++// RequestKey ++// RestartSyscall ++// RtSigaction ++// RtSigpending ++// RtSigprocmask ++// RtSigqueueinfo ++// RtSigreturn ++// RtSigsuspend ++// RtSigtimedwait ++// SchedGetPriorityMax ++// SchedGetPriorityMin ++// SchedGetaffinity ++// SchedGetparam ++// SchedGetscheduler ++// SchedRrGetInterval ++// SchedSetaffinity ++// SchedSetparam ++// SchedYield ++// Security ++// Semctl ++// Semget ++// Semop ++// Semtimedop ++// SetMempolicy ++// SetRobustList ++// SetThreadArea ++// SetTidAddress ++// Shmat ++// Shmctl ++// Shmdt ++// Shmget ++// Sigaltstack ++// Signalfd ++// Swapoff ++// Swapon ++// Sysfs ++// TimerCreate ++// TimerDelete ++// TimerGetoverrun ++// TimerGettime ++// TimerSettime ++// Timerfd ++// Tkill (obsolete) ++// Tuxcall ++// Umount2 ++// Uselib ++// Utimensat ++// Vfork ++// Vhangup ++// Vserver ++// Waitid ++// _Sysctl +diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_386.go b/vendor/golang.org/x/sys/unix/syscall_linux_386.go +new file mode 100644 +index 0000000..2b881b9 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_linux_386.go +@@ -0,0 +1,399 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// TODO(rsc): Rewrite all nn(SP) references into name+(nn-8)(FP) ++// so that go vet can check that they are correct. ++ ++// +build 386,linux ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++func Getpagesize() int { return 4096 } ++ ++func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } ++ ++func NsecToTimespec(nsec int64) (ts Timespec) { ++ ts.Sec = int32(nsec / 1e9) ++ ts.Nsec = int32(nsec % 1e9) ++ return ++} ++ ++func NsecToTimeval(nsec int64) (tv Timeval) { ++ nsec += 999 // round up to microsecond ++ tv.Sec = int32(nsec / 1e9) ++ tv.Usec = int32(nsec % 1e9 / 1e3) ++ return ++} ++ ++//sysnb pipe(p *[2]_C_int) (err error) ++ ++func Pipe(p []int) (err error) { ++ if len(p) != 2 { ++ return EINVAL ++ } ++ var pp [2]_C_int ++ err = pipe(&pp) ++ p[0] = int(pp[0]) ++ p[1] = int(pp[1]) ++ return ++} ++ ++//sysnb pipe2(p *[2]_C_int, flags int) (err error) ++ ++func Pipe2(p []int, flags int) (err error) { ++ if len(p) != 2 { ++ return EINVAL ++ } ++ var pp [2]_C_int ++ err = pipe2(&pp, flags) ++ p[0] = int(pp[0]) ++ p[1] = int(pp[1]) ++ return ++} ++ ++// 64-bit file system and 32-bit uid calls ++// (386 default is 32-bit file system and 16-bit uid). ++//sys Dup2(oldfd int, newfd int) (err error) ++//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64_64 ++//sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32 ++//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 ++//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 ++//sysnb Getegid() (egid int) = SYS_GETEGID32 ++//sysnb Geteuid() (euid int) = SYS_GETEUID32 ++//sysnb Getgid() (gid int) = SYS_GETGID32 ++//sysnb Getuid() (uid int) = SYS_GETUID32 ++//sysnb InotifyInit() (fd int, err error) ++//sys Ioperm(from int, num int, on int) (err error) ++//sys Iopl(level int) (err error) ++//sys Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32 ++//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 ++//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 ++//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 ++//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 ++//sys Setfsgid(gid int) (err error) = SYS_SETFSGID32 ++//sys Setfsuid(uid int) (err error) = SYS_SETFSUID32 ++//sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID32 ++//sysnb Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32 ++//sysnb Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32 ++//sysnb Setreuid(ruid int, euid int) (err error) = SYS_SETREUID32 ++//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) ++//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 ++//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) ++//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 ++//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32 ++//sysnb setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32 ++//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT ++ ++//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) ++//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) ++//sys Pause() (err error) ++ ++func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { ++ page := uintptr(offset / 4096) ++ if offset != int64(page)*4096 { ++ return 0, EINVAL ++ } ++ return mmap2(addr, length, prot, flags, fd, page) ++} ++ ++type rlimit32 struct { ++ Cur uint32 ++ Max uint32 ++} ++ ++//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT ++ ++const rlimInf32 = ^uint32(0) ++const rlimInf64 = ^uint64(0) ++ ++func Getrlimit(resource int, rlim *Rlimit) (err error) { ++ err = prlimit(0, resource, nil, rlim) ++ if err != ENOSYS { ++ return err ++ } ++ ++ rl := rlimit32{} ++ err = getrlimit(resource, &rl) ++ if err != nil { ++ return ++ } ++ ++ if rl.Cur == rlimInf32 { ++ rlim.Cur = rlimInf64 ++ } else { ++ rlim.Cur = uint64(rl.Cur) ++ } ++ ++ if rl.Max == rlimInf32 { ++ rlim.Max = rlimInf64 ++ } else { ++ rlim.Max = uint64(rl.Max) ++ } ++ return ++} ++ ++//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT ++ ++func Setrlimit(resource int, rlim *Rlimit) (err error) { ++ err = prlimit(0, resource, rlim, nil) ++ if err != ENOSYS { ++ return err ++ } ++ ++ rl := rlimit32{} ++ if rlim.Cur == rlimInf64 { ++ rl.Cur = rlimInf32 ++ } else if rlim.Cur < uint64(rlimInf32) { ++ rl.Cur = uint32(rlim.Cur) ++ } else { ++ return EINVAL ++ } ++ if rlim.Max == rlimInf64 { ++ rl.Max = rlimInf32 ++ } else if rlim.Max < uint64(rlimInf32) { ++ rl.Max = uint32(rlim.Max) ++ } else { ++ return EINVAL ++ } ++ ++ return setrlimit(resource, &rl) ++} ++ ++// Underlying system call writes to newoffset via pointer. ++// Implemented in assembly to avoid allocation. ++func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno) ++ ++func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { ++ newoffset, errno := seek(fd, offset, whence) ++ if errno != 0 { ++ return 0, errno ++ } ++ return newoffset, nil ++} ++ ++// Vsyscalls on amd64. ++//sysnb Gettimeofday(tv *Timeval) (err error) ++//sysnb Time(t *Time_t) (tt Time_t, err error) ++ ++//sys Utime(path string, buf *Utimbuf) (err error) ++ ++// On x86 Linux, all the socket calls go through an extra indirection, ++// I think because the 5-register system call interface can't handle ++// the 6-argument calls like sendto and recvfrom. Instead the ++// arguments to the underlying system call are the number below ++// and a pointer to an array of uintptr. We hide the pointer in the ++// socketcall assembly to avoid allocation on every system call. ++ ++const ( ++ // see linux/net.h ++ _SOCKET = 1 ++ _BIND = 2 ++ _CONNECT = 3 ++ _LISTEN = 4 ++ _ACCEPT = 5 ++ _GETSOCKNAME = 6 ++ _GETPEERNAME = 7 ++ _SOCKETPAIR = 8 ++ _SEND = 9 ++ _RECV = 10 ++ _SENDTO = 11 ++ _RECVFROM = 12 ++ _SHUTDOWN = 13 ++ _SETSOCKOPT = 14 ++ _GETSOCKOPT = 15 ++ _SENDMSG = 16 ++ _RECVMSG = 17 ++ _ACCEPT4 = 18 ++ _RECVMMSG = 19 ++ _SENDMMSG = 20 ++) ++ ++func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno) ++func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno) ++ ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { ++ fd, e := socketcall(_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) ++ if e != 0 { ++ err = e ++ } ++ return ++} ++ ++func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { ++ fd, e := socketcall(_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) ++ if e != 0 { ++ err = e ++ } ++ return ++} ++ ++func getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, e := rawsocketcall(_GETSOCKNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) ++ if e != 0 { ++ err = e ++ } ++ return ++} ++ ++func getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, e := rawsocketcall(_GETPEERNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) ++ if e != 0 { ++ err = e ++ } ++ return ++} ++ ++func socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) { ++ _, e := rawsocketcall(_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0) ++ if e != 0 { ++ err = e ++ } ++ return ++} ++ ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, e := socketcall(_BIND, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) ++ if e != 0 { ++ err = e ++ } ++ return ++} ++ ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, e := socketcall(_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) ++ if e != 0 { ++ err = e ++ } ++ return ++} ++ ++func socket(domain int, typ int, proto int) (fd int, err error) { ++ fd, e := rawsocketcall(_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0) ++ if e != 0 { ++ err = e ++ } ++ return ++} ++ ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { ++ _, e := socketcall(_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) ++ if e != 0 { ++ err = e ++ } ++ return ++} ++ ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { ++ _, e := socketcall(_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), vallen, 0) ++ if e != 0 { ++ err = e ++ } ++ return ++} ++ ++func recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { ++ var base uintptr ++ if len(p) > 0 { ++ base = uintptr(unsafe.Pointer(&p[0])) ++ } ++ n, e := socketcall(_RECVFROM, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ if e != 0 { ++ err = e ++ } ++ return ++} ++ ++func sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { ++ var base uintptr ++ if len(p) > 0 { ++ base = uintptr(unsafe.Pointer(&p[0])) ++ } ++ _, e := socketcall(_SENDTO, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen)) ++ if e != 0 { ++ err = e ++ } ++ return ++} ++ ++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ n, e := socketcall(_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) ++ if e != 0 { ++ err = e ++ } ++ return ++} ++ ++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ n, e := socketcall(_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) ++ if e != 0 { ++ err = e ++ } ++ return ++} ++ ++func Listen(s int, n int) (err error) { ++ _, e := socketcall(_LISTEN, uintptr(s), uintptr(n), 0, 0, 0, 0) ++ if e != 0 { ++ err = e ++ } ++ return ++} ++ ++func Shutdown(s, how int) (err error) { ++ _, e := socketcall(_SHUTDOWN, uintptr(s), uintptr(how), 0, 0, 0, 0) ++ if e != 0 { ++ err = e ++ } ++ return ++} ++ ++func Fstatfs(fd int, buf *Statfs_t) (err error) { ++ _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) ++ if e != 0 { ++ err = e ++ } ++ return ++} ++ ++func Statfs(path string, buf *Statfs_t) (err error) { ++ pathp, err := BytePtrFromString(path) ++ if err != nil { ++ return err ++ } ++ _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) ++ if e != 0 { ++ err = e ++ } ++ return ++} ++ ++func (r *PtraceRegs) PC() uint64 { return uint64(uint32(r.Eip)) } ++ ++func (r *PtraceRegs) SetPC(pc uint64) { r.Eip = int32(pc) } ++ ++func (iov *Iovec) SetLen(length int) { ++ iov.Len = uint32(length) ++} ++ ++func (msghdr *Msghdr) SetControllen(length int) { ++ msghdr.Controllen = uint32(length) ++} ++ ++func (cmsg *Cmsghdr) SetLen(length int) { ++ cmsg.Len = uint32(length) ++} ++ ++//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) ++ ++func Poll(fds []PollFd, timeout int) (n int, err error) { ++ if len(fds) == 0 { ++ return poll(nil, 0, timeout) ++ } ++ return poll(&fds[0], len(fds), timeout) ++} +diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go +new file mode 100644 +index 0000000..9516a3f +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go +@@ -0,0 +1,152 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build amd64,linux ++ ++package unix ++ ++//sys Dup2(oldfd int, newfd int) (err error) ++//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) ++//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 ++//sys Fchown(fd int, uid int, gid int) (err error) ++//sys Fstat(fd int, stat *Stat_t) (err error) ++//sys Fstatfs(fd int, buf *Statfs_t) (err error) ++//sys Ftruncate(fd int, length int64) (err error) ++//sysnb Getegid() (egid int) ++//sysnb Geteuid() (euid int) ++//sysnb Getgid() (gid int) ++//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) ++//sysnb Getuid() (uid int) ++//sysnb InotifyInit() (fd int, err error) ++//sys Ioperm(from int, num int, on int) (err error) ++//sys Iopl(level int) (err error) ++//sys Lchown(path string, uid int, gid int) (err error) ++//sys Listen(s int, n int) (err error) ++//sys Lstat(path string, stat *Stat_t) (err error) ++//sys Pause() (err error) ++//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 ++//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 ++//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK ++//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) ++//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) ++//sys Setfsgid(gid int) (err error) ++//sys Setfsuid(uid int) (err error) ++//sysnb Setregid(rgid int, egid int) (err error) ++//sysnb Setresgid(rgid int, egid int, sgid int) (err error) ++//sysnb Setresuid(ruid int, euid int, suid int) (err error) ++//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) ++//sysnb Setreuid(ruid int, euid int) (err error) ++//sys Shutdown(fd int, how int) (err error) ++//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) ++//sys Stat(path string, stat *Stat_t) (err error) ++//sys Statfs(path string, buf *Statfs_t) (err error) ++//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) ++//sys Truncate(path string, length int64) (err error) ++//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) ++//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) ++//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) ++//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) ++//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) ++//sysnb setgroups(n int, list *_Gid_t) (err error) ++//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) ++//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) ++//sysnb socket(domain int, typ int, proto int) (fd int, err error) ++//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) ++//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) ++//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) ++//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) ++//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) ++//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) ++//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) ++//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) ++ ++func Gettimeofday(tv *Timeval) (err error) { ++ errno := gettimeofday(tv) ++ if errno != 0 { ++ return errno ++ } ++ return nil ++} ++ ++func Getpagesize() int { return 4096 } ++ ++func Time(t *Time_t) (tt Time_t, err error) { ++ var tv Timeval ++ errno := gettimeofday(&tv) ++ if errno != 0 { ++ return 0, errno ++ } ++ if t != nil { ++ *t = Time_t(tv.Sec) ++ } ++ return Time_t(tv.Sec), nil ++} ++ ++//sys Utime(path string, buf *Utimbuf) (err error) ++ ++func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } ++ ++func NsecToTimespec(nsec int64) (ts Timespec) { ++ ts.Sec = nsec / 1e9 ++ ts.Nsec = nsec % 1e9 ++ return ++} ++ ++func NsecToTimeval(nsec int64) (tv Timeval) { ++ nsec += 999 // round up to microsecond ++ tv.Sec = nsec / 1e9 ++ tv.Usec = nsec % 1e9 / 1e3 ++ return ++} ++ ++//sysnb pipe(p *[2]_C_int) (err error) ++ ++func Pipe(p []int) (err error) { ++ if len(p) != 2 { ++ return EINVAL ++ } ++ var pp [2]_C_int ++ err = pipe(&pp) ++ p[0] = int(pp[0]) ++ p[1] = int(pp[1]) ++ return ++} ++ ++//sysnb pipe2(p *[2]_C_int, flags int) (err error) ++ ++func Pipe2(p []int, flags int) (err error) { ++ if len(p) != 2 { ++ return EINVAL ++ } ++ var pp [2]_C_int ++ err = pipe2(&pp, flags) ++ p[0] = int(pp[0]) ++ p[1] = int(pp[1]) ++ return ++} ++ ++func (r *PtraceRegs) PC() uint64 { return r.Rip } ++ ++func (r *PtraceRegs) SetPC(pc uint64) { r.Rip = pc } ++ ++func (iov *Iovec) SetLen(length int) { ++ iov.Len = uint64(length) ++} ++ ++func (msghdr *Msghdr) SetControllen(length int) { ++ msghdr.Controllen = uint64(length) ++} ++ ++func (cmsg *Cmsghdr) SetLen(length int) { ++ cmsg.Len = uint64(length) ++} ++ ++//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) ++ ++func Poll(fds []PollFd, timeout int) (n int, err error) { ++ if len(fds) == 0 { ++ return poll(nil, 0, timeout) ++ } ++ return poll(&fds[0], len(fds), timeout) ++} +diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go b/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go +new file mode 100644 +index 0000000..21a4946 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go +@@ -0,0 +1,13 @@ ++// Copyright 2016 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build amd64,linux ++// +build !gccgo ++ ++package unix ++ ++import "syscall" ++ ++//go:noescape ++func gettimeofday(tv *Timeval) (err syscall.Errno) +diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go +new file mode 100644 +index 0000000..71d8702 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm.go +@@ -0,0 +1,263 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build arm,linux ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++func Getpagesize() int { return 4096 } ++ ++func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } ++ ++func NsecToTimespec(nsec int64) (ts Timespec) { ++ ts.Sec = int32(nsec / 1e9) ++ ts.Nsec = int32(nsec % 1e9) ++ return ++} ++ ++func NsecToTimeval(nsec int64) (tv Timeval) { ++ nsec += 999 // round up to microsecond ++ tv.Sec = int32(nsec / 1e9) ++ tv.Usec = int32(nsec % 1e9 / 1e3) ++ return ++} ++ ++func Pipe(p []int) (err error) { ++ if len(p) != 2 { ++ return EINVAL ++ } ++ var pp [2]_C_int ++ err = pipe2(&pp, 0) ++ p[0] = int(pp[0]) ++ p[1] = int(pp[1]) ++ return ++} ++ ++//sysnb pipe2(p *[2]_C_int, flags int) (err error) ++ ++func Pipe2(p []int, flags int) (err error) { ++ if len(p) != 2 { ++ return EINVAL ++ } ++ var pp [2]_C_int ++ err = pipe2(&pp, flags) ++ p[0] = int(pp[0]) ++ p[1] = int(pp[1]) ++ return ++} ++ ++// Underlying system call writes to newoffset via pointer. ++// Implemented in assembly to avoid allocation. ++func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno) ++ ++func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { ++ newoffset, errno := seek(fd, offset, whence) ++ if errno != 0 { ++ return 0, errno ++ } ++ return newoffset, nil ++} ++ ++//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) ++//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) ++//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) ++//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) ++//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32 ++//sysnb setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32 ++//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) ++//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) ++//sysnb socket(domain int, typ int, proto int) (fd int, err error) ++//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) ++//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) ++//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) ++//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) ++//sysnb socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) ++//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) ++//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) ++ ++// 64-bit file system and 32-bit uid calls ++// (16-bit uid calls are not always supported in newer kernels) ++//sys Dup2(oldfd int, newfd int) (err error) ++//sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32 ++//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 ++//sysnb Getegid() (egid int) = SYS_GETEGID32 ++//sysnb Geteuid() (euid int) = SYS_GETEUID32 ++//sysnb Getgid() (gid int) = SYS_GETGID32 ++//sysnb Getuid() (uid int) = SYS_GETUID32 ++//sysnb InotifyInit() (fd int, err error) ++//sys Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32 ++//sys Listen(s int, n int) (err error) ++//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 ++//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 ++//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT ++//sys Setfsgid(gid int) (err error) = SYS_SETFSGID32 ++//sys Setfsuid(uid int) (err error) = SYS_SETFSUID32 ++//sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID32 ++//sysnb Setresgid(rgid int, egid int, sgid int) (err error) = SYS_SETRESGID32 ++//sysnb Setresuid(ruid int, euid int, suid int) (err error) = SYS_SETRESUID32 ++//sysnb Setreuid(ruid int, euid int) (err error) = SYS_SETREUID32 ++//sys Shutdown(fd int, how int) (err error) ++//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) ++//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 ++ ++// Vsyscalls on amd64. ++//sysnb Gettimeofday(tv *Timeval) (err error) ++//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) ++//sys Pause() (err error) ++ ++func Time(t *Time_t) (Time_t, error) { ++ var tv Timeval ++ err := Gettimeofday(&tv) ++ if err != nil { ++ return 0, err ++ } ++ if t != nil { ++ *t = Time_t(tv.Sec) ++ } ++ return Time_t(tv.Sec), nil ++} ++ ++func Utime(path string, buf *Utimbuf) error { ++ tv := []Timeval{ ++ {Sec: buf.Actime}, ++ {Sec: buf.Modtime}, ++ } ++ return Utimes(path, tv) ++} ++ ++//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 ++//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 ++//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 ++//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 ++ ++func Fadvise(fd int, offset int64, length int64, advice int) (err error) { ++ _, _, e1 := Syscall6(SYS_ARM_FADVISE64_64, uintptr(fd), uintptr(advice), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) ++ ++func Fstatfs(fd int, buf *Statfs_t) (err error) { ++ _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) ++ if e != 0 { ++ err = e ++ } ++ return ++} ++ ++func Statfs(path string, buf *Statfs_t) (err error) { ++ pathp, err := BytePtrFromString(path) ++ if err != nil { ++ return err ++ } ++ _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) ++ if e != 0 { ++ err = e ++ } ++ return ++} ++ ++func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { ++ page := uintptr(offset / 4096) ++ if offset != int64(page)*4096 { ++ return 0, EINVAL ++ } ++ return mmap2(addr, length, prot, flags, fd, page) ++} ++ ++type rlimit32 struct { ++ Cur uint32 ++ Max uint32 ++} ++ ++//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT ++ ++const rlimInf32 = ^uint32(0) ++const rlimInf64 = ^uint64(0) ++ ++func Getrlimit(resource int, rlim *Rlimit) (err error) { ++ err = prlimit(0, resource, nil, rlim) ++ if err != ENOSYS { ++ return err ++ } ++ ++ rl := rlimit32{} ++ err = getrlimit(resource, &rl) ++ if err != nil { ++ return ++ } ++ ++ if rl.Cur == rlimInf32 { ++ rlim.Cur = rlimInf64 ++ } else { ++ rlim.Cur = uint64(rl.Cur) ++ } ++ ++ if rl.Max == rlimInf32 { ++ rlim.Max = rlimInf64 ++ } else { ++ rlim.Max = uint64(rl.Max) ++ } ++ return ++} ++ ++//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT ++ ++func Setrlimit(resource int, rlim *Rlimit) (err error) { ++ err = prlimit(0, resource, rlim, nil) ++ if err != ENOSYS { ++ return err ++ } ++ ++ rl := rlimit32{} ++ if rlim.Cur == rlimInf64 { ++ rl.Cur = rlimInf32 ++ } else if rlim.Cur < uint64(rlimInf32) { ++ rl.Cur = uint32(rlim.Cur) ++ } else { ++ return EINVAL ++ } ++ if rlim.Max == rlimInf64 { ++ rl.Max = rlimInf32 ++ } else if rlim.Max < uint64(rlimInf32) { ++ rl.Max = uint32(rlim.Max) ++ } else { ++ return EINVAL ++ } ++ ++ return setrlimit(resource, &rl) ++} ++ ++func (r *PtraceRegs) PC() uint64 { return uint64(r.Uregs[15]) } ++ ++func (r *PtraceRegs) SetPC(pc uint64) { r.Uregs[15] = uint32(pc) } ++ ++func (iov *Iovec) SetLen(length int) { ++ iov.Len = uint32(length) ++} ++ ++func (msghdr *Msghdr) SetControllen(length int) { ++ msghdr.Controllen = uint32(length) ++} ++ ++func (cmsg *Cmsghdr) SetLen(length int) { ++ cmsg.Len = uint32(length) ++} ++ ++//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) ++ ++func Poll(fds []PollFd, timeout int) (n int, err error) { ++ if len(fds) == 0 { ++ return poll(nil, 0, timeout) ++ } ++ return poll(&fds[0], len(fds), timeout) ++} +diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go +new file mode 100644 +index 0000000..4a13639 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go +@@ -0,0 +1,190 @@ ++// Copyright 2015 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build arm64,linux ++ ++package unix ++ ++//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT ++//sys Fchown(fd int, uid int, gid int) (err error) ++//sys Fstat(fd int, stat *Stat_t) (err error) ++//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) ++//sys Fstatfs(fd int, buf *Statfs_t) (err error) ++//sys Ftruncate(fd int, length int64) (err error) ++//sysnb Getegid() (egid int) ++//sysnb Geteuid() (euid int) ++//sysnb Getgid() (gid int) ++//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) ++//sysnb Getuid() (uid int) ++//sys Listen(s int, n int) (err error) ++//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 ++//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 ++//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK ++//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS_PSELECT6 ++//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) ++//sys Setfsgid(gid int) (err error) ++//sys Setfsuid(uid int) (err error) ++//sysnb Setregid(rgid int, egid int) (err error) ++//sysnb Setresgid(rgid int, egid int, sgid int) (err error) ++//sysnb Setresuid(ruid int, euid int, suid int) (err error) ++//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) ++//sysnb Setreuid(ruid int, euid int) (err error) ++//sys Shutdown(fd int, how int) (err error) ++//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) ++ ++func Stat(path string, stat *Stat_t) (err error) { ++ return Fstatat(AT_FDCWD, path, stat, 0) ++} ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ return Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW) ++} ++ ++func Lstat(path string, stat *Stat_t) (err error) { ++ return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) ++} ++ ++//sys Statfs(path string, buf *Statfs_t) (err error) ++//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) ++//sys Truncate(path string, length int64) (err error) ++//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) ++//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) ++//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) ++//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) ++//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) ++//sysnb setgroups(n int, list *_Gid_t) (err error) ++//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) ++//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) ++//sysnb socket(domain int, typ int, proto int) (fd int, err error) ++//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) ++//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) ++//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) ++//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) ++//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) ++//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) ++//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) ++//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) ++ ++func Getpagesize() int { return 65536 } ++ ++//sysnb Gettimeofday(tv *Timeval) (err error) ++ ++func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } ++ ++func NsecToTimespec(nsec int64) (ts Timespec) { ++ ts.Sec = nsec / 1e9 ++ ts.Nsec = nsec % 1e9 ++ return ++} ++ ++func NsecToTimeval(nsec int64) (tv Timeval) { ++ nsec += 999 // round up to microsecond ++ tv.Sec = nsec / 1e9 ++ tv.Usec = nsec % 1e9 / 1e3 ++ return ++} ++ ++func Time(t *Time_t) (Time_t, error) { ++ var tv Timeval ++ err := Gettimeofday(&tv) ++ if err != nil { ++ return 0, err ++ } ++ if t != nil { ++ *t = Time_t(tv.Sec) ++ } ++ return Time_t(tv.Sec), nil ++} ++ ++func Utime(path string, buf *Utimbuf) error { ++ tv := []Timeval{ ++ {Sec: buf.Actime}, ++ {Sec: buf.Modtime}, ++ } ++ return Utimes(path, tv) ++} ++ ++func Pipe(p []int) (err error) { ++ if len(p) != 2 { ++ return EINVAL ++ } ++ var pp [2]_C_int ++ err = pipe2(&pp, 0) ++ p[0] = int(pp[0]) ++ p[1] = int(pp[1]) ++ return ++} ++ ++//sysnb pipe2(p *[2]_C_int, flags int) (err error) ++ ++func Pipe2(p []int, flags int) (err error) { ++ if len(p) != 2 { ++ return EINVAL ++ } ++ var pp [2]_C_int ++ err = pipe2(&pp, flags) ++ p[0] = int(pp[0]) ++ p[1] = int(pp[1]) ++ return ++} ++ ++func (r *PtraceRegs) PC() uint64 { return r.Pc } ++ ++func (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc } ++ ++func (iov *Iovec) SetLen(length int) { ++ iov.Len = uint64(length) ++} ++ ++func (msghdr *Msghdr) SetControllen(length int) { ++ msghdr.Controllen = uint64(length) ++} ++ ++func (cmsg *Cmsghdr) SetLen(length int) { ++ cmsg.Len = uint64(length) ++} ++ ++func InotifyInit() (fd int, err error) { ++ return InotifyInit1(0) ++} ++ ++func Dup2(oldfd int, newfd int) (err error) { ++ return Dup3(oldfd, newfd, 0) ++} ++ ++func Pause() (err error) { ++ _, _, e1 := Syscall6(SYS_PPOLL, 0, 0, 0, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// TODO(dfc): constants that should be in zsysnum_linux_arm64.go, remove ++// these when the deprecated syscalls that the syscall package relies on ++// are removed. ++const ( ++ SYS_GETPGRP = 1060 ++ SYS_UTIMES = 1037 ++ SYS_FUTIMESAT = 1066 ++ SYS_PAUSE = 1061 ++ SYS_USTAT = 1070 ++ SYS_UTIME = 1063 ++ SYS_LCHOWN = 1032 ++ SYS_TIME = 1062 ++ SYS_EPOLL_CREATE = 1042 ++ SYS_EPOLL_WAIT = 1069 ++) ++ ++func Poll(fds []PollFd, timeout int) (n int, err error) { ++ var ts *Timespec ++ if timeout >= 0 { ++ ts = new(Timespec) ++ *ts = NsecToTimespec(int64(timeout) * 1e6) ++ } ++ if len(fds) == 0 { ++ return ppoll(nil, 0, ts, nil) ++ } ++ return ppoll(&fds[0], len(fds), ts, nil) ++} +diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go +new file mode 100644 +index 0000000..8119fde +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go +@@ -0,0 +1,208 @@ ++// Copyright 2015 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build linux ++// +build mips64 mips64le ++ ++package unix ++ ++//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) ++//sys Fchown(fd int, uid int, gid int) (err error) ++//sys Fstatfs(fd int, buf *Statfs_t) (err error) ++//sys Ftruncate(fd int, length int64) (err error) ++//sysnb Getegid() (egid int) ++//sysnb Geteuid() (euid int) ++//sysnb Getgid() (gid int) ++//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) ++//sysnb Getuid() (uid int) ++//sys Lchown(path string, uid int, gid int) (err error) ++//sys Listen(s int, n int) (err error) ++//sys Pause() (err error) ++//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 ++//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 ++//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK ++//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS_PSELECT6 ++//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) ++//sys Setfsgid(gid int) (err error) ++//sys Setfsuid(uid int) (err error) ++//sysnb Setregid(rgid int, egid int) (err error) ++//sysnb Setresgid(rgid int, egid int, sgid int) (err error) ++//sysnb Setresuid(ruid int, euid int, suid int) (err error) ++//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) ++//sysnb Setreuid(ruid int, euid int) (err error) ++//sys Shutdown(fd int, how int) (err error) ++//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) ++//sys Statfs(path string, buf *Statfs_t) (err error) ++//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) ++//sys Truncate(path string, length int64) (err error) ++//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) ++//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) ++//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) ++//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) ++//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) ++//sysnb setgroups(n int, list *_Gid_t) (err error) ++//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) ++//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) ++//sysnb socket(domain int, typ int, proto int) (fd int, err error) ++//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) ++//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) ++//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) ++//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) ++//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) ++//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) ++//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) ++//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) ++ ++func Getpagesize() int { return 65536 } ++ ++//sysnb Gettimeofday(tv *Timeval) (err error) ++ ++func Time(t *Time_t) (tt Time_t, err error) { ++ var tv Timeval ++ err = Gettimeofday(&tv) ++ if err != nil { ++ return 0, err ++ } ++ if t != nil { ++ *t = Time_t(tv.Sec) ++ } ++ return Time_t(tv.Sec), nil ++} ++ ++//sys Utime(path string, buf *Utimbuf) (err error) ++ ++func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } ++ ++func NsecToTimespec(nsec int64) (ts Timespec) { ++ ts.Sec = nsec / 1e9 ++ ts.Nsec = nsec % 1e9 ++ return ++} ++ ++func NsecToTimeval(nsec int64) (tv Timeval) { ++ nsec += 999 // round up to microsecond ++ tv.Sec = nsec / 1e9 ++ tv.Usec = nsec % 1e9 / 1e3 ++ return ++} ++ ++func Pipe(p []int) (err error) { ++ if len(p) != 2 { ++ return EINVAL ++ } ++ var pp [2]_C_int ++ err = pipe2(&pp, 0) ++ p[0] = int(pp[0]) ++ p[1] = int(pp[1]) ++ return ++} ++ ++//sysnb pipe2(p *[2]_C_int, flags int) (err error) ++ ++func Pipe2(p []int, flags int) (err error) { ++ if len(p) != 2 { ++ return EINVAL ++ } ++ var pp [2]_C_int ++ err = pipe2(&pp, flags) ++ p[0] = int(pp[0]) ++ p[1] = int(pp[1]) ++ return ++} ++ ++func Ioperm(from int, num int, on int) (err error) { ++ return ENOSYS ++} ++ ++func Iopl(level int) (err error) { ++ return ENOSYS ++} ++ ++type stat_t struct { ++ Dev uint32 ++ Pad0 [3]int32 ++ Ino uint64 ++ Mode uint32 ++ Nlink uint32 ++ Uid uint32 ++ Gid uint32 ++ Rdev uint32 ++ Pad1 [3]uint32 ++ Size int64 ++ Atime uint32 ++ Atime_nsec uint32 ++ Mtime uint32 ++ Mtime_nsec uint32 ++ Ctime uint32 ++ Ctime_nsec uint32 ++ Blksize uint32 ++ Pad2 uint32 ++ Blocks int64 ++} ++ ++//sys fstat(fd int, st *stat_t) (err error) ++//sys lstat(path string, st *stat_t) (err error) ++//sys stat(path string, st *stat_t) (err error) ++ ++func Fstat(fd int, s *Stat_t) (err error) { ++ st := &stat_t{} ++ err = fstat(fd, st) ++ fillStat_t(s, st) ++ return ++} ++ ++func Lstat(path string, s *Stat_t) (err error) { ++ st := &stat_t{} ++ err = lstat(path, st) ++ fillStat_t(s, st) ++ return ++} ++ ++func Stat(path string, s *Stat_t) (err error) { ++ st := &stat_t{} ++ err = stat(path, st) ++ fillStat_t(s, st) ++ return ++} ++ ++func fillStat_t(s *Stat_t, st *stat_t) { ++ s.Dev = st.Dev ++ s.Ino = st.Ino ++ s.Mode = st.Mode ++ s.Nlink = st.Nlink ++ s.Uid = st.Uid ++ s.Gid = st.Gid ++ s.Rdev = st.Rdev ++ s.Size = st.Size ++ s.Atim = Timespec{int64(st.Atime), int64(st.Atime_nsec)} ++ s.Mtim = Timespec{int64(st.Mtime), int64(st.Mtime_nsec)} ++ s.Ctim = Timespec{int64(st.Ctime), int64(st.Ctime_nsec)} ++ s.Blksize = st.Blksize ++ s.Blocks = st.Blocks ++} ++ ++func (r *PtraceRegs) PC() uint64 { return r.Regs[64] } ++ ++func (r *PtraceRegs) SetPC(pc uint64) { r.Regs[64] = pc } ++ ++func (iov *Iovec) SetLen(length int) { ++ iov.Len = uint64(length) ++} ++ ++func (msghdr *Msghdr) SetControllen(length int) { ++ msghdr.Controllen = uint64(length) ++} ++ ++func (cmsg *Cmsghdr) SetLen(length int) { ++ cmsg.Len = uint64(length) ++} ++ ++//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) ++ ++func Poll(fds []PollFd, timeout int) (n int, err error) { ++ if len(fds) == 0 { ++ return poll(nil, 0, timeout) ++ } ++ return poll(&fds[0], len(fds), timeout) ++} +diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go +new file mode 100644 +index 0000000..be77d24 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go +@@ -0,0 +1,239 @@ ++// Copyright 2016 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build linux ++// +build mips mipsle ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) ++ ++//sys Dup2(oldfd int, newfd int) (err error) ++//sys Fchown(fd int, uid int, gid int) (err error) ++//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 ++//sysnb Getegid() (egid int) ++//sysnb Geteuid() (euid int) ++//sysnb Getgid() (gid int) ++//sysnb Getuid() (uid int) ++//sys Lchown(path string, uid int, gid int) (err error) ++//sys Listen(s int, n int) (err error) ++//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 ++//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 ++//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT ++//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 ++//sys Setfsgid(gid int) (err error) ++//sys Setfsuid(uid int) (err error) ++//sysnb Setregid(rgid int, egid int) (err error) ++//sysnb Setresgid(rgid int, egid int, sgid int) (err error) ++//sysnb Setresuid(ruid int, euid int, suid int) (err error) ++ ++//sysnb Setreuid(ruid int, euid int) (err error) ++//sys Shutdown(fd int, how int) (err error) ++//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) ++ ++//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) ++//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 ++//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) ++//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) ++//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) ++//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) ++//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) ++//sysnb setgroups(n int, list *_Gid_t) (err error) ++//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) ++//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) ++//sysnb socket(domain int, typ int, proto int) (fd int, err error) ++//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) ++//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) ++//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) ++//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) ++//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) ++//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) ++//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) ++ ++//sysnb InotifyInit() (fd int, err error) ++//sys Ioperm(from int, num int, on int) (err error) ++//sys Iopl(level int) (err error) ++ ++//sysnb Gettimeofday(tv *Timeval) (err error) ++//sysnb Time(t *Time_t) (tt Time_t, err error) ++ ++//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 ++//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 ++//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 ++ ++//sys Utime(path string, buf *Utimbuf) (err error) ++//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) ++//sys Pause() (err error) ++ ++func Fstatfs(fd int, buf *Statfs_t) (err error) { ++ _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) ++ if e != 0 { ++ err = errnoErr(e) ++ } ++ return ++} ++ ++func Statfs(path string, buf *Statfs_t) (err error) { ++ p, err := BytePtrFromString(path) ++ if err != nil { ++ return err ++ } ++ _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(p)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) ++ if e != 0 { ++ err = errnoErr(e) ++ } ++ return ++} ++ ++func Seek(fd int, offset int64, whence int) (off int64, err error) { ++ _, _, e := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offset>>32), uintptr(offset), uintptr(unsafe.Pointer(&off)), uintptr(whence), 0) ++ if e != 0 { ++ err = errnoErr(e) ++ } ++ return ++} ++ ++func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } ++ ++func NsecToTimespec(nsec int64) (ts Timespec) { ++ ts.Sec = int32(nsec / 1e9) ++ ts.Nsec = int32(nsec % 1e9) ++ return ++} ++ ++func NsecToTimeval(nsec int64) (tv Timeval) { ++ nsec += 999 // round up to microsecond ++ tv.Sec = int32(nsec / 1e9) ++ tv.Usec = int32(nsec % 1e9 / 1e3) ++ return ++} ++ ++//sysnb pipe2(p *[2]_C_int, flags int) (err error) ++ ++func Pipe2(p []int, flags int) (err error) { ++ if len(p) != 2 { ++ return EINVAL ++ } ++ var pp [2]_C_int ++ err = pipe2(&pp, flags) ++ p[0] = int(pp[0]) ++ p[1] = int(pp[1]) ++ return ++} ++ ++func Pipe(p []int) (err error) { ++ if len(p) != 2 { ++ return EINVAL ++ } ++ var pp [2]_C_int ++ err = pipe2(&pp, 0) ++ p[0] = int(pp[0]) ++ p[1] = int(pp[1]) ++ return ++} ++ ++//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) ++ ++func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { ++ page := uintptr(offset / 4096) ++ if offset != int64(page)*4096 { ++ return 0, EINVAL ++ } ++ return mmap2(addr, length, prot, flags, fd, page) ++} ++ ++const rlimInf32 = ^uint32(0) ++const rlimInf64 = ^uint64(0) ++ ++type rlimit32 struct { ++ Cur uint32 ++ Max uint32 ++} ++ ++//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT ++ ++func Getrlimit(resource int, rlim *Rlimit) (err error) { ++ err = prlimit(0, resource, nil, rlim) ++ if err != ENOSYS { ++ return err ++ } ++ ++ rl := rlimit32{} ++ err = getrlimit(resource, &rl) ++ if err != nil { ++ return ++ } ++ ++ if rl.Cur == rlimInf32 { ++ rlim.Cur = rlimInf64 ++ } else { ++ rlim.Cur = uint64(rl.Cur) ++ } ++ ++ if rl.Max == rlimInf32 { ++ rlim.Max = rlimInf64 ++ } else { ++ rlim.Max = uint64(rl.Max) ++ } ++ return ++} ++ ++//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT ++ ++func Setrlimit(resource int, rlim *Rlimit) (err error) { ++ err = prlimit(0, resource, rlim, nil) ++ if err != ENOSYS { ++ return err ++ } ++ ++ rl := rlimit32{} ++ if rlim.Cur == rlimInf64 { ++ rl.Cur = rlimInf32 ++ } else if rlim.Cur < uint64(rlimInf32) { ++ rl.Cur = uint32(rlim.Cur) ++ } else { ++ return EINVAL ++ } ++ if rlim.Max == rlimInf64 { ++ rl.Max = rlimInf32 ++ } else if rlim.Max < uint64(rlimInf32) { ++ rl.Max = uint32(rlim.Max) ++ } else { ++ return EINVAL ++ } ++ ++ return setrlimit(resource, &rl) ++} ++ ++func (r *PtraceRegs) PC() uint64 { return uint64(r.Regs[64]) } ++ ++func (r *PtraceRegs) SetPC(pc uint64) { r.Regs[64] = uint32(pc) } ++ ++func (iov *Iovec) SetLen(length int) { ++ iov.Len = uint32(length) ++} ++ ++func (msghdr *Msghdr) SetControllen(length int) { ++ msghdr.Controllen = uint32(length) ++} ++ ++func (cmsg *Cmsghdr) SetLen(length int) { ++ cmsg.Len = uint32(length) ++} ++ ++//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) ++ ++func Poll(fds []PollFd, timeout int) (n int, err error) { ++ if len(fds) == 0 { ++ return poll(nil, 0, timeout) ++ } ++ return poll(&fds[0], len(fds), timeout) ++} ++ ++func Getpagesize() int { return 4096 } +diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go +new file mode 100644 +index 0000000..60770f6 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go +@@ -0,0 +1,135 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build linux ++// +build ppc64 ppc64le ++ ++package unix ++ ++//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) ++//sys Dup2(oldfd int, newfd int) (err error) ++//sys Fchown(fd int, uid int, gid int) (err error) ++//sys Fstat(fd int, stat *Stat_t) (err error) ++//sys Fstatfs(fd int, buf *Statfs_t) (err error) ++//sys Ftruncate(fd int, length int64) (err error) ++//sysnb Getegid() (egid int) ++//sysnb Geteuid() (euid int) ++//sysnb Getgid() (gid int) ++//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) = SYS_UGETRLIMIT ++//sysnb Getuid() (uid int) ++//sysnb InotifyInit() (fd int, err error) ++//sys Ioperm(from int, num int, on int) (err error) ++//sys Iopl(level int) (err error) ++//sys Lchown(path string, uid int, gid int) (err error) ++//sys Listen(s int, n int) (err error) ++//sys Lstat(path string, stat *Stat_t) (err error) ++//sys Pause() (err error) ++//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 ++//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 ++//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK ++//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) ++//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) ++//sys Setfsgid(gid int) (err error) ++//sys Setfsuid(uid int) (err error) ++//sysnb Setregid(rgid int, egid int) (err error) ++//sysnb Setresgid(rgid int, egid int, sgid int) (err error) ++//sysnb Setresuid(ruid int, euid int, suid int) (err error) ++//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) ++//sysnb Setreuid(ruid int, euid int) (err error) ++//sys Shutdown(fd int, how int) (err error) ++//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) ++//sys Stat(path string, stat *Stat_t) (err error) ++//sys Statfs(path string, buf *Statfs_t) (err error) ++//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) = SYS_SYNC_FILE_RANGE2 ++//sys Truncate(path string, length int64) (err error) ++//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) ++//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) ++//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) ++//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) ++//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) ++//sysnb setgroups(n int, list *_Gid_t) (err error) ++//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) ++//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) ++//sysnb socket(domain int, typ int, proto int) (fd int, err error) ++//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) ++//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) ++//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) ++//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) ++//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) ++//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) ++//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) ++//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) ++ ++func Getpagesize() int { return 65536 } ++ ++//sysnb Gettimeofday(tv *Timeval) (err error) ++//sysnb Time(t *Time_t) (tt Time_t, err error) ++ ++//sys Utime(path string, buf *Utimbuf) (err error) ++ ++func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } ++ ++func NsecToTimespec(nsec int64) (ts Timespec) { ++ ts.Sec = nsec / 1e9 ++ ts.Nsec = nsec % 1e9 ++ return ++} ++ ++func NsecToTimeval(nsec int64) (tv Timeval) { ++ nsec += 999 // round up to microsecond ++ tv.Sec = nsec / 1e9 ++ tv.Usec = nsec % 1e9 / 1e3 ++ return ++} ++ ++func (r *PtraceRegs) PC() uint64 { return r.Nip } ++ ++func (r *PtraceRegs) SetPC(pc uint64) { r.Nip = pc } ++ ++func (iov *Iovec) SetLen(length int) { ++ iov.Len = uint64(length) ++} ++ ++func (msghdr *Msghdr) SetControllen(length int) { ++ msghdr.Controllen = uint64(length) ++} ++ ++func (cmsg *Cmsghdr) SetLen(length int) { ++ cmsg.Len = uint64(length) ++} ++ ++//sysnb pipe(p *[2]_C_int) (err error) ++ ++func Pipe(p []int) (err error) { ++ if len(p) != 2 { ++ return EINVAL ++ } ++ var pp [2]_C_int ++ err = pipe(&pp) ++ p[0] = int(pp[0]) ++ p[1] = int(pp[1]) ++ return ++} ++ ++//sysnb pipe2(p *[2]_C_int, flags int) (err error) ++ ++func Pipe2(p []int, flags int) (err error) { ++ if len(p) != 2 { ++ return EINVAL ++ } ++ var pp [2]_C_int ++ err = pipe2(&pp, flags) ++ p[0] = int(pp[0]) ++ p[1] = int(pp[1]) ++ return ++} ++ ++//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) ++ ++func Poll(fds []PollFd, timeout int) (n int, err error) { ++ if len(fds) == 0 { ++ return poll(nil, 0, timeout) ++ } ++ return poll(&fds[0], len(fds), timeout) ++} +diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go +new file mode 100644 +index 0000000..1708a4b +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go +@@ -0,0 +1,328 @@ ++// Copyright 2016 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build s390x,linux ++ ++package unix ++ ++import ( ++ "unsafe" ++) ++ ++//sys Dup2(oldfd int, newfd int) (err error) ++//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) ++//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 ++//sys Fchown(fd int, uid int, gid int) (err error) ++//sys Fstat(fd int, stat *Stat_t) (err error) ++//sys Fstatfs(fd int, buf *Statfs_t) (err error) ++//sys Ftruncate(fd int, length int64) (err error) ++//sysnb Getegid() (egid int) ++//sysnb Geteuid() (euid int) ++//sysnb Getgid() (gid int) ++//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) ++//sysnb Getuid() (uid int) ++//sysnb InotifyInit() (fd int, err error) ++//sys Lchown(path string, uid int, gid int) (err error) ++//sys Lstat(path string, stat *Stat_t) (err error) ++//sys Pause() (err error) ++//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 ++//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 ++//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK ++//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) ++//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) ++//sys Setfsgid(gid int) (err error) ++//sys Setfsuid(uid int) (err error) ++//sysnb Setregid(rgid int, egid int) (err error) ++//sysnb Setresgid(rgid int, egid int, sgid int) (err error) ++//sysnb Setresuid(ruid int, euid int, suid int) (err error) ++//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) ++//sysnb Setreuid(ruid int, euid int) (err error) ++//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) ++//sys Stat(path string, stat *Stat_t) (err error) ++//sys Statfs(path string, buf *Statfs_t) (err error) ++//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) ++//sys Truncate(path string, length int64) (err error) ++//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) ++//sysnb setgroups(n int, list *_Gid_t) (err error) ++ ++func Getpagesize() int { return 4096 } ++ ++//sysnb Gettimeofday(tv *Timeval) (err error) ++ ++func Time(t *Time_t) (tt Time_t, err error) { ++ var tv Timeval ++ err = Gettimeofday(&tv) ++ if err != nil { ++ return 0, err ++ } ++ if t != nil { ++ *t = Time_t(tv.Sec) ++ } ++ return Time_t(tv.Sec), nil ++} ++ ++//sys Utime(path string, buf *Utimbuf) (err error) ++ ++func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } ++ ++func NsecToTimespec(nsec int64) (ts Timespec) { ++ ts.Sec = nsec / 1e9 ++ ts.Nsec = nsec % 1e9 ++ return ++} ++ ++func NsecToTimeval(nsec int64) (tv Timeval) { ++ nsec += 999 // round up to microsecond ++ tv.Sec = nsec / 1e9 ++ tv.Usec = nsec % 1e9 / 1e3 ++ return ++} ++ ++//sysnb pipe2(p *[2]_C_int, flags int) (err error) ++ ++func Pipe(p []int) (err error) { ++ if len(p) != 2 { ++ return EINVAL ++ } ++ var pp [2]_C_int ++ err = pipe2(&pp, 0) // pipe2 is the same as pipe when flags are set to 0. ++ p[0] = int(pp[0]) ++ p[1] = int(pp[1]) ++ return ++} ++ ++func Pipe2(p []int, flags int) (err error) { ++ if len(p) != 2 { ++ return EINVAL ++ } ++ var pp [2]_C_int ++ err = pipe2(&pp, flags) ++ p[0] = int(pp[0]) ++ p[1] = int(pp[1]) ++ return ++} ++ ++func Ioperm(from int, num int, on int) (err error) { ++ return ENOSYS ++} ++ ++func Iopl(level int) (err error) { ++ return ENOSYS ++} ++ ++func (r *PtraceRegs) PC() uint64 { return r.Psw.Addr } ++ ++func (r *PtraceRegs) SetPC(pc uint64) { r.Psw.Addr = pc } ++ ++func (iov *Iovec) SetLen(length int) { ++ iov.Len = uint64(length) ++} ++ ++func (msghdr *Msghdr) SetControllen(length int) { ++ msghdr.Controllen = uint64(length) ++} ++ ++func (cmsg *Cmsghdr) SetLen(length int) { ++ cmsg.Len = uint64(length) ++} ++ ++// Linux on s390x uses the old mmap interface, which requires arguments to be passed in a struct. ++// mmap2 also requires arguments to be passed in a struct; it is currently not exposed in . ++func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { ++ mmap_args := [6]uintptr{addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)} ++ r0, _, e1 := Syscall(SYS_MMAP, uintptr(unsafe.Pointer(&mmap_args[0])), 0, 0) ++ xaddr = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// On s390x Linux, all the socket calls go through an extra indirection. ++// The arguments to the underlying system call (SYS_SOCKETCALL) are the ++// number below and a pointer to an array of uintptr. ++const ( ++ // see linux/net.h ++ netSocket = 1 ++ netBind = 2 ++ netConnect = 3 ++ netListen = 4 ++ netAccept = 5 ++ netGetSockName = 6 ++ netGetPeerName = 7 ++ netSocketPair = 8 ++ netSend = 9 ++ netRecv = 10 ++ netSendTo = 11 ++ netRecvFrom = 12 ++ netShutdown = 13 ++ netSetSockOpt = 14 ++ netGetSockOpt = 15 ++ netSendMsg = 16 ++ netRecvMsg = 17 ++ netAccept4 = 18 ++ netRecvMMsg = 19 ++ netSendMMsg = 20 ++) ++ ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (int, error) { ++ args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))} ++ fd, _, err := Syscall(SYS_SOCKETCALL, netAccept, uintptr(unsafe.Pointer(&args)), 0) ++ if err != 0 { ++ return 0, err ++ } ++ return int(fd), nil ++} ++ ++func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (int, error) { ++ args := [4]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags)} ++ fd, _, err := Syscall(SYS_SOCKETCALL, netAccept4, uintptr(unsafe.Pointer(&args)), 0) ++ if err != 0 { ++ return 0, err ++ } ++ return int(fd), nil ++} ++ ++func getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error { ++ args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))} ++ _, _, err := RawSyscall(SYS_SOCKETCALL, netGetSockName, uintptr(unsafe.Pointer(&args)), 0) ++ if err != 0 { ++ return err ++ } ++ return nil ++} ++ ++func getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error { ++ args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))} ++ _, _, err := RawSyscall(SYS_SOCKETCALL, netGetPeerName, uintptr(unsafe.Pointer(&args)), 0) ++ if err != 0 { ++ return err ++ } ++ return nil ++} ++ ++func socketpair(domain int, typ int, flags int, fd *[2]int32) error { ++ args := [4]uintptr{uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd))} ++ _, _, err := RawSyscall(SYS_SOCKETCALL, netSocketPair, uintptr(unsafe.Pointer(&args)), 0) ++ if err != 0 { ++ return err ++ } ++ return nil ++} ++ ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) error { ++ args := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)} ++ _, _, err := Syscall(SYS_SOCKETCALL, netBind, uintptr(unsafe.Pointer(&args)), 0) ++ if err != 0 { ++ return err ++ } ++ return nil ++} ++ ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) error { ++ args := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)} ++ _, _, err := Syscall(SYS_SOCKETCALL, netConnect, uintptr(unsafe.Pointer(&args)), 0) ++ if err != 0 { ++ return err ++ } ++ return nil ++} ++ ++func socket(domain int, typ int, proto int) (int, error) { ++ args := [3]uintptr{uintptr(domain), uintptr(typ), uintptr(proto)} ++ fd, _, err := RawSyscall(SYS_SOCKETCALL, netSocket, uintptr(unsafe.Pointer(&args)), 0) ++ if err != 0 { ++ return 0, err ++ } ++ return int(fd), nil ++} ++ ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) error { ++ args := [5]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen))} ++ _, _, err := Syscall(SYS_SOCKETCALL, netGetSockOpt, uintptr(unsafe.Pointer(&args)), 0) ++ if err != 0 { ++ return err ++ } ++ return nil ++} ++ ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) error { ++ args := [4]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val)} ++ _, _, err := Syscall(SYS_SOCKETCALL, netSetSockOpt, uintptr(unsafe.Pointer(&args)), 0) ++ if err != 0 { ++ return err ++ } ++ return nil ++} ++ ++func recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (int, error) { ++ var base uintptr ++ if len(p) > 0 { ++ base = uintptr(unsafe.Pointer(&p[0])) ++ } ++ args := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))} ++ n, _, err := Syscall(SYS_SOCKETCALL, netRecvFrom, uintptr(unsafe.Pointer(&args)), 0) ++ if err != 0 { ++ return 0, err ++ } ++ return int(n), nil ++} ++ ++func sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) error { ++ var base uintptr ++ if len(p) > 0 { ++ base = uintptr(unsafe.Pointer(&p[0])) ++ } ++ args := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen)} ++ _, _, err := Syscall(SYS_SOCKETCALL, netSendTo, uintptr(unsafe.Pointer(&args)), 0) ++ if err != 0 { ++ return err ++ } ++ return nil ++} ++ ++func recvmsg(s int, msg *Msghdr, flags int) (int, error) { ++ args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)} ++ n, _, err := Syscall(SYS_SOCKETCALL, netRecvMsg, uintptr(unsafe.Pointer(&args)), 0) ++ if err != 0 { ++ return 0, err ++ } ++ return int(n), nil ++} ++ ++func sendmsg(s int, msg *Msghdr, flags int) (int, error) { ++ args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)} ++ n, _, err := Syscall(SYS_SOCKETCALL, netSendMsg, uintptr(unsafe.Pointer(&args)), 0) ++ if err != 0 { ++ return 0, err ++ } ++ return int(n), nil ++} ++ ++func Listen(s int, n int) error { ++ args := [2]uintptr{uintptr(s), uintptr(n)} ++ _, _, err := Syscall(SYS_SOCKETCALL, netListen, uintptr(unsafe.Pointer(&args)), 0) ++ if err != 0 { ++ return err ++ } ++ return nil ++} ++ ++func Shutdown(s, how int) error { ++ args := [2]uintptr{uintptr(s), uintptr(how)} ++ _, _, err := Syscall(SYS_SOCKETCALL, netShutdown, uintptr(unsafe.Pointer(&args)), 0) ++ if err != 0 { ++ return err ++ } ++ return nil ++} ++ ++//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) ++ ++func Poll(fds []PollFd, timeout int) (n int, err error) { ++ if len(fds) == 0 { ++ return poll(nil, 0, timeout) ++ } ++ return poll(&fds[0], len(fds), timeout) ++} +diff --git a/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go +new file mode 100644 +index 0000000..20b7454 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go +@@ -0,0 +1,169 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build sparc64,linux ++ ++package unix ++ ++import ( ++ "sync/atomic" ++ "syscall" ++) ++ ++//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) ++//sys Dup2(oldfd int, newfd int) (err error) ++//sys Fchown(fd int, uid int, gid int) (err error) ++//sys Fstat(fd int, stat *Stat_t) (err error) ++//sys Fstatfs(fd int, buf *Statfs_t) (err error) ++//sys Ftruncate(fd int, length int64) (err error) ++//sysnb Getegid() (egid int) ++//sysnb Geteuid() (euid int) ++//sysnb Getgid() (gid int) ++//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) ++//sysnb Getuid() (uid int) ++//sysnb InotifyInit() (fd int, err error) ++//sys Lchown(path string, uid int, gid int) (err error) ++//sys Listen(s int, n int) (err error) ++//sys Lstat(path string, stat *Stat_t) (err error) ++//sys Pause() (err error) ++//sys Pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 ++//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 ++//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK ++//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) ++//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) ++//sys Setfsgid(gid int) (err error) ++//sys Setfsuid(uid int) (err error) ++//sysnb Setregid(rgid int, egid int) (err error) ++//sysnb Setresgid(rgid int, egid int, sgid int) (err error) ++//sysnb Setresuid(ruid int, euid int, suid int) (err error) ++//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) ++//sysnb Setreuid(ruid int, euid int) (err error) ++//sys Shutdown(fd int, how int) (err error) ++//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) ++//sys Stat(path string, stat *Stat_t) (err error) ++//sys Statfs(path string, buf *Statfs_t) (err error) ++//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) ++//sys Truncate(path string, length int64) (err error) ++//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) ++//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) ++//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) ++//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) ++//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) ++//sysnb setgroups(n int, list *_Gid_t) (err error) ++//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) ++//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) ++//sysnb socket(domain int, typ int, proto int) (fd int, err error) ++//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) ++//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) ++//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) ++//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) ++//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) ++//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) ++//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) ++//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) ++ ++func sysconf(name int) (n int64, err syscall.Errno) ++ ++// pageSize caches the value of Getpagesize, since it can't change ++// once the system is booted. ++var pageSize int64 // accessed atomically ++ ++func Getpagesize() int { ++ n := atomic.LoadInt64(&pageSize) ++ if n == 0 { ++ n, _ = sysconf(_SC_PAGESIZE) ++ atomic.StoreInt64(&pageSize, n) ++ } ++ return int(n) ++} ++ ++func Ioperm(from int, num int, on int) (err error) { ++ return ENOSYS ++} ++ ++func Iopl(level int) (err error) { ++ return ENOSYS ++} ++ ++//sysnb Gettimeofday(tv *Timeval) (err error) ++ ++func Time(t *Time_t) (tt Time_t, err error) { ++ var tv Timeval ++ err = Gettimeofday(&tv) ++ if err != nil { ++ return 0, err ++ } ++ if t != nil { ++ *t = Time_t(tv.Sec) ++ } ++ return Time_t(tv.Sec), nil ++} ++ ++//sys Utime(path string, buf *Utimbuf) (err error) ++ ++func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } ++ ++func NsecToTimespec(nsec int64) (ts Timespec) { ++ ts.Sec = nsec / 1e9 ++ ts.Nsec = nsec % 1e9 ++ return ++} ++ ++func NsecToTimeval(nsec int64) (tv Timeval) { ++ nsec += 999 // round up to microsecond ++ tv.Sec = nsec / 1e9 ++ tv.Usec = int32(nsec % 1e9 / 1e3) ++ return ++} ++ ++func (r *PtraceRegs) PC() uint64 { return r.Tpc } ++ ++func (r *PtraceRegs) SetPC(pc uint64) { r.Tpc = pc } ++ ++func (iov *Iovec) SetLen(length int) { ++ iov.Len = uint64(length) ++} ++ ++func (msghdr *Msghdr) SetControllen(length int) { ++ msghdr.Controllen = uint64(length) ++} ++ ++func (cmsg *Cmsghdr) SetLen(length int) { ++ cmsg.Len = uint64(length) ++} ++ ++//sysnb pipe(p *[2]_C_int) (err error) ++ ++func Pipe(p []int) (err error) { ++ if len(p) != 2 { ++ return EINVAL ++ } ++ var pp [2]_C_int ++ err = pipe(&pp) ++ p[0] = int(pp[0]) ++ p[1] = int(pp[1]) ++ return ++} ++ ++//sysnb pipe2(p *[2]_C_int, flags int) (err error) ++ ++func Pipe2(p []int, flags int) (err error) { ++ if len(p) != 2 { ++ return EINVAL ++ } ++ var pp [2]_C_int ++ err = pipe2(&pp, flags) ++ p[0] = int(pp[0]) ++ p[1] = int(pp[1]) ++ return ++} ++ ++//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) ++ ++func Poll(fds []PollFd, timeout int) (n int, err error) { ++ if len(fds) == 0 { ++ return poll(nil, 0, timeout) ++ } ++ return poll(&fds[0], len(fds), timeout) ++} +diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/vendor/golang.org/x/sys/unix/syscall_netbsd.go +new file mode 100644 +index 0000000..01f6a48 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_netbsd.go +@@ -0,0 +1,476 @@ ++// Copyright 2009,2010 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// NetBSD system calls. ++// This file is compiled as ordinary Go code, ++// but it is also input to mksyscall, ++// which parses the //sys lines and generates system call stubs. ++// Note that sometimes we use a lowercase //sys name and wrap ++// it in our own nicer implementation, either here or in ++// syscall_bsd.go or syscall_unix.go. ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++type SockaddrDatalink struct { ++ Len uint8 ++ Family uint8 ++ Index uint16 ++ Type uint8 ++ Nlen uint8 ++ Alen uint8 ++ Slen uint8 ++ Data [12]int8 ++ raw RawSockaddrDatalink ++} ++ ++func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) ++ ++func sysctlNodes(mib []_C_int) (nodes []Sysctlnode, err error) { ++ var olen uintptr ++ ++ // Get a list of all sysctl nodes below the given MIB by performing ++ // a sysctl for the given MIB with CTL_QUERY appended. ++ mib = append(mib, CTL_QUERY) ++ qnode := Sysctlnode{Flags: SYSCTL_VERS_1} ++ qp := (*byte)(unsafe.Pointer(&qnode)) ++ sz := unsafe.Sizeof(qnode) ++ if err = sysctl(mib, nil, &olen, qp, sz); err != nil { ++ return nil, err ++ } ++ ++ // Now that we know the size, get the actual nodes. ++ nodes = make([]Sysctlnode, olen/sz) ++ np := (*byte)(unsafe.Pointer(&nodes[0])) ++ if err = sysctl(mib, np, &olen, qp, sz); err != nil { ++ return nil, err ++ } ++ ++ return nodes, nil ++} ++ ++func nametomib(name string) (mib []_C_int, err error) { ++ ++ // Split name into components. ++ var parts []string ++ last := 0 ++ for i := 0; i < len(name); i++ { ++ if name[i] == '.' { ++ parts = append(parts, name[last:i]) ++ last = i + 1 ++ } ++ } ++ parts = append(parts, name[last:]) ++ ++ // Discover the nodes and construct the MIB OID. ++ for partno, part := range parts { ++ nodes, err := sysctlNodes(mib) ++ if err != nil { ++ return nil, err ++ } ++ for _, node := range nodes { ++ n := make([]byte, 0) ++ for i := range node.Name { ++ if node.Name[i] != 0 { ++ n = append(n, byte(node.Name[i])) ++ } ++ } ++ if string(n) == part { ++ mib = append(mib, _C_int(node.Num)) ++ break ++ } ++ } ++ if len(mib) != partno+1 { ++ return nil, EINVAL ++ } ++ } ++ ++ return mib, nil ++} ++ ++func direntIno(buf []byte) (uint64, bool) { ++ return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) ++} ++ ++func direntReclen(buf []byte) (uint64, bool) { ++ return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) ++} ++ ++func direntNamlen(buf []byte) (uint64, bool) { ++ return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) ++} ++ ++//sysnb pipe() (fd1 int, fd2 int, err error) ++func Pipe(p []int) (err error) { ++ if len(p) != 2 { ++ return EINVAL ++ } ++ p[0], p[1], err = pipe() ++ return ++} ++ ++//sys getdents(fd int, buf []byte) (n int, err error) ++func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { ++ return getdents(fd, buf) ++} ++ ++// TODO ++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ return -1, ENOSYS ++} ++ ++/* ++ * Exposed directly ++ */ ++//sys Access(path string, mode uint32) (err error) ++//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) ++//sys Chdir(path string) (err error) ++//sys Chflags(path string, flags int) (err error) ++//sys Chmod(path string, mode uint32) (err error) ++//sys Chown(path string, uid int, gid int) (err error) ++//sys Chroot(path string) (err error) ++//sys Close(fd int) (err error) ++//sys Dup(fd int) (nfd int, err error) ++//sys Dup2(from int, to int) (err error) ++//sys Exit(code int) ++//sys Fchdir(fd int) (err error) ++//sys Fchflags(fd int, flags int) (err error) ++//sys Fchmod(fd int, mode uint32) (err error) ++//sys Fchown(fd int, uid int, gid int) (err error) ++//sys Flock(fd int, how int) (err error) ++//sys Fpathconf(fd int, name int) (val int, err error) ++//sys Fstat(fd int, stat *Stat_t) (err error) ++//sys Fsync(fd int) (err error) ++//sys Ftruncate(fd int, length int64) (err error) ++//sysnb Getegid() (egid int) ++//sysnb Geteuid() (uid int) ++//sysnb Getgid() (gid int) ++//sysnb Getpgid(pid int) (pgid int, err error) ++//sysnb Getpgrp() (pgrp int) ++//sysnb Getpid() (pid int) ++//sysnb Getppid() (ppid int) ++//sys Getpriority(which int, who int) (prio int, err error) ++//sysnb Getrlimit(which int, lim *Rlimit) (err error) ++//sysnb Getrusage(who int, rusage *Rusage) (err error) ++//sysnb Getsid(pid int) (sid int, err error) ++//sysnb Gettimeofday(tv *Timeval) (err error) ++//sysnb Getuid() (uid int) ++//sys Issetugid() (tainted bool) ++//sys Kill(pid int, signum syscall.Signal) (err error) ++//sys Kqueue() (fd int, err error) ++//sys Lchown(path string, uid int, gid int) (err error) ++//sys Link(path string, link string) (err error) ++//sys Listen(s int, backlog int) (err error) ++//sys Lstat(path string, stat *Stat_t) (err error) ++//sys Mkdir(path string, mode uint32) (err error) ++//sys Mkfifo(path string, mode uint32) (err error) ++//sys Mknod(path string, mode uint32, dev int) (err error) ++//sys Mlock(b []byte) (err error) ++//sys Mlockall(flags int) (err error) ++//sys Mprotect(b []byte, prot int) (err error) ++//sys Munlock(b []byte) (err error) ++//sys Munlockall() (err error) ++//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) ++//sys Open(path string, mode int, perm uint32) (fd int, err error) ++//sys Pathconf(path string, name int) (val int, err error) ++//sys Pread(fd int, p []byte, offset int64) (n int, err error) ++//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) ++//sys read(fd int, p []byte) (n int, err error) ++//sys Readlink(path string, buf []byte) (n int, err error) ++//sys Rename(from string, to string) (err error) ++//sys Revoke(path string) (err error) ++//sys Rmdir(path string) (err error) ++//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK ++//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) ++//sysnb Setegid(egid int) (err error) ++//sysnb Seteuid(euid int) (err error) ++//sysnb Setgid(gid int) (err error) ++//sysnb Setpgid(pid int, pgid int) (err error) ++//sys Setpriority(which int, who int, prio int) (err error) ++//sysnb Setregid(rgid int, egid int) (err error) ++//sysnb Setreuid(ruid int, euid int) (err error) ++//sysnb Setrlimit(which int, lim *Rlimit) (err error) ++//sysnb Setsid() (pid int, err error) ++//sysnb Settimeofday(tp *Timeval) (err error) ++//sysnb Setuid(uid int) (err error) ++//sys Stat(path string, stat *Stat_t) (err error) ++//sys Symlink(path string, link string) (err error) ++//sys Sync() (err error) ++//sys Truncate(path string, length int64) (err error) ++//sys Umask(newmask int) (oldmask int) ++//sys Unlink(path string) (err error) ++//sys Unmount(path string, flags int) (err error) ++//sys write(fd int, p []byte) (n int, err error) ++//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) ++//sys munmap(addr uintptr, length uintptr) (err error) ++//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ ++//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE ++ ++/* ++ * Unimplemented ++ */ ++// ____semctl13 ++// __clone ++// __fhopen40 ++// __fhstat40 ++// __fhstatvfs140 ++// __fstat30 ++// __getcwd ++// __getfh30 ++// __getlogin ++// __lstat30 ++// __mount50 ++// __msgctl13 ++// __msync13 ++// __ntp_gettime30 ++// __posix_chown ++// __posix_fadvise50 ++// __posix_fchown ++// __posix_lchown ++// __posix_rename ++// __setlogin ++// __shmctl13 ++// __sigaction_sigtramp ++// __sigaltstack14 ++// __sigpending14 ++// __sigprocmask14 ++// __sigsuspend14 ++// __sigtimedwait ++// __stat30 ++// __syscall ++// __vfork14 ++// _ksem_close ++// _ksem_destroy ++// _ksem_getvalue ++// _ksem_init ++// _ksem_open ++// _ksem_post ++// _ksem_trywait ++// _ksem_unlink ++// _ksem_wait ++// _lwp_continue ++// _lwp_create ++// _lwp_ctl ++// _lwp_detach ++// _lwp_exit ++// _lwp_getname ++// _lwp_getprivate ++// _lwp_kill ++// _lwp_park ++// _lwp_self ++// _lwp_setname ++// _lwp_setprivate ++// _lwp_suspend ++// _lwp_unpark ++// _lwp_unpark_all ++// _lwp_wait ++// _lwp_wakeup ++// _pset_bind ++// _sched_getaffinity ++// _sched_getparam ++// _sched_setaffinity ++// _sched_setparam ++// acct ++// aio_cancel ++// aio_error ++// aio_fsync ++// aio_read ++// aio_return ++// aio_suspend ++// aio_write ++// break ++// clock_getres ++// clock_gettime ++// clock_settime ++// compat_09_ogetdomainname ++// compat_09_osetdomainname ++// compat_09_ouname ++// compat_10_omsgsys ++// compat_10_osemsys ++// compat_10_oshmsys ++// compat_12_fstat12 ++// compat_12_getdirentries ++// compat_12_lstat12 ++// compat_12_msync ++// compat_12_oreboot ++// compat_12_oswapon ++// compat_12_stat12 ++// compat_13_sigaction13 ++// compat_13_sigaltstack13 ++// compat_13_sigpending13 ++// compat_13_sigprocmask13 ++// compat_13_sigreturn13 ++// compat_13_sigsuspend13 ++// compat_14___semctl ++// compat_14_msgctl ++// compat_14_shmctl ++// compat_16___sigaction14 ++// compat_16___sigreturn14 ++// compat_20_fhstatfs ++// compat_20_fstatfs ++// compat_20_getfsstat ++// compat_20_statfs ++// compat_30___fhstat30 ++// compat_30___fstat13 ++// compat_30___lstat13 ++// compat_30___stat13 ++// compat_30_fhopen ++// compat_30_fhstat ++// compat_30_fhstatvfs1 ++// compat_30_getdents ++// compat_30_getfh ++// compat_30_ntp_gettime ++// compat_30_socket ++// compat_40_mount ++// compat_43_fstat43 ++// compat_43_lstat43 ++// compat_43_oaccept ++// compat_43_ocreat ++// compat_43_oftruncate ++// compat_43_ogetdirentries ++// compat_43_ogetdtablesize ++// compat_43_ogethostid ++// compat_43_ogethostname ++// compat_43_ogetkerninfo ++// compat_43_ogetpagesize ++// compat_43_ogetpeername ++// compat_43_ogetrlimit ++// compat_43_ogetsockname ++// compat_43_okillpg ++// compat_43_olseek ++// compat_43_ommap ++// compat_43_oquota ++// compat_43_orecv ++// compat_43_orecvfrom ++// compat_43_orecvmsg ++// compat_43_osend ++// compat_43_osendmsg ++// compat_43_osethostid ++// compat_43_osethostname ++// compat_43_osetrlimit ++// compat_43_osigblock ++// compat_43_osigsetmask ++// compat_43_osigstack ++// compat_43_osigvec ++// compat_43_otruncate ++// compat_43_owait ++// compat_43_stat43 ++// execve ++// extattr_delete_fd ++// extattr_delete_file ++// extattr_delete_link ++// extattr_get_fd ++// extattr_get_file ++// extattr_get_link ++// extattr_list_fd ++// extattr_list_file ++// extattr_list_link ++// extattr_set_fd ++// extattr_set_file ++// extattr_set_link ++// extattrctl ++// fchroot ++// fdatasync ++// fgetxattr ++// fktrace ++// flistxattr ++// fork ++// fremovexattr ++// fsetxattr ++// fstatvfs1 ++// fsync_range ++// getcontext ++// getitimer ++// getvfsstat ++// getxattr ++// ioctl ++// ktrace ++// lchflags ++// lchmod ++// lfs_bmapv ++// lfs_markv ++// lfs_segclean ++// lfs_segwait ++// lgetxattr ++// lio_listio ++// listxattr ++// llistxattr ++// lremovexattr ++// lseek ++// lsetxattr ++// lutimes ++// madvise ++// mincore ++// minherit ++// modctl ++// mq_close ++// mq_getattr ++// mq_notify ++// mq_open ++// mq_receive ++// mq_send ++// mq_setattr ++// mq_timedreceive ++// mq_timedsend ++// mq_unlink ++// mremap ++// msgget ++// msgrcv ++// msgsnd ++// nfssvc ++// ntp_adjtime ++// pmc_control ++// pmc_get_info ++// poll ++// pollts ++// preadv ++// profil ++// pselect ++// pset_assign ++// pset_create ++// pset_destroy ++// ptrace ++// pwritev ++// quotactl ++// rasctl ++// readv ++// reboot ++// removexattr ++// sa_enable ++// sa_preempt ++// sa_register ++// sa_setconcurrency ++// sa_stacks ++// sa_yield ++// sbrk ++// sched_yield ++// semconfig ++// semget ++// semop ++// setcontext ++// setitimer ++// setxattr ++// shmat ++// shmdt ++// shmget ++// sstk ++// statvfs1 ++// swapctl ++// sysarch ++// syscall ++// timer_create ++// timer_delete ++// timer_getoverrun ++// timer_gettime ++// timer_settime ++// undelete ++// utrace ++// uuidgen ++// vadvise ++// vfork ++// writev +diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go +new file mode 100644 +index 0000000..afaca09 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go +@@ -0,0 +1,42 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build 386,netbsd ++ ++package unix ++ ++func Getpagesize() int { return 4096 } ++ ++func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } ++ ++func NsecToTimespec(nsec int64) (ts Timespec) { ++ ts.Sec = int64(nsec / 1e9) ++ ts.Nsec = int32(nsec % 1e9) ++ return ++} ++ ++func NsecToTimeval(nsec int64) (tv Timeval) { ++ nsec += 999 // round up to microsecond ++ tv.Usec = int32(nsec % 1e9 / 1e3) ++ tv.Sec = int64(nsec / 1e9) ++ return ++} ++ ++func SetKevent(k *Kevent_t, fd, mode, flags int) { ++ k.Ident = uint32(fd) ++ k.Filter = uint32(mode) ++ k.Flags = uint32(flags) ++} ++ ++func (iov *Iovec) SetLen(length int) { ++ iov.Len = uint32(length) ++} ++ ++func (msghdr *Msghdr) SetControllen(length int) { ++ msghdr.Controllen = uint32(length) ++} ++ ++func (cmsg *Cmsghdr) SetLen(length int) { ++ cmsg.Len = uint32(length) ++} +diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go +new file mode 100644 +index 0000000..a6ff04c +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go +@@ -0,0 +1,42 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build amd64,netbsd ++ ++package unix ++ ++func Getpagesize() int { return 4096 } ++ ++func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } ++ ++func NsecToTimespec(nsec int64) (ts Timespec) { ++ ts.Sec = int64(nsec / 1e9) ++ ts.Nsec = int64(nsec % 1e9) ++ return ++} ++ ++func NsecToTimeval(nsec int64) (tv Timeval) { ++ nsec += 999 // round up to microsecond ++ tv.Usec = int32(nsec % 1e9 / 1e3) ++ tv.Sec = int64(nsec / 1e9) ++ return ++} ++ ++func SetKevent(k *Kevent_t, fd, mode, flags int) { ++ k.Ident = uint64(fd) ++ k.Filter = uint32(mode) ++ k.Flags = uint32(flags) ++} ++ ++func (iov *Iovec) SetLen(length int) { ++ iov.Len = uint64(length) ++} ++ ++func (msghdr *Msghdr) SetControllen(length int) { ++ msghdr.Controllen = uint32(length) ++} ++ ++func (cmsg *Cmsghdr) SetLen(length int) { ++ cmsg.Len = uint32(length) ++} +diff --git a/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go +new file mode 100644 +index 0000000..68a6969 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go +@@ -0,0 +1,42 @@ ++// Copyright 2013 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build arm,netbsd ++ ++package unix ++ ++func Getpagesize() int { return 4096 } ++ ++func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } ++ ++func NsecToTimespec(nsec int64) (ts Timespec) { ++ ts.Sec = int64(nsec / 1e9) ++ ts.Nsec = int32(nsec % 1e9) ++ return ++} ++ ++func NsecToTimeval(nsec int64) (tv Timeval) { ++ nsec += 999 // round up to microsecond ++ tv.Usec = int32(nsec % 1e9 / 1e3) ++ tv.Sec = int64(nsec / 1e9) ++ return ++} ++ ++func SetKevent(k *Kevent_t, fd, mode, flags int) { ++ k.Ident = uint32(fd) ++ k.Filter = uint32(mode) ++ k.Flags = uint32(flags) ++} ++ ++func (iov *Iovec) SetLen(length int) { ++ iov.Len = uint32(length) ++} ++ ++func (msghdr *Msghdr) SetControllen(length int) { ++ msghdr.Controllen = uint32(length) ++} ++ ++func (cmsg *Cmsghdr) SetLen(length int) { ++ cmsg.Len = uint32(length) ++} +diff --git a/vendor/golang.org/x/sys/unix/syscall_no_getwd.go b/vendor/golang.org/x/sys/unix/syscall_no_getwd.go +new file mode 100644 +index 0000000..530792e +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_no_getwd.go +@@ -0,0 +1,11 @@ ++// Copyright 2013 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build dragonfly freebsd netbsd openbsd ++ ++package unix ++ ++const ImplementsGetwd = false ++ ++func Getwd() (string, error) { return "", ENOTSUP } +diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/vendor/golang.org/x/sys/unix/syscall_openbsd.go +new file mode 100644 +index 0000000..c0d2b6c +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_openbsd.go +@@ -0,0 +1,287 @@ ++// Copyright 2009,2010 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// OpenBSD system calls. ++// This file is compiled as ordinary Go code, ++// but it is also input to mksyscall, ++// which parses the //sys lines and generates system call stubs. ++// Note that sometimes we use a lowercase //sys name and wrap ++// it in our own nicer implementation, either here or in ++// syscall_bsd.go or syscall_unix.go. ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++type SockaddrDatalink struct { ++ Len uint8 ++ Family uint8 ++ Index uint16 ++ Type uint8 ++ Nlen uint8 ++ Alen uint8 ++ Slen uint8 ++ Data [24]int8 ++ raw RawSockaddrDatalink ++} ++ ++func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) ++ ++func nametomib(name string) (mib []_C_int, err error) { ++ ++ // Perform lookup via a binary search ++ left := 0 ++ right := len(sysctlMib) - 1 ++ for { ++ idx := left + (right-left)/2 ++ switch { ++ case name == sysctlMib[idx].ctlname: ++ return sysctlMib[idx].ctloid, nil ++ case name > sysctlMib[idx].ctlname: ++ left = idx + 1 ++ default: ++ right = idx - 1 ++ } ++ if left > right { ++ break ++ } ++ } ++ return nil, EINVAL ++} ++ ++func direntIno(buf []byte) (uint64, bool) { ++ return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) ++} ++ ++func direntReclen(buf []byte) (uint64, bool) { ++ return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) ++} ++ ++func direntNamlen(buf []byte) (uint64, bool) { ++ return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) ++} ++ ++//sysnb pipe(p *[2]_C_int) (err error) ++func Pipe(p []int) (err error) { ++ if len(p) != 2 { ++ return EINVAL ++ } ++ var pp [2]_C_int ++ err = pipe(&pp) ++ p[0] = int(pp[0]) ++ p[1] = int(pp[1]) ++ return ++} ++ ++//sys getdents(fd int, buf []byte) (n int, err error) ++func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { ++ return getdents(fd, buf) ++} ++ ++// TODO ++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ return -1, ENOSYS ++} ++ ++func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ var bufsize uintptr ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) ++ } ++ r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++/* ++ * Exposed directly ++ */ ++//sys Access(path string, mode uint32) (err error) ++//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) ++//sys Chdir(path string) (err error) ++//sys Chflags(path string, flags int) (err error) ++//sys Chmod(path string, mode uint32) (err error) ++//sys Chown(path string, uid int, gid int) (err error) ++//sys Chroot(path string) (err error) ++//sys Close(fd int) (err error) ++//sys Dup(fd int) (nfd int, err error) ++//sys Dup2(from int, to int) (err error) ++//sys Exit(code int) ++//sys Fchdir(fd int) (err error) ++//sys Fchflags(fd int, flags int) (err error) ++//sys Fchmod(fd int, mode uint32) (err error) ++//sys Fchown(fd int, uid int, gid int) (err error) ++//sys Flock(fd int, how int) (err error) ++//sys Fpathconf(fd int, name int) (val int, err error) ++//sys Fstat(fd int, stat *Stat_t) (err error) ++//sys Fstatfs(fd int, stat *Statfs_t) (err error) ++//sys Fsync(fd int) (err error) ++//sys Ftruncate(fd int, length int64) (err error) ++//sysnb Getegid() (egid int) ++//sysnb Geteuid() (uid int) ++//sysnb Getgid() (gid int) ++//sysnb Getpgid(pid int) (pgid int, err error) ++//sysnb Getpgrp() (pgrp int) ++//sysnb Getpid() (pid int) ++//sysnb Getppid() (ppid int) ++//sys Getpriority(which int, who int) (prio int, err error) ++//sysnb Getrlimit(which int, lim *Rlimit) (err error) ++//sysnb Getrusage(who int, rusage *Rusage) (err error) ++//sysnb Getsid(pid int) (sid int, err error) ++//sysnb Gettimeofday(tv *Timeval) (err error) ++//sysnb Getuid() (uid int) ++//sys Issetugid() (tainted bool) ++//sys Kill(pid int, signum syscall.Signal) (err error) ++//sys Kqueue() (fd int, err error) ++//sys Lchown(path string, uid int, gid int) (err error) ++//sys Link(path string, link string) (err error) ++//sys Listen(s int, backlog int) (err error) ++//sys Lstat(path string, stat *Stat_t) (err error) ++//sys Mkdir(path string, mode uint32) (err error) ++//sys Mkfifo(path string, mode uint32) (err error) ++//sys Mknod(path string, mode uint32, dev int) (err error) ++//sys Mlock(b []byte) (err error) ++//sys Mlockall(flags int) (err error) ++//sys Mprotect(b []byte, prot int) (err error) ++//sys Munlock(b []byte) (err error) ++//sys Munlockall() (err error) ++//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) ++//sys Open(path string, mode int, perm uint32) (fd int, err error) ++//sys Pathconf(path string, name int) (val int, err error) ++//sys Pread(fd int, p []byte, offset int64) (n int, err error) ++//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) ++//sys read(fd int, p []byte) (n int, err error) ++//sys Readlink(path string, buf []byte) (n int, err error) ++//sys Rename(from string, to string) (err error) ++//sys Revoke(path string) (err error) ++//sys Rmdir(path string) (err error) ++//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK ++//sys Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) ++//sysnb Setegid(egid int) (err error) ++//sysnb Seteuid(euid int) (err error) ++//sysnb Setgid(gid int) (err error) ++//sys Setlogin(name string) (err error) ++//sysnb Setpgid(pid int, pgid int) (err error) ++//sys Setpriority(which int, who int, prio int) (err error) ++//sysnb Setregid(rgid int, egid int) (err error) ++//sysnb Setreuid(ruid int, euid int) (err error) ++//sysnb Setresgid(rgid int, egid int, sgid int) (err error) ++//sysnb Setresuid(ruid int, euid int, suid int) (err error) ++//sysnb Setrlimit(which int, lim *Rlimit) (err error) ++//sysnb Setsid() (pid int, err error) ++//sysnb Settimeofday(tp *Timeval) (err error) ++//sysnb Setuid(uid int) (err error) ++//sys Stat(path string, stat *Stat_t) (err error) ++//sys Statfs(path string, stat *Statfs_t) (err error) ++//sys Symlink(path string, link string) (err error) ++//sys Sync() (err error) ++//sys Truncate(path string, length int64) (err error) ++//sys Umask(newmask int) (oldmask int) ++//sys Unlink(path string) (err error) ++//sys Unmount(path string, flags int) (err error) ++//sys write(fd int, p []byte) (n int, err error) ++//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) ++//sys munmap(addr uintptr, length uintptr) (err error) ++//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ ++//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE ++ ++/* ++ * Unimplemented ++ */ ++// __getcwd ++// __semctl ++// __syscall ++// __sysctl ++// adjfreq ++// break ++// clock_getres ++// clock_gettime ++// clock_settime ++// closefrom ++// execve ++// faccessat ++// fchmodat ++// fchownat ++// fcntl ++// fhopen ++// fhstat ++// fhstatfs ++// fork ++// fstatat ++// futimens ++// getfh ++// getgid ++// getitimer ++// getlogin ++// getresgid ++// getresuid ++// getrtable ++// getthrid ++// ioctl ++// ktrace ++// lfs_bmapv ++// lfs_markv ++// lfs_segclean ++// lfs_segwait ++// linkat ++// mincore ++// minherit ++// mkdirat ++// mkfifoat ++// mknodat ++// mount ++// mquery ++// msgctl ++// msgget ++// msgrcv ++// msgsnd ++// nfssvc ++// nnpfspioctl ++// openat ++// poll ++// preadv ++// profil ++// pwritev ++// quotactl ++// readlinkat ++// readv ++// reboot ++// renameat ++// rfork ++// sched_yield ++// semget ++// semop ++// setgroups ++// setitimer ++// setrtable ++// setsockopt ++// shmat ++// shmctl ++// shmdt ++// shmget ++// sigaction ++// sigaltstack ++// sigpending ++// sigprocmask ++// sigreturn ++// sigsuspend ++// symlinkat ++// sysarch ++// syscall ++// threxit ++// thrsigdivert ++// thrsleep ++// thrwakeup ++// unlinkat ++// utimensat ++// vfork ++// writev +diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go +new file mode 100644 +index 0000000..a66ddc5 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go +@@ -0,0 +1,42 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build 386,openbsd ++ ++package unix ++ ++func Getpagesize() int { return 4096 } ++ ++func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } ++ ++func NsecToTimespec(nsec int64) (ts Timespec) { ++ ts.Sec = int64(nsec / 1e9) ++ ts.Nsec = int32(nsec % 1e9) ++ return ++} ++ ++func NsecToTimeval(nsec int64) (tv Timeval) { ++ nsec += 999 // round up to microsecond ++ tv.Usec = int32(nsec % 1e9 / 1e3) ++ tv.Sec = int64(nsec / 1e9) ++ return ++} ++ ++func SetKevent(k *Kevent_t, fd, mode, flags int) { ++ k.Ident = uint32(fd) ++ k.Filter = int16(mode) ++ k.Flags = uint16(flags) ++} ++ ++func (iov *Iovec) SetLen(length int) { ++ iov.Len = uint32(length) ++} ++ ++func (msghdr *Msghdr) SetControllen(length int) { ++ msghdr.Controllen = uint32(length) ++} ++ ++func (cmsg *Cmsghdr) SetLen(length int) { ++ cmsg.Len = uint32(length) ++} +diff --git a/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go +new file mode 100644 +index 0000000..0776c1f +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go +@@ -0,0 +1,42 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build amd64,openbsd ++ ++package unix ++ ++func Getpagesize() int { return 4096 } ++ ++func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } ++ ++func NsecToTimespec(nsec int64) (ts Timespec) { ++ ts.Sec = nsec / 1e9 ++ ts.Nsec = nsec % 1e9 ++ return ++} ++ ++func NsecToTimeval(nsec int64) (tv Timeval) { ++ nsec += 999 // round up to microsecond ++ tv.Usec = nsec % 1e9 / 1e3 ++ tv.Sec = nsec / 1e9 ++ return ++} ++ ++func SetKevent(k *Kevent_t, fd, mode, flags int) { ++ k.Ident = uint64(fd) ++ k.Filter = int16(mode) ++ k.Flags = uint16(flags) ++} ++ ++func (iov *Iovec) SetLen(length int) { ++ iov.Len = uint64(length) ++} ++ ++func (msghdr *Msghdr) SetControllen(length int) { ++ msghdr.Controllen = uint32(length) ++} ++ ++func (cmsg *Cmsghdr) SetLen(length int) { ++ cmsg.Len = uint32(length) ++} +diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris.go b/vendor/golang.org/x/sys/unix/syscall_solaris.go +new file mode 100644 +index 0000000..3cb1d0b +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_solaris.go +@@ -0,0 +1,713 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// Solaris system calls. ++// This file is compiled as ordinary Go code, ++// but it is also input to mksyscall, ++// which parses the //sys lines and generates system call stubs. ++// Note that sometimes we use a lowercase //sys name and wrap ++// it in our own nicer implementation, either here or in ++// syscall_solaris.go or syscall_unix.go. ++ ++package unix ++ ++import ( ++ "sync/atomic" ++ "syscall" ++ "unsafe" ++) ++ ++// Implemented in runtime/syscall_solaris.go. ++type syscallFunc uintptr ++ ++func rawSysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) ++func sysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) ++ ++type SockaddrDatalink struct { ++ Family uint16 ++ Index uint16 ++ Type uint8 ++ Nlen uint8 ++ Alen uint8 ++ Slen uint8 ++ Data [244]int8 ++ raw RawSockaddrDatalink ++} ++ ++func clen(n []byte) int { ++ for i := 0; i < len(n); i++ { ++ if n[i] == 0 { ++ return i ++ } ++ } ++ return len(n) ++} ++ ++func direntIno(buf []byte) (uint64, bool) { ++ return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) ++} ++ ++func direntReclen(buf []byte) (uint64, bool) { ++ return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) ++} ++ ++func direntNamlen(buf []byte) (uint64, bool) { ++ reclen, ok := direntReclen(buf) ++ if !ok { ++ return 0, false ++ } ++ return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true ++} ++ ++//sysnb pipe(p *[2]_C_int) (n int, err error) ++ ++func Pipe(p []int) (err error) { ++ if len(p) != 2 { ++ return EINVAL ++ } ++ var pp [2]_C_int ++ n, err := pipe(&pp) ++ if n != 0 { ++ return err ++ } ++ p[0] = int(pp[0]) ++ p[1] = int(pp[1]) ++ return nil ++} ++ ++func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { ++ if sa.Port < 0 || sa.Port > 0xFFFF { ++ return nil, 0, EINVAL ++ } ++ sa.raw.Family = AF_INET ++ p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) ++ p[0] = byte(sa.Port >> 8) ++ p[1] = byte(sa.Port) ++ for i := 0; i < len(sa.Addr); i++ { ++ sa.raw.Addr[i] = sa.Addr[i] ++ } ++ return unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil ++} ++ ++func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { ++ if sa.Port < 0 || sa.Port > 0xFFFF { ++ return nil, 0, EINVAL ++ } ++ sa.raw.Family = AF_INET6 ++ p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) ++ p[0] = byte(sa.Port >> 8) ++ p[1] = byte(sa.Port) ++ sa.raw.Scope_id = sa.ZoneId ++ for i := 0; i < len(sa.Addr); i++ { ++ sa.raw.Addr[i] = sa.Addr[i] ++ } ++ return unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil ++} ++ ++func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { ++ name := sa.Name ++ n := len(name) ++ if n >= len(sa.raw.Path) { ++ return nil, 0, EINVAL ++ } ++ sa.raw.Family = AF_UNIX ++ for i := 0; i < n; i++ { ++ sa.raw.Path[i] = int8(name[i]) ++ } ++ // length is family (uint16), name, NUL. ++ sl := _Socklen(2) ++ if n > 0 { ++ sl += _Socklen(n) + 1 ++ } ++ if sa.raw.Path[0] == '@' { ++ sa.raw.Path[0] = 0 ++ // Don't count trailing NUL for abstract address. ++ sl-- ++ } ++ ++ return unsafe.Pointer(&sa.raw), sl, nil ++} ++ ++//sys getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getsockname ++ ++func Getsockname(fd int) (sa Sockaddr, err error) { ++ var rsa RawSockaddrAny ++ var len _Socklen = SizeofSockaddrAny ++ if err = getsockname(fd, &rsa, &len); err != nil { ++ return ++ } ++ return anyToSockaddr(&rsa) ++} ++ ++const ImplementsGetwd = true ++ ++//sys Getcwd(buf []byte) (n int, err error) ++ ++func Getwd() (wd string, err error) { ++ var buf [PathMax]byte ++ // Getcwd will return an error if it failed for any reason. ++ _, err = Getcwd(buf[0:]) ++ if err != nil { ++ return "", err ++ } ++ n := clen(buf[:]) ++ if n < 1 { ++ return "", EINVAL ++ } ++ return string(buf[:n]), nil ++} ++ ++/* ++ * Wrapped ++ */ ++ ++//sysnb getgroups(ngid int, gid *_Gid_t) (n int, err error) ++//sysnb setgroups(ngid int, gid *_Gid_t) (err error) ++ ++func Getgroups() (gids []int, err error) { ++ n, err := getgroups(0, nil) ++ // Check for error and sanity check group count. Newer versions of ++ // Solaris allow up to 1024 (NGROUPS_MAX). ++ if n < 0 || n > 1024 { ++ if err != nil { ++ return nil, err ++ } ++ return nil, EINVAL ++ } else if n == 0 { ++ return nil, nil ++ } ++ ++ a := make([]_Gid_t, n) ++ n, err = getgroups(n, &a[0]) ++ if n == -1 { ++ return nil, err ++ } ++ gids = make([]int, n) ++ for i, v := range a[0:n] { ++ gids[i] = int(v) ++ } ++ return ++} ++ ++func Setgroups(gids []int) (err error) { ++ if len(gids) == 0 { ++ return setgroups(0, nil) ++ } ++ ++ a := make([]_Gid_t, len(gids)) ++ for i, v := range gids { ++ a[i] = _Gid_t(v) ++ } ++ return setgroups(len(a), &a[0]) ++} ++ ++func ReadDirent(fd int, buf []byte) (n int, err error) { ++ // Final argument is (basep *uintptr) and the syscall doesn't take nil. ++ // TODO(rsc): Can we use a single global basep for all calls? ++ return Getdents(fd, buf, new(uintptr)) ++} ++ ++// Wait status is 7 bits at bottom, either 0 (exited), ++// 0x7F (stopped), or a signal number that caused an exit. ++// The 0x80 bit is whether there was a core dump. ++// An extra number (exit code, signal causing a stop) ++// is in the high bits. ++ ++type WaitStatus uint32 ++ ++const ( ++ mask = 0x7F ++ core = 0x80 ++ shift = 8 ++ ++ exited = 0 ++ stopped = 0x7F ++) ++ ++func (w WaitStatus) Exited() bool { return w&mask == exited } ++ ++func (w WaitStatus) ExitStatus() int { ++ if w&mask != exited { ++ return -1 ++ } ++ return int(w >> shift) ++} ++ ++func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 } ++ ++func (w WaitStatus) Signal() syscall.Signal { ++ sig := syscall.Signal(w & mask) ++ if sig == stopped || sig == 0 { ++ return -1 ++ } ++ return sig ++} ++ ++func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 } ++ ++func (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP } ++ ++func (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP } ++ ++func (w WaitStatus) StopSignal() syscall.Signal { ++ if !w.Stopped() { ++ return -1 ++ } ++ return syscall.Signal(w>>shift) & 0xFF ++} ++ ++func (w WaitStatus) TrapCause() int { return -1 } ++ ++//sys wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error) ++ ++func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (int, error) { ++ var status _C_int ++ rpid, err := wait4(int32(pid), &status, options, rusage) ++ wpid := int(rpid) ++ if wpid == -1 { ++ return wpid, err ++ } ++ if wstatus != nil { ++ *wstatus = WaitStatus(status) ++ } ++ return wpid, nil ++} ++ ++//sys gethostname(buf []byte) (n int, err error) ++ ++func Gethostname() (name string, err error) { ++ var buf [MaxHostNameLen]byte ++ n, err := gethostname(buf[:]) ++ if n != 0 { ++ return "", err ++ } ++ n = clen(buf[:]) ++ if n < 1 { ++ return "", EFAULT ++ } ++ return string(buf[:n]), nil ++} ++ ++//sys utimes(path string, times *[2]Timeval) (err error) ++ ++func Utimes(path string, tv []Timeval) (err error) { ++ if tv == nil { ++ return utimes(path, nil) ++ } ++ if len(tv) != 2 { ++ return EINVAL ++ } ++ return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) ++} ++ ++//sys utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) ++ ++func UtimesNano(path string, ts []Timespec) error { ++ if ts == nil { ++ return utimensat(AT_FDCWD, path, nil, 0) ++ } ++ if len(ts) != 2 { ++ return EINVAL ++ } ++ return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) ++} ++ ++func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { ++ if ts == nil { ++ return utimensat(dirfd, path, nil, flags) ++ } ++ if len(ts) != 2 { ++ return EINVAL ++ } ++ return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) ++} ++ ++//sys fcntl(fd int, cmd int, arg int) (val int, err error) ++ ++// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. ++func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(lk)), 0, 0, 0) ++ if e1 != 0 { ++ return e1 ++ } ++ return nil ++} ++ ++//sys futimesat(fildes int, path *byte, times *[2]Timeval) (err error) ++ ++func Futimesat(dirfd int, path string, tv []Timeval) error { ++ pathp, err := BytePtrFromString(path) ++ if err != nil { ++ return err ++ } ++ if tv == nil { ++ return futimesat(dirfd, pathp, nil) ++ } ++ if len(tv) != 2 { ++ return EINVAL ++ } ++ return futimesat(dirfd, pathp, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) ++} ++ ++// Solaris doesn't have an futimes function because it allows NULL to be ++// specified as the path for futimesat. However, Go doesn't like ++// NULL-style string interfaces, so this simple wrapper is provided. ++func Futimes(fd int, tv []Timeval) error { ++ if tv == nil { ++ return futimesat(fd, nil, nil) ++ } ++ if len(tv) != 2 { ++ return EINVAL ++ } ++ return futimesat(fd, nil, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) ++} ++ ++func anyToSockaddr(rsa *RawSockaddrAny) (Sockaddr, error) { ++ switch rsa.Addr.Family { ++ case AF_UNIX: ++ pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) ++ sa := new(SockaddrUnix) ++ // Assume path ends at NUL. ++ // This is not technically the Solaris semantics for ++ // abstract Unix domain sockets -- they are supposed ++ // to be uninterpreted fixed-size binary blobs -- but ++ // everyone uses this convention. ++ n := 0 ++ for n < len(pp.Path) && pp.Path[n] != 0 { ++ n++ ++ } ++ bytes := (*[10000]byte)(unsafe.Pointer(&pp.Path[0]))[0:n] ++ sa.Name = string(bytes) ++ return sa, nil ++ ++ case AF_INET: ++ pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) ++ sa := new(SockaddrInet4) ++ p := (*[2]byte)(unsafe.Pointer(&pp.Port)) ++ sa.Port = int(p[0])<<8 + int(p[1]) ++ for i := 0; i < len(sa.Addr); i++ { ++ sa.Addr[i] = pp.Addr[i] ++ } ++ return sa, nil ++ ++ case AF_INET6: ++ pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) ++ sa := new(SockaddrInet6) ++ p := (*[2]byte)(unsafe.Pointer(&pp.Port)) ++ sa.Port = int(p[0])<<8 + int(p[1]) ++ sa.ZoneId = pp.Scope_id ++ for i := 0; i < len(sa.Addr); i++ { ++ sa.Addr[i] = pp.Addr[i] ++ } ++ return sa, nil ++ } ++ return nil, EAFNOSUPPORT ++} ++ ++//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = libsocket.accept ++ ++func Accept(fd int) (nfd int, sa Sockaddr, err error) { ++ var rsa RawSockaddrAny ++ var len _Socklen = SizeofSockaddrAny ++ nfd, err = accept(fd, &rsa, &len) ++ if nfd == -1 { ++ return ++ } ++ sa, err = anyToSockaddr(&rsa) ++ if err != nil { ++ Close(nfd) ++ nfd = 0 ++ } ++ return ++} ++ ++//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.recvmsg ++ ++func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { ++ var msg Msghdr ++ var rsa RawSockaddrAny ++ msg.Name = (*byte)(unsafe.Pointer(&rsa)) ++ msg.Namelen = uint32(SizeofSockaddrAny) ++ var iov Iovec ++ if len(p) > 0 { ++ iov.Base = (*int8)(unsafe.Pointer(&p[0])) ++ iov.SetLen(len(p)) ++ } ++ var dummy int8 ++ if len(oob) > 0 { ++ // receive at least one normal byte ++ if len(p) == 0 { ++ iov.Base = &dummy ++ iov.SetLen(1) ++ } ++ msg.Accrights = (*int8)(unsafe.Pointer(&oob[0])) ++ } ++ msg.Iov = &iov ++ msg.Iovlen = 1 ++ if n, err = recvmsg(fd, &msg, flags); n == -1 { ++ return ++ } ++ oobn = int(msg.Accrightslen) ++ // source address is only specified if the socket is unconnected ++ if rsa.Addr.Family != AF_UNSPEC { ++ from, err = anyToSockaddr(&rsa) ++ } ++ return ++} ++ ++func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { ++ _, err = SendmsgN(fd, p, oob, to, flags) ++ return ++} ++ ++//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.sendmsg ++ ++func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { ++ var ptr unsafe.Pointer ++ var salen _Socklen ++ if to != nil { ++ ptr, salen, err = to.sockaddr() ++ if err != nil { ++ return 0, err ++ } ++ } ++ var msg Msghdr ++ msg.Name = (*byte)(unsafe.Pointer(ptr)) ++ msg.Namelen = uint32(salen) ++ var iov Iovec ++ if len(p) > 0 { ++ iov.Base = (*int8)(unsafe.Pointer(&p[0])) ++ iov.SetLen(len(p)) ++ } ++ var dummy int8 ++ if len(oob) > 0 { ++ // send at least one normal byte ++ if len(p) == 0 { ++ iov.Base = &dummy ++ iov.SetLen(1) ++ } ++ msg.Accrights = (*int8)(unsafe.Pointer(&oob[0])) ++ } ++ msg.Iov = &iov ++ msg.Iovlen = 1 ++ if n, err = sendmsg(fd, &msg, flags); err != nil { ++ return 0, err ++ } ++ if len(oob) > 0 && len(p) == 0 { ++ n = 0 ++ } ++ return n, nil ++} ++ ++//sys acct(path *byte) (err error) ++ ++func Acct(path string) (err error) { ++ if len(path) == 0 { ++ // Assume caller wants to disable accounting. ++ return acct(nil) ++ } ++ ++ pathp, err := BytePtrFromString(path) ++ if err != nil { ++ return err ++ } ++ return acct(pathp) ++} ++ ++/* ++ * Expose the ioctl function ++ */ ++ ++//sys ioctl(fd int, req int, arg uintptr) (err error) ++ ++func IoctlSetInt(fd int, req int, value int) (err error) { ++ return ioctl(fd, req, uintptr(value)) ++} ++ ++func IoctlSetWinsize(fd int, req int, value *Winsize) (err error) { ++ return ioctl(fd, req, uintptr(unsafe.Pointer(value))) ++} ++ ++func IoctlSetTermios(fd int, req int, value *Termios) (err error) { ++ return ioctl(fd, req, uintptr(unsafe.Pointer(value))) ++} ++ ++func IoctlSetTermio(fd int, req int, value *Termio) (err error) { ++ return ioctl(fd, req, uintptr(unsafe.Pointer(value))) ++} ++ ++func IoctlGetInt(fd int, req int) (int, error) { ++ var value int ++ err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) ++ return value, err ++} ++ ++func IoctlGetWinsize(fd int, req int) (*Winsize, error) { ++ var value Winsize ++ err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) ++ return &value, err ++} ++ ++func IoctlGetTermios(fd int, req int) (*Termios, error) { ++ var value Termios ++ err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) ++ return &value, err ++} ++ ++func IoctlGetTermio(fd int, req int) (*Termio, error) { ++ var value Termio ++ err := ioctl(fd, req, uintptr(unsafe.Pointer(&value))) ++ return &value, err ++} ++ ++/* ++ * Exposed directly ++ */ ++//sys Access(path string, mode uint32) (err error) ++//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) ++//sys Chdir(path string) (err error) ++//sys Chmod(path string, mode uint32) (err error) ++//sys Chown(path string, uid int, gid int) (err error) ++//sys Chroot(path string) (err error) ++//sys Close(fd int) (err error) ++//sys Creat(path string, mode uint32) (fd int, err error) ++//sys Dup(fd int) (nfd int, err error) ++//sys Dup2(oldfd int, newfd int) (err error) ++//sys Exit(code int) ++//sys Fchdir(fd int) (err error) ++//sys Fchmod(fd int, mode uint32) (err error) ++//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) ++//sys Fchown(fd int, uid int, gid int) (err error) ++//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) ++//sys Fdatasync(fd int) (err error) ++//sys Fpathconf(fd int, name int) (val int, err error) ++//sys Fstat(fd int, stat *Stat_t) (err error) ++//sys Getdents(fd int, buf []byte, basep *uintptr) (n int, err error) ++//sysnb Getgid() (gid int) ++//sysnb Getpid() (pid int) ++//sysnb Getpgid(pid int) (pgid int, err error) ++//sysnb Getpgrp() (pgid int, err error) ++//sys Geteuid() (euid int) ++//sys Getegid() (egid int) ++//sys Getppid() (ppid int) ++//sys Getpriority(which int, who int) (n int, err error) ++//sysnb Getrlimit(which int, lim *Rlimit) (err error) ++//sysnb Getrusage(who int, rusage *Rusage) (err error) ++//sysnb Gettimeofday(tv *Timeval) (err error) ++//sysnb Getuid() (uid int) ++//sys Kill(pid int, signum syscall.Signal) (err error) ++//sys Lchown(path string, uid int, gid int) (err error) ++//sys Link(path string, link string) (err error) ++//sys Listen(s int, backlog int) (err error) = libsocket.listen ++//sys Lstat(path string, stat *Stat_t) (err error) ++//sys Madvise(b []byte, advice int) (err error) ++//sys Mkdir(path string, mode uint32) (err error) ++//sys Mkdirat(dirfd int, path string, mode uint32) (err error) ++//sys Mkfifo(path string, mode uint32) (err error) ++//sys Mkfifoat(dirfd int, path string, mode uint32) (err error) ++//sys Mknod(path string, mode uint32, dev int) (err error) ++//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) ++//sys Mlock(b []byte) (err error) ++//sys Mlockall(flags int) (err error) ++//sys Mprotect(b []byte, prot int) (err error) ++//sys Munlock(b []byte) (err error) ++//sys Munlockall() (err error) ++//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) ++//sys Open(path string, mode int, perm uint32) (fd int, err error) ++//sys Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) ++//sys Pathconf(path string, name int) (val int, err error) ++//sys Pause() (err error) ++//sys Pread(fd int, p []byte, offset int64) (n int, err error) ++//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) ++//sys read(fd int, p []byte) (n int, err error) ++//sys Readlink(path string, buf []byte) (n int, err error) ++//sys Rename(from string, to string) (err error) ++//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) ++//sys Rmdir(path string) (err error) ++//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = lseek ++//sysnb Setegid(egid int) (err error) ++//sysnb Seteuid(euid int) (err error) ++//sysnb Setgid(gid int) (err error) ++//sys Sethostname(p []byte) (err error) ++//sysnb Setpgid(pid int, pgid int) (err error) ++//sys Setpriority(which int, who int, prio int) (err error) ++//sysnb Setregid(rgid int, egid int) (err error) ++//sysnb Setreuid(ruid int, euid int) (err error) ++//sysnb Setrlimit(which int, lim *Rlimit) (err error) ++//sysnb Setsid() (pid int, err error) ++//sysnb Setuid(uid int) (err error) ++//sys Shutdown(s int, how int) (err error) = libsocket.shutdown ++//sys Stat(path string, stat *Stat_t) (err error) ++//sys Symlink(path string, link string) (err error) ++//sys Sync() (err error) ++//sysnb Times(tms *Tms) (ticks uintptr, err error) ++//sys Truncate(path string, length int64) (err error) ++//sys Fsync(fd int) (err error) ++//sys Ftruncate(fd int, length int64) (err error) ++//sys Umask(mask int) (oldmask int) ++//sysnb Uname(buf *Utsname) (err error) ++//sys Unmount(target string, flags int) (err error) = libc.umount ++//sys Unlink(path string) (err error) ++//sys Unlinkat(dirfd int, path string, flags int) (err error) ++//sys Ustat(dev int, ubuf *Ustat_t) (err error) ++//sys Utime(path string, buf *Utimbuf) (err error) ++//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.bind ++//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.connect ++//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) ++//sys munmap(addr uintptr, length uintptr) (err error) ++//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.sendto ++//sys socket(domain int, typ int, proto int) (fd int, err error) = libsocket.socket ++//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) = libsocket.socketpair ++//sys write(fd int, p []byte) (n int, err error) ++//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) = libsocket.getsockopt ++//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getpeername ++//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) = libsocket.setsockopt ++//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) = libsocket.recvfrom ++ ++func readlen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procread)), 3, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf), 0, 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func writelen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwrite)), 3, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf), 0, 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++var mapper = &mmapper{ ++ active: make(map[*byte][]byte), ++ mmap: mmap, ++ munmap: munmap, ++} ++ ++func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { ++ return mapper.Mmap(fd, offset, length, prot, flags) ++} ++ ++func Munmap(b []byte) (err error) { ++ return mapper.Munmap(b) ++} ++ ++//sys sysconf(name int) (n int64, err error) ++ ++// pageSize caches the value of Getpagesize, since it can't change ++// once the system is booted. ++var pageSize int64 // accessed atomically ++ ++func Getpagesize() int { ++ n := atomic.LoadInt64(&pageSize) ++ if n == 0 { ++ n, _ = sysconf(_SC_PAGESIZE) ++ atomic.StoreInt64(&pageSize, n) ++ } ++ return int(n) ++} +diff --git a/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go +new file mode 100644 +index 0000000..5aff62c +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go +@@ -0,0 +1,35 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build amd64,solaris ++ ++package unix ++ ++func TimespecToNsec(ts Timespec) int64 { return int64(ts.Sec)*1e9 + int64(ts.Nsec) } ++ ++func NsecToTimespec(nsec int64) (ts Timespec) { ++ ts.Sec = nsec / 1e9 ++ ts.Nsec = nsec % 1e9 ++ return ++} ++ ++func NsecToTimeval(nsec int64) (tv Timeval) { ++ nsec += 999 // round up to microsecond ++ tv.Usec = nsec % 1e9 / 1e3 ++ tv.Sec = int64(nsec / 1e9) ++ return ++} ++ ++func (iov *Iovec) SetLen(length int) { ++ iov.Len = uint64(length) ++} ++ ++func (cmsg *Cmsghdr) SetLen(length int) { ++ cmsg.Len = uint32(length) ++} ++ ++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ // TODO(aram): implement this, see issue 5847. ++ panic("unimplemented") ++} +diff --git a/vendor/golang.org/x/sys/unix/syscall_unix.go b/vendor/golang.org/x/sys/unix/syscall_unix.go +new file mode 100644 +index 0000000..8a5237d +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_unix.go +@@ -0,0 +1,292 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++ ++package unix ++ ++import ( ++ "runtime" ++ "sync" ++ "syscall" ++ "unsafe" ++) ++ ++var ( ++ Stdin = 0 ++ Stdout = 1 ++ Stderr = 2 ++) ++ ++const ( ++ darwin64Bit = runtime.GOOS == "darwin" && sizeofPtr == 8 ++ dragonfly64Bit = runtime.GOOS == "dragonfly" && sizeofPtr == 8 ++ netbsd32Bit = runtime.GOOS == "netbsd" && sizeofPtr == 4 ++) ++ ++// Do the interface allocations only once for common ++// Errno values. ++var ( ++ errEAGAIN error = syscall.EAGAIN ++ errEINVAL error = syscall.EINVAL ++ errENOENT error = syscall.ENOENT ++) ++ ++// errnoErr returns common boxed Errno values, to prevent ++// allocations at runtime. ++func errnoErr(e syscall.Errno) error { ++ switch e { ++ case 0: ++ return nil ++ case EAGAIN: ++ return errEAGAIN ++ case EINVAL: ++ return errEINVAL ++ case ENOENT: ++ return errENOENT ++ } ++ return e ++} ++ ++// Mmap manager, for use by operating system-specific implementations. ++ ++type mmapper struct { ++ sync.Mutex ++ active map[*byte][]byte // active mappings; key is last byte in mapping ++ mmap func(addr, length uintptr, prot, flags, fd int, offset int64) (uintptr, error) ++ munmap func(addr uintptr, length uintptr) error ++} ++ ++func (m *mmapper) Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { ++ if length <= 0 { ++ return nil, EINVAL ++ } ++ ++ // Map the requested memory. ++ addr, errno := m.mmap(0, uintptr(length), prot, flags, fd, offset) ++ if errno != nil { ++ return nil, errno ++ } ++ ++ // Slice memory layout ++ var sl = struct { ++ addr uintptr ++ len int ++ cap int ++ }{addr, length, length} ++ ++ // Use unsafe to turn sl into a []byte. ++ b := *(*[]byte)(unsafe.Pointer(&sl)) ++ ++ // Register mapping in m and return it. ++ p := &b[cap(b)-1] ++ m.Lock() ++ defer m.Unlock() ++ m.active[p] = b ++ return b, nil ++} ++ ++func (m *mmapper) Munmap(data []byte) (err error) { ++ if len(data) == 0 || len(data) != cap(data) { ++ return EINVAL ++ } ++ ++ // Find the base of the mapping. ++ p := &data[cap(data)-1] ++ m.Lock() ++ defer m.Unlock() ++ b := m.active[p] ++ if b == nil || &b[0] != &data[0] { ++ return EINVAL ++ } ++ ++ // Unmap the memory and update m. ++ if errno := m.munmap(uintptr(unsafe.Pointer(&b[0])), uintptr(len(b))); errno != nil { ++ return errno ++ } ++ delete(m.active, p) ++ return nil ++} ++ ++func Read(fd int, p []byte) (n int, err error) { ++ n, err = read(fd, p) ++ if raceenabled { ++ if n > 0 { ++ raceWriteRange(unsafe.Pointer(&p[0]), n) ++ } ++ if err == nil { ++ raceAcquire(unsafe.Pointer(&ioSync)) ++ } ++ } ++ return ++} ++ ++func Write(fd int, p []byte) (n int, err error) { ++ if raceenabled { ++ raceReleaseMerge(unsafe.Pointer(&ioSync)) ++ } ++ n, err = write(fd, p) ++ if raceenabled && n > 0 { ++ raceReadRange(unsafe.Pointer(&p[0]), n) ++ } ++ return ++} ++ ++// For testing: clients can set this flag to force ++// creation of IPv6 sockets to return EAFNOSUPPORT. ++var SocketDisableIPv6 bool ++ ++type Sockaddr interface { ++ sockaddr() (ptr unsafe.Pointer, len _Socklen, err error) // lowercase; only we can define Sockaddrs ++} ++ ++type SockaddrInet4 struct { ++ Port int ++ Addr [4]byte ++ raw RawSockaddrInet4 ++} ++ ++type SockaddrInet6 struct { ++ Port int ++ ZoneId uint32 ++ Addr [16]byte ++ raw RawSockaddrInet6 ++} ++ ++type SockaddrUnix struct { ++ Name string ++ raw RawSockaddrUnix ++} ++ ++func Bind(fd int, sa Sockaddr) (err error) { ++ ptr, n, err := sa.sockaddr() ++ if err != nil { ++ return err ++ } ++ return bind(fd, ptr, n) ++} ++ ++func Connect(fd int, sa Sockaddr) (err error) { ++ ptr, n, err := sa.sockaddr() ++ if err != nil { ++ return err ++ } ++ return connect(fd, ptr, n) ++} ++ ++func Getpeername(fd int) (sa Sockaddr, err error) { ++ var rsa RawSockaddrAny ++ var len _Socklen = SizeofSockaddrAny ++ if err = getpeername(fd, &rsa, &len); err != nil { ++ return ++ } ++ return anyToSockaddr(&rsa) ++} ++ ++func GetsockoptInt(fd, level, opt int) (value int, err error) { ++ var n int32 ++ vallen := _Socklen(4) ++ err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) ++ return int(n), err ++} ++ ++func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) { ++ var rsa RawSockaddrAny ++ var len _Socklen = SizeofSockaddrAny ++ if n, err = recvfrom(fd, p, flags, &rsa, &len); err != nil { ++ return ++ } ++ if rsa.Addr.Family != AF_UNSPEC { ++ from, err = anyToSockaddr(&rsa) ++ } ++ return ++} ++ ++func Sendto(fd int, p []byte, flags int, to Sockaddr) (err error) { ++ ptr, n, err := to.sockaddr() ++ if err != nil { ++ return err ++ } ++ return sendto(fd, p, flags, ptr, n) ++} ++ ++func SetsockoptByte(fd, level, opt int, value byte) (err error) { ++ return setsockopt(fd, level, opt, unsafe.Pointer(&value), 1) ++} ++ ++func SetsockoptInt(fd, level, opt int, value int) (err error) { ++ var n = int32(value) ++ return setsockopt(fd, level, opt, unsafe.Pointer(&n), 4) ++} ++ ++func SetsockoptInet4Addr(fd, level, opt int, value [4]byte) (err error) { ++ return setsockopt(fd, level, opt, unsafe.Pointer(&value[0]), 4) ++} ++ ++func SetsockoptIPMreq(fd, level, opt int, mreq *IPMreq) (err error) { ++ return setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPMreq) ++} ++ ++func SetsockoptIPv6Mreq(fd, level, opt int, mreq *IPv6Mreq) (err error) { ++ return setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPv6Mreq) ++} ++ ++func SetsockoptICMPv6Filter(fd, level, opt int, filter *ICMPv6Filter) error { ++ return setsockopt(fd, level, opt, unsafe.Pointer(filter), SizeofICMPv6Filter) ++} ++ ++func SetsockoptLinger(fd, level, opt int, l *Linger) (err error) { ++ return setsockopt(fd, level, opt, unsafe.Pointer(l), SizeofLinger) ++} ++ ++func SetsockoptString(fd, level, opt int, s string) (err error) { ++ return setsockopt(fd, level, opt, unsafe.Pointer(&[]byte(s)[0]), uintptr(len(s))) ++} ++ ++func SetsockoptTimeval(fd, level, opt int, tv *Timeval) (err error) { ++ return setsockopt(fd, level, opt, unsafe.Pointer(tv), unsafe.Sizeof(*tv)) ++} ++ ++func Socket(domain, typ, proto int) (fd int, err error) { ++ if domain == AF_INET6 && SocketDisableIPv6 { ++ return -1, EAFNOSUPPORT ++ } ++ fd, err = socket(domain, typ, proto) ++ return ++} ++ ++func Socketpair(domain, typ, proto int) (fd [2]int, err error) { ++ var fdx [2]int32 ++ err = socketpair(domain, typ, proto, &fdx) ++ if err == nil { ++ fd[0] = int(fdx[0]) ++ fd[1] = int(fdx[1]) ++ } ++ return ++} ++ ++func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ if raceenabled { ++ raceReleaseMerge(unsafe.Pointer(&ioSync)) ++ } ++ return sendfile(outfd, infd, offset, count) ++} ++ ++var ioSync int64 ++ ++func CloseOnExec(fd int) { fcntl(fd, F_SETFD, FD_CLOEXEC) } ++ ++func SetNonblock(fd int, nonblocking bool) (err error) { ++ flag, err := fcntl(fd, F_GETFL, 0) ++ if err != nil { ++ return err ++ } ++ if nonblocking { ++ flag |= O_NONBLOCK ++ } else { ++ flag &= ^O_NONBLOCK ++ } ++ _, err = fcntl(fd, F_SETFL, flag) ++ return err ++} +diff --git a/vendor/golang.org/x/sys/unix/syscall_unix_gc.go b/vendor/golang.org/x/sys/unix/syscall_unix_gc.go +new file mode 100644 +index 0000000..4cb8e8e +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/syscall_unix_gc.go +@@ -0,0 +1,15 @@ ++// Copyright 2016 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build darwin dragonfly freebsd linux netbsd openbsd solaris ++// +build !gccgo ++ ++package unix ++ ++import "syscall" ++ ++func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) ++func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) ++func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) ++func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) +diff --git a/vendor/golang.org/x/sys/unix/types_darwin.go b/vendor/golang.org/x/sys/unix/types_darwin.go +new file mode 100644 +index 0000000..1153261 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/types_darwin.go +@@ -0,0 +1,250 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build ignore ++ ++/* ++Input to cgo -godefs. See also mkerrors.sh and mkall.sh ++*/ ++ ++// +godefs map struct_in_addr [4]byte /* in_addr */ ++// +godefs map struct_in6_addr [16]byte /* in6_addr */ ++ ++package unix ++ ++/* ++#define __DARWIN_UNIX03 0 ++#define KERNEL ++#define _DARWIN_USE_64_BIT_INODE ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++enum { ++ sizeofPtr = sizeof(void*), ++}; ++ ++union sockaddr_all { ++ struct sockaddr s1; // this one gets used for fields ++ struct sockaddr_in s2; // these pad it out ++ struct sockaddr_in6 s3; ++ struct sockaddr_un s4; ++ struct sockaddr_dl s5; ++}; ++ ++struct sockaddr_any { ++ struct sockaddr addr; ++ char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; ++}; ++ ++*/ ++import "C" ++ ++// Machine characteristics; for internal use. ++ ++const ( ++ sizeofPtr = C.sizeofPtr ++ sizeofShort = C.sizeof_short ++ sizeofInt = C.sizeof_int ++ sizeofLong = C.sizeof_long ++ sizeofLongLong = C.sizeof_longlong ++) ++ ++// Basic types ++ ++type ( ++ _C_short C.short ++ _C_int C.int ++ _C_long C.long ++ _C_long_long C.longlong ++) ++ ++// Time ++ ++type Timespec C.struct_timespec ++ ++type Timeval C.struct_timeval ++ ++type Timeval32 C.struct_timeval32 ++ ++// Processes ++ ++type Rusage C.struct_rusage ++ ++type Rlimit C.struct_rlimit ++ ++type _Gid_t C.gid_t ++ ++// Files ++ ++type Stat_t C.struct_stat64 ++ ++type Statfs_t C.struct_statfs64 ++ ++type Flock_t C.struct_flock ++ ++type Fstore_t C.struct_fstore ++ ++type Radvisory_t C.struct_radvisory ++ ++type Fbootstraptransfer_t C.struct_fbootstraptransfer ++ ++type Log2phys_t C.struct_log2phys ++ ++type Fsid C.struct_fsid ++ ++type Dirent C.struct_dirent ++ ++// Sockets ++ ++type RawSockaddrInet4 C.struct_sockaddr_in ++ ++type RawSockaddrInet6 C.struct_sockaddr_in6 ++ ++type RawSockaddrUnix C.struct_sockaddr_un ++ ++type RawSockaddrDatalink C.struct_sockaddr_dl ++ ++type RawSockaddr C.struct_sockaddr ++ ++type RawSockaddrAny C.struct_sockaddr_any ++ ++type _Socklen C.socklen_t ++ ++type Linger C.struct_linger ++ ++type Iovec C.struct_iovec ++ ++type IPMreq C.struct_ip_mreq ++ ++type IPv6Mreq C.struct_ipv6_mreq ++ ++type Msghdr C.struct_msghdr ++ ++type Cmsghdr C.struct_cmsghdr ++ ++type Inet4Pktinfo C.struct_in_pktinfo ++ ++type Inet6Pktinfo C.struct_in6_pktinfo ++ ++type IPv6MTUInfo C.struct_ip6_mtuinfo ++ ++type ICMPv6Filter C.struct_icmp6_filter ++ ++const ( ++ SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in ++ SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 ++ SizeofSockaddrAny = C.sizeof_struct_sockaddr_any ++ SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un ++ SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl ++ SizeofLinger = C.sizeof_struct_linger ++ SizeofIPMreq = C.sizeof_struct_ip_mreq ++ SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq ++ SizeofMsghdr = C.sizeof_struct_msghdr ++ SizeofCmsghdr = C.sizeof_struct_cmsghdr ++ SizeofInet4Pktinfo = C.sizeof_struct_in_pktinfo ++ SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo ++ SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo ++ SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter ++) ++ ++// Ptrace requests ++ ++const ( ++ PTRACE_TRACEME = C.PT_TRACE_ME ++ PTRACE_CONT = C.PT_CONTINUE ++ PTRACE_KILL = C.PT_KILL ++) ++ ++// Events (kqueue, kevent) ++ ++type Kevent_t C.struct_kevent ++ ++// Select ++ ++type FdSet C.fd_set ++ ++// Routing and interface messages ++ ++const ( ++ SizeofIfMsghdr = C.sizeof_struct_if_msghdr ++ SizeofIfData = C.sizeof_struct_if_data ++ SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr ++ SizeofIfmaMsghdr = C.sizeof_struct_ifma_msghdr ++ SizeofIfmaMsghdr2 = C.sizeof_struct_ifma_msghdr2 ++ SizeofRtMsghdr = C.sizeof_struct_rt_msghdr ++ SizeofRtMetrics = C.sizeof_struct_rt_metrics ++) ++ ++type IfMsghdr C.struct_if_msghdr ++ ++type IfData C.struct_if_data ++ ++type IfaMsghdr C.struct_ifa_msghdr ++ ++type IfmaMsghdr C.struct_ifma_msghdr ++ ++type IfmaMsghdr2 C.struct_ifma_msghdr2 ++ ++type RtMsghdr C.struct_rt_msghdr ++ ++type RtMetrics C.struct_rt_metrics ++ ++// Berkeley packet filter ++ ++const ( ++ SizeofBpfVersion = C.sizeof_struct_bpf_version ++ SizeofBpfStat = C.sizeof_struct_bpf_stat ++ SizeofBpfProgram = C.sizeof_struct_bpf_program ++ SizeofBpfInsn = C.sizeof_struct_bpf_insn ++ SizeofBpfHdr = C.sizeof_struct_bpf_hdr ++) ++ ++type BpfVersion C.struct_bpf_version ++ ++type BpfStat C.struct_bpf_stat ++ ++type BpfProgram C.struct_bpf_program ++ ++type BpfInsn C.struct_bpf_insn ++ ++type BpfHdr C.struct_bpf_hdr ++ ++// Terminal handling ++ ++type Termios C.struct_termios ++ ++// fchmodat-like syscalls. ++ ++const ( ++ AT_FDCWD = C.AT_FDCWD ++ AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW ++) +diff --git a/vendor/golang.org/x/sys/unix/types_dragonfly.go b/vendor/golang.org/x/sys/unix/types_dragonfly.go +new file mode 100644 +index 0000000..f3c971d +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/types_dragonfly.go +@@ -0,0 +1,242 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build ignore ++ ++/* ++Input to cgo -godefs. See also mkerrors.sh and mkall.sh ++*/ ++ ++// +godefs map struct_in_addr [4]byte /* in_addr */ ++// +godefs map struct_in6_addr [16]byte /* in6_addr */ ++ ++package unix ++ ++/* ++#define KERNEL ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++enum { ++ sizeofPtr = sizeof(void*), ++}; ++ ++union sockaddr_all { ++ struct sockaddr s1; // this one gets used for fields ++ struct sockaddr_in s2; // these pad it out ++ struct sockaddr_in6 s3; ++ struct sockaddr_un s4; ++ struct sockaddr_dl s5; ++}; ++ ++struct sockaddr_any { ++ struct sockaddr addr; ++ char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; ++}; ++ ++*/ ++import "C" ++ ++// Machine characteristics; for internal use. ++ ++const ( ++ sizeofPtr = C.sizeofPtr ++ sizeofShort = C.sizeof_short ++ sizeofInt = C.sizeof_int ++ sizeofLong = C.sizeof_long ++ sizeofLongLong = C.sizeof_longlong ++) ++ ++// Basic types ++ ++type ( ++ _C_short C.short ++ _C_int C.int ++ _C_long C.long ++ _C_long_long C.longlong ++) ++ ++// Time ++ ++type Timespec C.struct_timespec ++ ++type Timeval C.struct_timeval ++ ++// Processes ++ ++type Rusage C.struct_rusage ++ ++type Rlimit C.struct_rlimit ++ ++type _Gid_t C.gid_t ++ ++// Files ++ ++const ( // Directory mode bits ++ S_IFMT = C.S_IFMT ++ S_IFIFO = C.S_IFIFO ++ S_IFCHR = C.S_IFCHR ++ S_IFDIR = C.S_IFDIR ++ S_IFBLK = C.S_IFBLK ++ S_IFREG = C.S_IFREG ++ S_IFLNK = C.S_IFLNK ++ S_IFSOCK = C.S_IFSOCK ++ S_ISUID = C.S_ISUID ++ S_ISGID = C.S_ISGID ++ S_ISVTX = C.S_ISVTX ++ S_IRUSR = C.S_IRUSR ++ S_IWUSR = C.S_IWUSR ++ S_IXUSR = C.S_IXUSR ++) ++ ++type Stat_t C.struct_stat ++ ++type Statfs_t C.struct_statfs ++ ++type Flock_t C.struct_flock ++ ++type Dirent C.struct_dirent ++ ++type Fsid C.struct_fsid ++ ++// Sockets ++ ++type RawSockaddrInet4 C.struct_sockaddr_in ++ ++type RawSockaddrInet6 C.struct_sockaddr_in6 ++ ++type RawSockaddrUnix C.struct_sockaddr_un ++ ++type RawSockaddrDatalink C.struct_sockaddr_dl ++ ++type RawSockaddr C.struct_sockaddr ++ ++type RawSockaddrAny C.struct_sockaddr_any ++ ++type _Socklen C.socklen_t ++ ++type Linger C.struct_linger ++ ++type Iovec C.struct_iovec ++ ++type IPMreq C.struct_ip_mreq ++ ++type IPv6Mreq C.struct_ipv6_mreq ++ ++type Msghdr C.struct_msghdr ++ ++type Cmsghdr C.struct_cmsghdr ++ ++type Inet6Pktinfo C.struct_in6_pktinfo ++ ++type IPv6MTUInfo C.struct_ip6_mtuinfo ++ ++type ICMPv6Filter C.struct_icmp6_filter ++ ++const ( ++ SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in ++ SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 ++ SizeofSockaddrAny = C.sizeof_struct_sockaddr_any ++ SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un ++ SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl ++ SizeofLinger = C.sizeof_struct_linger ++ SizeofIPMreq = C.sizeof_struct_ip_mreq ++ SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq ++ SizeofMsghdr = C.sizeof_struct_msghdr ++ SizeofCmsghdr = C.sizeof_struct_cmsghdr ++ SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo ++ SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo ++ SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter ++) ++ ++// Ptrace requests ++ ++const ( ++ PTRACE_TRACEME = C.PT_TRACE_ME ++ PTRACE_CONT = C.PT_CONTINUE ++ PTRACE_KILL = C.PT_KILL ++) ++ ++// Events (kqueue, kevent) ++ ++type Kevent_t C.struct_kevent ++ ++// Select ++ ++type FdSet C.fd_set ++ ++// Routing and interface messages ++ ++const ( ++ SizeofIfMsghdr = C.sizeof_struct_if_msghdr ++ SizeofIfData = C.sizeof_struct_if_data ++ SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr ++ SizeofIfmaMsghdr = C.sizeof_struct_ifma_msghdr ++ SizeofIfAnnounceMsghdr = C.sizeof_struct_if_announcemsghdr ++ SizeofRtMsghdr = C.sizeof_struct_rt_msghdr ++ SizeofRtMetrics = C.sizeof_struct_rt_metrics ++) ++ ++type IfMsghdr C.struct_if_msghdr ++ ++type IfData C.struct_if_data ++ ++type IfaMsghdr C.struct_ifa_msghdr ++ ++type IfmaMsghdr C.struct_ifma_msghdr ++ ++type IfAnnounceMsghdr C.struct_if_announcemsghdr ++ ++type RtMsghdr C.struct_rt_msghdr ++ ++type RtMetrics C.struct_rt_metrics ++ ++// Berkeley packet filter ++ ++const ( ++ SizeofBpfVersion = C.sizeof_struct_bpf_version ++ SizeofBpfStat = C.sizeof_struct_bpf_stat ++ SizeofBpfProgram = C.sizeof_struct_bpf_program ++ SizeofBpfInsn = C.sizeof_struct_bpf_insn ++ SizeofBpfHdr = C.sizeof_struct_bpf_hdr ++) ++ ++type BpfVersion C.struct_bpf_version ++ ++type BpfStat C.struct_bpf_stat ++ ++type BpfProgram C.struct_bpf_program ++ ++type BpfInsn C.struct_bpf_insn ++ ++type BpfHdr C.struct_bpf_hdr ++ ++// Terminal handling ++ ++type Termios C.struct_termios +diff --git a/vendor/golang.org/x/sys/unix/types_freebsd.go b/vendor/golang.org/x/sys/unix/types_freebsd.go +new file mode 100644 +index 0000000..ae24557 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/types_freebsd.go +@@ -0,0 +1,353 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build ignore ++ ++/* ++Input to cgo -godefs. See also mkerrors.sh and mkall.sh ++*/ ++ ++// +godefs map struct_in_addr [4]byte /* in_addr */ ++// +godefs map struct_in6_addr [16]byte /* in6_addr */ ++ ++package unix ++ ++/* ++#define KERNEL ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++enum { ++ sizeofPtr = sizeof(void*), ++}; ++ ++union sockaddr_all { ++ struct sockaddr s1; // this one gets used for fields ++ struct sockaddr_in s2; // these pad it out ++ struct sockaddr_in6 s3; ++ struct sockaddr_un s4; ++ struct sockaddr_dl s5; ++}; ++ ++struct sockaddr_any { ++ struct sockaddr addr; ++ char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; ++}; ++ ++// This structure is a duplicate of stat on FreeBSD 8-STABLE. ++// See /usr/include/sys/stat.h. ++struct stat8 { ++#undef st_atimespec st_atim ++#undef st_mtimespec st_mtim ++#undef st_ctimespec st_ctim ++#undef st_birthtimespec st_birthtim ++ __dev_t st_dev; ++ ino_t st_ino; ++ mode_t st_mode; ++ nlink_t st_nlink; ++ uid_t st_uid; ++ gid_t st_gid; ++ __dev_t st_rdev; ++#if __BSD_VISIBLE ++ struct timespec st_atimespec; ++ struct timespec st_mtimespec; ++ struct timespec st_ctimespec; ++#else ++ time_t st_atime; ++ long __st_atimensec; ++ time_t st_mtime; ++ long __st_mtimensec; ++ time_t st_ctime; ++ long __st_ctimensec; ++#endif ++ off_t st_size; ++ blkcnt_t st_blocks; ++ blksize_t st_blksize; ++ fflags_t st_flags; ++ __uint32_t st_gen; ++ __int32_t st_lspare; ++#if __BSD_VISIBLE ++ struct timespec st_birthtimespec; ++ unsigned int :(8 / 2) * (16 - (int)sizeof(struct timespec)); ++ unsigned int :(8 / 2) * (16 - (int)sizeof(struct timespec)); ++#else ++ time_t st_birthtime; ++ long st_birthtimensec; ++ unsigned int :(8 / 2) * (16 - (int)sizeof(struct __timespec)); ++ unsigned int :(8 / 2) * (16 - (int)sizeof(struct __timespec)); ++#endif ++}; ++ ++// This structure is a duplicate of if_data on FreeBSD 8-STABLE. ++// See /usr/include/net/if.h. ++struct if_data8 { ++ u_char ifi_type; ++ u_char ifi_physical; ++ u_char ifi_addrlen; ++ u_char ifi_hdrlen; ++ u_char ifi_link_state; ++ u_char ifi_spare_char1; ++ u_char ifi_spare_char2; ++ u_char ifi_datalen; ++ u_long ifi_mtu; ++ u_long ifi_metric; ++ u_long ifi_baudrate; ++ u_long ifi_ipackets; ++ u_long ifi_ierrors; ++ u_long ifi_opackets; ++ u_long ifi_oerrors; ++ u_long ifi_collisions; ++ u_long ifi_ibytes; ++ u_long ifi_obytes; ++ u_long ifi_imcasts; ++ u_long ifi_omcasts; ++ u_long ifi_iqdrops; ++ u_long ifi_noproto; ++ u_long ifi_hwassist; ++ time_t ifi_epoch; ++ struct timeval ifi_lastchange; ++}; ++ ++// This structure is a duplicate of if_msghdr on FreeBSD 8-STABLE. ++// See /usr/include/net/if.h. ++struct if_msghdr8 { ++ u_short ifm_msglen; ++ u_char ifm_version; ++ u_char ifm_type; ++ int ifm_addrs; ++ int ifm_flags; ++ u_short ifm_index; ++ struct if_data8 ifm_data; ++}; ++*/ ++import "C" ++ ++// Machine characteristics; for internal use. ++ ++const ( ++ sizeofPtr = C.sizeofPtr ++ sizeofShort = C.sizeof_short ++ sizeofInt = C.sizeof_int ++ sizeofLong = C.sizeof_long ++ sizeofLongLong = C.sizeof_longlong ++) ++ ++// Basic types ++ ++type ( ++ _C_short C.short ++ _C_int C.int ++ _C_long C.long ++ _C_long_long C.longlong ++) ++ ++// Time ++ ++type Timespec C.struct_timespec ++ ++type Timeval C.struct_timeval ++ ++// Processes ++ ++type Rusage C.struct_rusage ++ ++type Rlimit C.struct_rlimit ++ ++type _Gid_t C.gid_t ++ ++// Files ++ ++const ( // Directory mode bits ++ S_IFMT = C.S_IFMT ++ S_IFIFO = C.S_IFIFO ++ S_IFCHR = C.S_IFCHR ++ S_IFDIR = C.S_IFDIR ++ S_IFBLK = C.S_IFBLK ++ S_IFREG = C.S_IFREG ++ S_IFLNK = C.S_IFLNK ++ S_IFSOCK = C.S_IFSOCK ++ S_ISUID = C.S_ISUID ++ S_ISGID = C.S_ISGID ++ S_ISVTX = C.S_ISVTX ++ S_IRUSR = C.S_IRUSR ++ S_IWUSR = C.S_IWUSR ++ S_IXUSR = C.S_IXUSR ++) ++ ++type Stat_t C.struct_stat8 ++ ++type Statfs_t C.struct_statfs ++ ++type Flock_t C.struct_flock ++ ++type Dirent C.struct_dirent ++ ++type Fsid C.struct_fsid ++ ++// Advice to Fadvise ++ ++const ( ++ FADV_NORMAL = C.POSIX_FADV_NORMAL ++ FADV_RANDOM = C.POSIX_FADV_RANDOM ++ FADV_SEQUENTIAL = C.POSIX_FADV_SEQUENTIAL ++ FADV_WILLNEED = C.POSIX_FADV_WILLNEED ++ FADV_DONTNEED = C.POSIX_FADV_DONTNEED ++ FADV_NOREUSE = C.POSIX_FADV_NOREUSE ++) ++ ++// Sockets ++ ++type RawSockaddrInet4 C.struct_sockaddr_in ++ ++type RawSockaddrInet6 C.struct_sockaddr_in6 ++ ++type RawSockaddrUnix C.struct_sockaddr_un ++ ++type RawSockaddrDatalink C.struct_sockaddr_dl ++ ++type RawSockaddr C.struct_sockaddr ++ ++type RawSockaddrAny C.struct_sockaddr_any ++ ++type _Socklen C.socklen_t ++ ++type Linger C.struct_linger ++ ++type Iovec C.struct_iovec ++ ++type IPMreq C.struct_ip_mreq ++ ++type IPMreqn C.struct_ip_mreqn ++ ++type IPv6Mreq C.struct_ipv6_mreq ++ ++type Msghdr C.struct_msghdr ++ ++type Cmsghdr C.struct_cmsghdr ++ ++type Inet6Pktinfo C.struct_in6_pktinfo ++ ++type IPv6MTUInfo C.struct_ip6_mtuinfo ++ ++type ICMPv6Filter C.struct_icmp6_filter ++ ++const ( ++ SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in ++ SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 ++ SizeofSockaddrAny = C.sizeof_struct_sockaddr_any ++ SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un ++ SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl ++ SizeofLinger = C.sizeof_struct_linger ++ SizeofIPMreq = C.sizeof_struct_ip_mreq ++ SizeofIPMreqn = C.sizeof_struct_ip_mreqn ++ SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq ++ SizeofMsghdr = C.sizeof_struct_msghdr ++ SizeofCmsghdr = C.sizeof_struct_cmsghdr ++ SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo ++ SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo ++ SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter ++) ++ ++// Ptrace requests ++ ++const ( ++ PTRACE_TRACEME = C.PT_TRACE_ME ++ PTRACE_CONT = C.PT_CONTINUE ++ PTRACE_KILL = C.PT_KILL ++) ++ ++// Events (kqueue, kevent) ++ ++type Kevent_t C.struct_kevent ++ ++// Select ++ ++type FdSet C.fd_set ++ ++// Routing and interface messages ++ ++const ( ++ sizeofIfMsghdr = C.sizeof_struct_if_msghdr ++ SizeofIfMsghdr = C.sizeof_struct_if_msghdr8 ++ sizeofIfData = C.sizeof_struct_if_data ++ SizeofIfData = C.sizeof_struct_if_data8 ++ SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr ++ SizeofIfmaMsghdr = C.sizeof_struct_ifma_msghdr ++ SizeofIfAnnounceMsghdr = C.sizeof_struct_if_announcemsghdr ++ SizeofRtMsghdr = C.sizeof_struct_rt_msghdr ++ SizeofRtMetrics = C.sizeof_struct_rt_metrics ++) ++ ++type ifMsghdr C.struct_if_msghdr ++ ++type IfMsghdr C.struct_if_msghdr8 ++ ++type ifData C.struct_if_data ++ ++type IfData C.struct_if_data8 ++ ++type IfaMsghdr C.struct_ifa_msghdr ++ ++type IfmaMsghdr C.struct_ifma_msghdr ++ ++type IfAnnounceMsghdr C.struct_if_announcemsghdr ++ ++type RtMsghdr C.struct_rt_msghdr ++ ++type RtMetrics C.struct_rt_metrics ++ ++// Berkeley packet filter ++ ++const ( ++ SizeofBpfVersion = C.sizeof_struct_bpf_version ++ SizeofBpfStat = C.sizeof_struct_bpf_stat ++ SizeofBpfZbuf = C.sizeof_struct_bpf_zbuf ++ SizeofBpfProgram = C.sizeof_struct_bpf_program ++ SizeofBpfInsn = C.sizeof_struct_bpf_insn ++ SizeofBpfHdr = C.sizeof_struct_bpf_hdr ++ SizeofBpfZbufHeader = C.sizeof_struct_bpf_zbuf_header ++) ++ ++type BpfVersion C.struct_bpf_version ++ ++type BpfStat C.struct_bpf_stat ++ ++type BpfZbuf C.struct_bpf_zbuf ++ ++type BpfProgram C.struct_bpf_program ++ ++type BpfInsn C.struct_bpf_insn ++ ++type BpfHdr C.struct_bpf_hdr ++ ++type BpfZbufHeader C.struct_bpf_zbuf_header ++ ++// Terminal handling ++ ++type Termios C.struct_termios +diff --git a/vendor/golang.org/x/sys/unix/types_linux.go b/vendor/golang.org/x/sys/unix/types_linux.go +new file mode 100644 +index 0000000..ae79779 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/types_linux.go +@@ -0,0 +1,469 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build ignore ++ ++/* ++Input to cgo -godefs. See also mkerrors.sh and mkall.sh ++*/ ++ ++// +godefs map struct_in_addr [4]byte /* in_addr */ ++// +godefs map struct_in6_addr [16]byte /* in6_addr */ ++ ++package unix ++ ++/* ++#define _LARGEFILE_SOURCE ++#define _LARGEFILE64_SOURCE ++#define _FILE_OFFSET_BITS 64 ++#define _GNU_SOURCE ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#ifdef TCSETS2 ++// On systems that have "struct termios2" use this as type Termios. ++typedef struct termios2 termios_t; ++#else ++typedef struct termios termios_t; ++#endif ++ ++enum { ++ sizeofPtr = sizeof(void*), ++}; ++ ++union sockaddr_all { ++ struct sockaddr s1; // this one gets used for fields ++ struct sockaddr_in s2; // these pad it out ++ struct sockaddr_in6 s3; ++ struct sockaddr_un s4; ++ struct sockaddr_ll s5; ++ struct sockaddr_nl s6; ++}; ++ ++struct sockaddr_any { ++ struct sockaddr addr; ++ char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; ++}; ++ ++// copied from /usr/include/linux/un.h ++struct my_sockaddr_un { ++ sa_family_t sun_family; ++#if defined(__ARM_EABI__) || defined(__powerpc64__) ++ // on ARM char is by default unsigned ++ signed char sun_path[108]; ++#else ++ char sun_path[108]; ++#endif ++}; ++ ++#ifdef __ARM_EABI__ ++typedef struct user_regs PtraceRegs; ++#elif defined(__aarch64__) ++typedef struct user_pt_regs PtraceRegs; ++#elif defined(__powerpc64__) ++typedef struct pt_regs PtraceRegs; ++#elif defined(__mips__) ++typedef struct user PtraceRegs; ++#elif defined(__s390x__) ++typedef struct _user_regs_struct PtraceRegs; ++#elif defined(__sparc__) ++#include ++typedef struct pt_regs PtraceRegs; ++#else ++typedef struct user_regs_struct PtraceRegs; ++#endif ++ ++#if defined(__s390x__) ++typedef struct _user_psw_struct ptracePsw; ++typedef struct _user_fpregs_struct ptraceFpregs; ++typedef struct _user_per_struct ptracePer; ++#else ++typedef struct {} ptracePsw; ++typedef struct {} ptraceFpregs; ++typedef struct {} ptracePer; ++#endif ++ ++// The real epoll_event is a union, and godefs doesn't handle it well. ++struct my_epoll_event { ++ uint32_t events; ++#if defined(__ARM_EABI__) || defined(__aarch64__) || (defined(__mips__) && _MIPS_SIM == _ABIO32) ++ // padding is not specified in linux/eventpoll.h but added to conform to the ++ // alignment requirements of EABI ++ int32_t padFd; ++#elif defined(__powerpc64__) || defined(__s390x__) || defined(__sparc__) ++ int32_t _padFd; ++#endif ++ int32_t fd; ++ int32_t pad; ++}; ++ ++*/ ++import "C" ++ ++// Machine characteristics; for internal use. ++ ++const ( ++ sizeofPtr = C.sizeofPtr ++ sizeofShort = C.sizeof_short ++ sizeofInt = C.sizeof_int ++ sizeofLong = C.sizeof_long ++ sizeofLongLong = C.sizeof_longlong ++ PathMax = C.PATH_MAX ++) ++ ++// Basic types ++ ++type ( ++ _C_short C.short ++ _C_int C.int ++ _C_long C.long ++ _C_long_long C.longlong ++) ++ ++// Time ++ ++type Timespec C.struct_timespec ++ ++type Timeval C.struct_timeval ++ ++type Timex C.struct_timex ++ ++type Time_t C.time_t ++ ++type Tms C.struct_tms ++ ++type Utimbuf C.struct_utimbuf ++ ++// Processes ++ ++type Rusage C.struct_rusage ++ ++type Rlimit C.struct_rlimit ++ ++type _Gid_t C.gid_t ++ ++// Files ++ ++type Stat_t C.struct_stat ++ ++type Statfs_t C.struct_statfs ++ ++type Dirent C.struct_dirent ++ ++type Fsid C.fsid_t ++ ++type Flock_t C.struct_flock ++ ++// Advice to Fadvise ++ ++const ( ++ FADV_NORMAL = C.POSIX_FADV_NORMAL ++ FADV_RANDOM = C.POSIX_FADV_RANDOM ++ FADV_SEQUENTIAL = C.POSIX_FADV_SEQUENTIAL ++ FADV_WILLNEED = C.POSIX_FADV_WILLNEED ++ FADV_DONTNEED = C.POSIX_FADV_DONTNEED ++ FADV_NOREUSE = C.POSIX_FADV_NOREUSE ++) ++ ++// Sockets ++ ++type RawSockaddrInet4 C.struct_sockaddr_in ++ ++type RawSockaddrInet6 C.struct_sockaddr_in6 ++ ++type RawSockaddrUnix C.struct_my_sockaddr_un ++ ++type RawSockaddrLinklayer C.struct_sockaddr_ll ++ ++type RawSockaddrNetlink C.struct_sockaddr_nl ++ ++type RawSockaddrHCI C.struct_sockaddr_hci ++ ++type RawSockaddrCAN C.struct_sockaddr_can ++ ++type RawSockaddrALG C.struct_sockaddr_alg ++ ++type RawSockaddrVM C.struct_sockaddr_vm ++ ++type RawSockaddr C.struct_sockaddr ++ ++type RawSockaddrAny C.struct_sockaddr_any ++ ++type _Socklen C.socklen_t ++ ++type Linger C.struct_linger ++ ++type Iovec C.struct_iovec ++ ++type IPMreq C.struct_ip_mreq ++ ++type IPMreqn C.struct_ip_mreqn ++ ++type IPv6Mreq C.struct_ipv6_mreq ++ ++type Msghdr C.struct_msghdr ++ ++type Cmsghdr C.struct_cmsghdr ++ ++type Inet4Pktinfo C.struct_in_pktinfo ++ ++type Inet6Pktinfo C.struct_in6_pktinfo ++ ++type IPv6MTUInfo C.struct_ip6_mtuinfo ++ ++type ICMPv6Filter C.struct_icmp6_filter ++ ++type Ucred C.struct_ucred ++ ++type TCPInfo C.struct_tcp_info ++ ++const ( ++ SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in ++ SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 ++ SizeofSockaddrAny = C.sizeof_struct_sockaddr_any ++ SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un ++ SizeofSockaddrLinklayer = C.sizeof_struct_sockaddr_ll ++ SizeofSockaddrNetlink = C.sizeof_struct_sockaddr_nl ++ SizeofSockaddrHCI = C.sizeof_struct_sockaddr_hci ++ SizeofSockaddrCAN = C.sizeof_struct_sockaddr_can ++ SizeofSockaddrALG = C.sizeof_struct_sockaddr_alg ++ SizeofSockaddrVM = C.sizeof_struct_sockaddr_vm ++ SizeofLinger = C.sizeof_struct_linger ++ SizeofIPMreq = C.sizeof_struct_ip_mreq ++ SizeofIPMreqn = C.sizeof_struct_ip_mreqn ++ SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq ++ SizeofMsghdr = C.sizeof_struct_msghdr ++ SizeofCmsghdr = C.sizeof_struct_cmsghdr ++ SizeofInet4Pktinfo = C.sizeof_struct_in_pktinfo ++ SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo ++ SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo ++ SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter ++ SizeofUcred = C.sizeof_struct_ucred ++ SizeofTCPInfo = C.sizeof_struct_tcp_info ++) ++ ++// Netlink routing and interface messages ++ ++const ( ++ IFA_UNSPEC = C.IFA_UNSPEC ++ IFA_ADDRESS = C.IFA_ADDRESS ++ IFA_LOCAL = C.IFA_LOCAL ++ IFA_LABEL = C.IFA_LABEL ++ IFA_BROADCAST = C.IFA_BROADCAST ++ IFA_ANYCAST = C.IFA_ANYCAST ++ IFA_CACHEINFO = C.IFA_CACHEINFO ++ IFA_MULTICAST = C.IFA_MULTICAST ++ IFLA_UNSPEC = C.IFLA_UNSPEC ++ IFLA_ADDRESS = C.IFLA_ADDRESS ++ IFLA_BROADCAST = C.IFLA_BROADCAST ++ IFLA_IFNAME = C.IFLA_IFNAME ++ IFLA_MTU = C.IFLA_MTU ++ IFLA_LINK = C.IFLA_LINK ++ IFLA_QDISC = C.IFLA_QDISC ++ IFLA_STATS = C.IFLA_STATS ++ IFLA_COST = C.IFLA_COST ++ IFLA_PRIORITY = C.IFLA_PRIORITY ++ IFLA_MASTER = C.IFLA_MASTER ++ IFLA_WIRELESS = C.IFLA_WIRELESS ++ IFLA_PROTINFO = C.IFLA_PROTINFO ++ IFLA_TXQLEN = C.IFLA_TXQLEN ++ IFLA_MAP = C.IFLA_MAP ++ IFLA_WEIGHT = C.IFLA_WEIGHT ++ IFLA_OPERSTATE = C.IFLA_OPERSTATE ++ IFLA_LINKMODE = C.IFLA_LINKMODE ++ IFLA_LINKINFO = C.IFLA_LINKINFO ++ IFLA_NET_NS_PID = C.IFLA_NET_NS_PID ++ IFLA_IFALIAS = C.IFLA_IFALIAS ++ IFLA_MAX = C.IFLA_MAX ++ RT_SCOPE_UNIVERSE = C.RT_SCOPE_UNIVERSE ++ RT_SCOPE_SITE = C.RT_SCOPE_SITE ++ RT_SCOPE_LINK = C.RT_SCOPE_LINK ++ RT_SCOPE_HOST = C.RT_SCOPE_HOST ++ RT_SCOPE_NOWHERE = C.RT_SCOPE_NOWHERE ++ RT_TABLE_UNSPEC = C.RT_TABLE_UNSPEC ++ RT_TABLE_COMPAT = C.RT_TABLE_COMPAT ++ RT_TABLE_DEFAULT = C.RT_TABLE_DEFAULT ++ RT_TABLE_MAIN = C.RT_TABLE_MAIN ++ RT_TABLE_LOCAL = C.RT_TABLE_LOCAL ++ RT_TABLE_MAX = C.RT_TABLE_MAX ++ RTA_UNSPEC = C.RTA_UNSPEC ++ RTA_DST = C.RTA_DST ++ RTA_SRC = C.RTA_SRC ++ RTA_IIF = C.RTA_IIF ++ RTA_OIF = C.RTA_OIF ++ RTA_GATEWAY = C.RTA_GATEWAY ++ RTA_PRIORITY = C.RTA_PRIORITY ++ RTA_PREFSRC = C.RTA_PREFSRC ++ RTA_METRICS = C.RTA_METRICS ++ RTA_MULTIPATH = C.RTA_MULTIPATH ++ RTA_FLOW = C.RTA_FLOW ++ RTA_CACHEINFO = C.RTA_CACHEINFO ++ RTA_TABLE = C.RTA_TABLE ++ RTN_UNSPEC = C.RTN_UNSPEC ++ RTN_UNICAST = C.RTN_UNICAST ++ RTN_LOCAL = C.RTN_LOCAL ++ RTN_BROADCAST = C.RTN_BROADCAST ++ RTN_ANYCAST = C.RTN_ANYCAST ++ RTN_MULTICAST = C.RTN_MULTICAST ++ RTN_BLACKHOLE = C.RTN_BLACKHOLE ++ RTN_UNREACHABLE = C.RTN_UNREACHABLE ++ RTN_PROHIBIT = C.RTN_PROHIBIT ++ RTN_THROW = C.RTN_THROW ++ RTN_NAT = C.RTN_NAT ++ RTN_XRESOLVE = C.RTN_XRESOLVE ++ RTNLGRP_NONE = C.RTNLGRP_NONE ++ RTNLGRP_LINK = C.RTNLGRP_LINK ++ RTNLGRP_NOTIFY = C.RTNLGRP_NOTIFY ++ RTNLGRP_NEIGH = C.RTNLGRP_NEIGH ++ RTNLGRP_TC = C.RTNLGRP_TC ++ RTNLGRP_IPV4_IFADDR = C.RTNLGRP_IPV4_IFADDR ++ RTNLGRP_IPV4_MROUTE = C.RTNLGRP_IPV4_MROUTE ++ RTNLGRP_IPV4_ROUTE = C.RTNLGRP_IPV4_ROUTE ++ RTNLGRP_IPV4_RULE = C.RTNLGRP_IPV4_RULE ++ RTNLGRP_IPV6_IFADDR = C.RTNLGRP_IPV6_IFADDR ++ RTNLGRP_IPV6_MROUTE = C.RTNLGRP_IPV6_MROUTE ++ RTNLGRP_IPV6_ROUTE = C.RTNLGRP_IPV6_ROUTE ++ RTNLGRP_IPV6_IFINFO = C.RTNLGRP_IPV6_IFINFO ++ RTNLGRP_IPV6_PREFIX = C.RTNLGRP_IPV6_PREFIX ++ RTNLGRP_IPV6_RULE = C.RTNLGRP_IPV6_RULE ++ RTNLGRP_ND_USEROPT = C.RTNLGRP_ND_USEROPT ++ SizeofNlMsghdr = C.sizeof_struct_nlmsghdr ++ SizeofNlMsgerr = C.sizeof_struct_nlmsgerr ++ SizeofRtGenmsg = C.sizeof_struct_rtgenmsg ++ SizeofNlAttr = C.sizeof_struct_nlattr ++ SizeofRtAttr = C.sizeof_struct_rtattr ++ SizeofIfInfomsg = C.sizeof_struct_ifinfomsg ++ SizeofIfAddrmsg = C.sizeof_struct_ifaddrmsg ++ SizeofRtMsg = C.sizeof_struct_rtmsg ++ SizeofRtNexthop = C.sizeof_struct_rtnexthop ++) ++ ++type NlMsghdr C.struct_nlmsghdr ++ ++type NlMsgerr C.struct_nlmsgerr ++ ++type RtGenmsg C.struct_rtgenmsg ++ ++type NlAttr C.struct_nlattr ++ ++type RtAttr C.struct_rtattr ++ ++type IfInfomsg C.struct_ifinfomsg ++ ++type IfAddrmsg C.struct_ifaddrmsg ++ ++type RtMsg C.struct_rtmsg ++ ++type RtNexthop C.struct_rtnexthop ++ ++// Linux socket filter ++ ++const ( ++ SizeofSockFilter = C.sizeof_struct_sock_filter ++ SizeofSockFprog = C.sizeof_struct_sock_fprog ++) ++ ++type SockFilter C.struct_sock_filter ++ ++type SockFprog C.struct_sock_fprog ++ ++// Inotify ++ ++type InotifyEvent C.struct_inotify_event ++ ++const SizeofInotifyEvent = C.sizeof_struct_inotify_event ++ ++// Ptrace ++ ++// Register structures ++type PtraceRegs C.PtraceRegs ++ ++// Structures contained in PtraceRegs on s390x (exported by mkpost.go) ++type ptracePsw C.ptracePsw ++ ++type ptraceFpregs C.ptraceFpregs ++ ++type ptracePer C.ptracePer ++ ++// Misc ++ ++type FdSet C.fd_set ++ ++type Sysinfo_t C.struct_sysinfo ++ ++type Utsname C.struct_utsname ++ ++type Ustat_t C.struct_ustat ++ ++type EpollEvent C.struct_my_epoll_event ++ ++const ( ++ AT_FDCWD = C.AT_FDCWD ++ AT_REMOVEDIR = C.AT_REMOVEDIR ++ AT_SYMLINK_FOLLOW = C.AT_SYMLINK_FOLLOW ++ AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW ++) ++ ++type PollFd C.struct_pollfd ++ ++const ( ++ POLLIN = C.POLLIN ++ POLLPRI = C.POLLPRI ++ POLLOUT = C.POLLOUT ++ POLLRDHUP = C.POLLRDHUP ++ POLLERR = C.POLLERR ++ POLLHUP = C.POLLHUP ++ POLLNVAL = C.POLLNVAL ++) ++ ++type Sigset_t C.sigset_t ++ ++// sysconf information ++ ++const _SC_PAGESIZE = C._SC_PAGESIZE ++ ++// Terminal handling ++ ++type Termios C.termios_t +diff --git a/vendor/golang.org/x/sys/unix/types_netbsd.go b/vendor/golang.org/x/sys/unix/types_netbsd.go +new file mode 100644 +index 0000000..d15f93d +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/types_netbsd.go +@@ -0,0 +1,232 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build ignore ++ ++/* ++Input to cgo -godefs. See also mkerrors.sh and mkall.sh ++*/ ++ ++// +godefs map struct_in_addr [4]byte /* in_addr */ ++// +godefs map struct_in6_addr [16]byte /* in6_addr */ ++ ++package unix ++ ++/* ++#define KERNEL ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++enum { ++ sizeofPtr = sizeof(void*), ++}; ++ ++union sockaddr_all { ++ struct sockaddr s1; // this one gets used for fields ++ struct sockaddr_in s2; // these pad it out ++ struct sockaddr_in6 s3; ++ struct sockaddr_un s4; ++ struct sockaddr_dl s5; ++}; ++ ++struct sockaddr_any { ++ struct sockaddr addr; ++ char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; ++}; ++ ++*/ ++import "C" ++ ++// Machine characteristics; for internal use. ++ ++const ( ++ sizeofPtr = C.sizeofPtr ++ sizeofShort = C.sizeof_short ++ sizeofInt = C.sizeof_int ++ sizeofLong = C.sizeof_long ++ sizeofLongLong = C.sizeof_longlong ++) ++ ++// Basic types ++ ++type ( ++ _C_short C.short ++ _C_int C.int ++ _C_long C.long ++ _C_long_long C.longlong ++) ++ ++// Time ++ ++type Timespec C.struct_timespec ++ ++type Timeval C.struct_timeval ++ ++// Processes ++ ++type Rusage C.struct_rusage ++ ++type Rlimit C.struct_rlimit ++ ++type _Gid_t C.gid_t ++ ++// Files ++ ++type Stat_t C.struct_stat ++ ++type Statfs_t C.struct_statfs ++ ++type Flock_t C.struct_flock ++ ++type Dirent C.struct_dirent ++ ++type Fsid C.fsid_t ++ ++// Sockets ++ ++type RawSockaddrInet4 C.struct_sockaddr_in ++ ++type RawSockaddrInet6 C.struct_sockaddr_in6 ++ ++type RawSockaddrUnix C.struct_sockaddr_un ++ ++type RawSockaddrDatalink C.struct_sockaddr_dl ++ ++type RawSockaddr C.struct_sockaddr ++ ++type RawSockaddrAny C.struct_sockaddr_any ++ ++type _Socklen C.socklen_t ++ ++type Linger C.struct_linger ++ ++type Iovec C.struct_iovec ++ ++type IPMreq C.struct_ip_mreq ++ ++type IPv6Mreq C.struct_ipv6_mreq ++ ++type Msghdr C.struct_msghdr ++ ++type Cmsghdr C.struct_cmsghdr ++ ++type Inet6Pktinfo C.struct_in6_pktinfo ++ ++type IPv6MTUInfo C.struct_ip6_mtuinfo ++ ++type ICMPv6Filter C.struct_icmp6_filter ++ ++const ( ++ SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in ++ SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 ++ SizeofSockaddrAny = C.sizeof_struct_sockaddr_any ++ SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un ++ SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl ++ SizeofLinger = C.sizeof_struct_linger ++ SizeofIPMreq = C.sizeof_struct_ip_mreq ++ SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq ++ SizeofMsghdr = C.sizeof_struct_msghdr ++ SizeofCmsghdr = C.sizeof_struct_cmsghdr ++ SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo ++ SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo ++ SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter ++) ++ ++// Ptrace requests ++ ++const ( ++ PTRACE_TRACEME = C.PT_TRACE_ME ++ PTRACE_CONT = C.PT_CONTINUE ++ PTRACE_KILL = C.PT_KILL ++) ++ ++// Events (kqueue, kevent) ++ ++type Kevent_t C.struct_kevent ++ ++// Select ++ ++type FdSet C.fd_set ++ ++// Routing and interface messages ++ ++const ( ++ SizeofIfMsghdr = C.sizeof_struct_if_msghdr ++ SizeofIfData = C.sizeof_struct_if_data ++ SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr ++ SizeofIfAnnounceMsghdr = C.sizeof_struct_if_announcemsghdr ++ SizeofRtMsghdr = C.sizeof_struct_rt_msghdr ++ SizeofRtMetrics = C.sizeof_struct_rt_metrics ++) ++ ++type IfMsghdr C.struct_if_msghdr ++ ++type IfData C.struct_if_data ++ ++type IfaMsghdr C.struct_ifa_msghdr ++ ++type IfAnnounceMsghdr C.struct_if_announcemsghdr ++ ++type RtMsghdr C.struct_rt_msghdr ++ ++type RtMetrics C.struct_rt_metrics ++ ++type Mclpool C.struct_mclpool ++ ++// Berkeley packet filter ++ ++const ( ++ SizeofBpfVersion = C.sizeof_struct_bpf_version ++ SizeofBpfStat = C.sizeof_struct_bpf_stat ++ SizeofBpfProgram = C.sizeof_struct_bpf_program ++ SizeofBpfInsn = C.sizeof_struct_bpf_insn ++ SizeofBpfHdr = C.sizeof_struct_bpf_hdr ++) ++ ++type BpfVersion C.struct_bpf_version ++ ++type BpfStat C.struct_bpf_stat ++ ++type BpfProgram C.struct_bpf_program ++ ++type BpfInsn C.struct_bpf_insn ++ ++type BpfHdr C.struct_bpf_hdr ++ ++type BpfTimeval C.struct_bpf_timeval ++ ++// Terminal handling ++ ++type Termios C.struct_termios ++ ++// Sysctl ++ ++type Sysctlnode C.struct_sysctlnode +diff --git a/vendor/golang.org/x/sys/unix/types_openbsd.go b/vendor/golang.org/x/sys/unix/types_openbsd.go +new file mode 100644 +index 0000000..b66fe25 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/types_openbsd.go +@@ -0,0 +1,244 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build ignore ++ ++/* ++Input to cgo -godefs. See also mkerrors.sh and mkall.sh ++*/ ++ ++// +godefs map struct_in_addr [4]byte /* in_addr */ ++// +godefs map struct_in6_addr [16]byte /* in6_addr */ ++ ++package unix ++ ++/* ++#define KERNEL ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++enum { ++ sizeofPtr = sizeof(void*), ++}; ++ ++union sockaddr_all { ++ struct sockaddr s1; // this one gets used for fields ++ struct sockaddr_in s2; // these pad it out ++ struct sockaddr_in6 s3; ++ struct sockaddr_un s4; ++ struct sockaddr_dl s5; ++}; ++ ++struct sockaddr_any { ++ struct sockaddr addr; ++ char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; ++}; ++ ++*/ ++import "C" ++ ++// Machine characteristics; for internal use. ++ ++const ( ++ sizeofPtr = C.sizeofPtr ++ sizeofShort = C.sizeof_short ++ sizeofInt = C.sizeof_int ++ sizeofLong = C.sizeof_long ++ sizeofLongLong = C.sizeof_longlong ++) ++ ++// Basic types ++ ++type ( ++ _C_short C.short ++ _C_int C.int ++ _C_long C.long ++ _C_long_long C.longlong ++) ++ ++// Time ++ ++type Timespec C.struct_timespec ++ ++type Timeval C.struct_timeval ++ ++// Processes ++ ++type Rusage C.struct_rusage ++ ++type Rlimit C.struct_rlimit ++ ++type _Gid_t C.gid_t ++ ++// Files ++ ++const ( // Directory mode bits ++ S_IFMT = C.S_IFMT ++ S_IFIFO = C.S_IFIFO ++ S_IFCHR = C.S_IFCHR ++ S_IFDIR = C.S_IFDIR ++ S_IFBLK = C.S_IFBLK ++ S_IFREG = C.S_IFREG ++ S_IFLNK = C.S_IFLNK ++ S_IFSOCK = C.S_IFSOCK ++ S_ISUID = C.S_ISUID ++ S_ISGID = C.S_ISGID ++ S_ISVTX = C.S_ISVTX ++ S_IRUSR = C.S_IRUSR ++ S_IWUSR = C.S_IWUSR ++ S_IXUSR = C.S_IXUSR ++) ++ ++type Stat_t C.struct_stat ++ ++type Statfs_t C.struct_statfs ++ ++type Flock_t C.struct_flock ++ ++type Dirent C.struct_dirent ++ ++type Fsid C.fsid_t ++ ++// Sockets ++ ++type RawSockaddrInet4 C.struct_sockaddr_in ++ ++type RawSockaddrInet6 C.struct_sockaddr_in6 ++ ++type RawSockaddrUnix C.struct_sockaddr_un ++ ++type RawSockaddrDatalink C.struct_sockaddr_dl ++ ++type RawSockaddr C.struct_sockaddr ++ ++type RawSockaddrAny C.struct_sockaddr_any ++ ++type _Socklen C.socklen_t ++ ++type Linger C.struct_linger ++ ++type Iovec C.struct_iovec ++ ++type IPMreq C.struct_ip_mreq ++ ++type IPv6Mreq C.struct_ipv6_mreq ++ ++type Msghdr C.struct_msghdr ++ ++type Cmsghdr C.struct_cmsghdr ++ ++type Inet6Pktinfo C.struct_in6_pktinfo ++ ++type IPv6MTUInfo C.struct_ip6_mtuinfo ++ ++type ICMPv6Filter C.struct_icmp6_filter ++ ++const ( ++ SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in ++ SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 ++ SizeofSockaddrAny = C.sizeof_struct_sockaddr_any ++ SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un ++ SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl ++ SizeofLinger = C.sizeof_struct_linger ++ SizeofIPMreq = C.sizeof_struct_ip_mreq ++ SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq ++ SizeofMsghdr = C.sizeof_struct_msghdr ++ SizeofCmsghdr = C.sizeof_struct_cmsghdr ++ SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo ++ SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo ++ SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter ++) ++ ++// Ptrace requests ++ ++const ( ++ PTRACE_TRACEME = C.PT_TRACE_ME ++ PTRACE_CONT = C.PT_CONTINUE ++ PTRACE_KILL = C.PT_KILL ++) ++ ++// Events (kqueue, kevent) ++ ++type Kevent_t C.struct_kevent ++ ++// Select ++ ++type FdSet C.fd_set ++ ++// Routing and interface messages ++ ++const ( ++ SizeofIfMsghdr = C.sizeof_struct_if_msghdr ++ SizeofIfData = C.sizeof_struct_if_data ++ SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr ++ SizeofIfAnnounceMsghdr = C.sizeof_struct_if_announcemsghdr ++ SizeofRtMsghdr = C.sizeof_struct_rt_msghdr ++ SizeofRtMetrics = C.sizeof_struct_rt_metrics ++) ++ ++type IfMsghdr C.struct_if_msghdr ++ ++type IfData C.struct_if_data ++ ++type IfaMsghdr C.struct_ifa_msghdr ++ ++type IfAnnounceMsghdr C.struct_if_announcemsghdr ++ ++type RtMsghdr C.struct_rt_msghdr ++ ++type RtMetrics C.struct_rt_metrics ++ ++type Mclpool C.struct_mclpool ++ ++// Berkeley packet filter ++ ++const ( ++ SizeofBpfVersion = C.sizeof_struct_bpf_version ++ SizeofBpfStat = C.sizeof_struct_bpf_stat ++ SizeofBpfProgram = C.sizeof_struct_bpf_program ++ SizeofBpfInsn = C.sizeof_struct_bpf_insn ++ SizeofBpfHdr = C.sizeof_struct_bpf_hdr ++) ++ ++type BpfVersion C.struct_bpf_version ++ ++type BpfStat C.struct_bpf_stat ++ ++type BpfProgram C.struct_bpf_program ++ ++type BpfInsn C.struct_bpf_insn ++ ++type BpfHdr C.struct_bpf_hdr ++ ++type BpfTimeval C.struct_bpf_timeval ++ ++// Terminal handling ++ ++type Termios C.struct_termios +diff --git a/vendor/golang.org/x/sys/unix/types_solaris.go b/vendor/golang.org/x/sys/unix/types_solaris.go +new file mode 100644 +index 0000000..c5d5c8f +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/types_solaris.go +@@ -0,0 +1,262 @@ ++// Copyright 2009 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build ignore ++ ++/* ++Input to cgo -godefs. See also mkerrors.sh and mkall.sh ++*/ ++ ++// +godefs map struct_in_addr [4]byte /* in_addr */ ++// +godefs map struct_in6_addr [16]byte /* in6_addr */ ++ ++package unix ++ ++/* ++#define KERNEL ++// These defines ensure that builds done on newer versions of Solaris are ++// backwards-compatible with older versions of Solaris and ++// OpenSolaris-based derivatives. ++#define __USE_SUNOS_SOCKETS__ // msghdr ++#define __USE_LEGACY_PROTOTYPES__ // iovec ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++enum { ++ sizeofPtr = sizeof(void*), ++}; ++ ++union sockaddr_all { ++ struct sockaddr s1; // this one gets used for fields ++ struct sockaddr_in s2; // these pad it out ++ struct sockaddr_in6 s3; ++ struct sockaddr_un s4; ++ struct sockaddr_dl s5; ++}; ++ ++struct sockaddr_any { ++ struct sockaddr addr; ++ char pad[sizeof(union sockaddr_all) - sizeof(struct sockaddr)]; ++}; ++ ++*/ ++import "C" ++ ++// Machine characteristics; for internal use. ++ ++const ( ++ sizeofPtr = C.sizeofPtr ++ sizeofShort = C.sizeof_short ++ sizeofInt = C.sizeof_int ++ sizeofLong = C.sizeof_long ++ sizeofLongLong = C.sizeof_longlong ++ PathMax = C.PATH_MAX ++ MaxHostNameLen = C.MAXHOSTNAMELEN ++) ++ ++// Basic types ++ ++type ( ++ _C_short C.short ++ _C_int C.int ++ _C_long C.long ++ _C_long_long C.longlong ++) ++ ++// Time ++ ++type Timespec C.struct_timespec ++ ++type Timeval C.struct_timeval ++ ++type Timeval32 C.struct_timeval32 ++ ++type Tms C.struct_tms ++ ++type Utimbuf C.struct_utimbuf ++ ++// Processes ++ ++type Rusage C.struct_rusage ++ ++type Rlimit C.struct_rlimit ++ ++type _Gid_t C.gid_t ++ ++// Files ++ ++const ( // Directory mode bits ++ S_IFMT = C.S_IFMT ++ S_IFIFO = C.S_IFIFO ++ S_IFCHR = C.S_IFCHR ++ S_IFDIR = C.S_IFDIR ++ S_IFBLK = C.S_IFBLK ++ S_IFREG = C.S_IFREG ++ S_IFLNK = C.S_IFLNK ++ S_IFSOCK = C.S_IFSOCK ++ S_ISUID = C.S_ISUID ++ S_ISGID = C.S_ISGID ++ S_ISVTX = C.S_ISVTX ++ S_IRUSR = C.S_IRUSR ++ S_IWUSR = C.S_IWUSR ++ S_IXUSR = C.S_IXUSR ++) ++ ++type Stat_t C.struct_stat ++ ++type Flock_t C.struct_flock ++ ++type Dirent C.struct_dirent ++ ++// Sockets ++ ++type RawSockaddrInet4 C.struct_sockaddr_in ++ ++type RawSockaddrInet6 C.struct_sockaddr_in6 ++ ++type RawSockaddrUnix C.struct_sockaddr_un ++ ++type RawSockaddrDatalink C.struct_sockaddr_dl ++ ++type RawSockaddr C.struct_sockaddr ++ ++type RawSockaddrAny C.struct_sockaddr_any ++ ++type _Socklen C.socklen_t ++ ++type Linger C.struct_linger ++ ++type Iovec C.struct_iovec ++ ++type IPMreq C.struct_ip_mreq ++ ++type IPv6Mreq C.struct_ipv6_mreq ++ ++type Msghdr C.struct_msghdr ++ ++type Cmsghdr C.struct_cmsghdr ++ ++type Inet6Pktinfo C.struct_in6_pktinfo ++ ++type IPv6MTUInfo C.struct_ip6_mtuinfo ++ ++type ICMPv6Filter C.struct_icmp6_filter ++ ++const ( ++ SizeofSockaddrInet4 = C.sizeof_struct_sockaddr_in ++ SizeofSockaddrInet6 = C.sizeof_struct_sockaddr_in6 ++ SizeofSockaddrAny = C.sizeof_struct_sockaddr_any ++ SizeofSockaddrUnix = C.sizeof_struct_sockaddr_un ++ SizeofSockaddrDatalink = C.sizeof_struct_sockaddr_dl ++ SizeofLinger = C.sizeof_struct_linger ++ SizeofIPMreq = C.sizeof_struct_ip_mreq ++ SizeofIPv6Mreq = C.sizeof_struct_ipv6_mreq ++ SizeofMsghdr = C.sizeof_struct_msghdr ++ SizeofCmsghdr = C.sizeof_struct_cmsghdr ++ SizeofInet6Pktinfo = C.sizeof_struct_in6_pktinfo ++ SizeofIPv6MTUInfo = C.sizeof_struct_ip6_mtuinfo ++ SizeofICMPv6Filter = C.sizeof_struct_icmp6_filter ++) ++ ++// Select ++ ++type FdSet C.fd_set ++ ++// Misc ++ ++type Utsname C.struct_utsname ++ ++type Ustat_t C.struct_ustat ++ ++const ( ++ AT_FDCWD = C.AT_FDCWD ++ AT_SYMLINK_NOFOLLOW = C.AT_SYMLINK_NOFOLLOW ++ AT_SYMLINK_FOLLOW = C.AT_SYMLINK_FOLLOW ++ AT_REMOVEDIR = C.AT_REMOVEDIR ++ AT_EACCESS = C.AT_EACCESS ++) ++ ++// Routing and interface messages ++ ++const ( ++ SizeofIfMsghdr = C.sizeof_struct_if_msghdr ++ SizeofIfData = C.sizeof_struct_if_data ++ SizeofIfaMsghdr = C.sizeof_struct_ifa_msghdr ++ SizeofRtMsghdr = C.sizeof_struct_rt_msghdr ++ SizeofRtMetrics = C.sizeof_struct_rt_metrics ++) ++ ++type IfMsghdr C.struct_if_msghdr ++ ++type IfData C.struct_if_data ++ ++type IfaMsghdr C.struct_ifa_msghdr ++ ++type RtMsghdr C.struct_rt_msghdr ++ ++type RtMetrics C.struct_rt_metrics ++ ++// Berkeley packet filter ++ ++const ( ++ SizeofBpfVersion = C.sizeof_struct_bpf_version ++ SizeofBpfStat = C.sizeof_struct_bpf_stat ++ SizeofBpfProgram = C.sizeof_struct_bpf_program ++ SizeofBpfInsn = C.sizeof_struct_bpf_insn ++ SizeofBpfHdr = C.sizeof_struct_bpf_hdr ++) ++ ++type BpfVersion C.struct_bpf_version ++ ++type BpfStat C.struct_bpf_stat ++ ++type BpfProgram C.struct_bpf_program ++ ++type BpfInsn C.struct_bpf_insn ++ ++type BpfTimeval C.struct_bpf_timeval ++ ++type BpfHdr C.struct_bpf_hdr ++ ++// sysconf information ++ ++const _SC_PAGESIZE = C._SC_PAGESIZE ++ ++// Terminal handling ++ ++type Termios C.struct_termios ++ ++type Termio C.struct_termio ++ ++type Winsize C.struct_winsize +diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go +new file mode 100644 +index 0000000..8e63888 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_386.go +@@ -0,0 +1,1576 @@ ++// mkerrors.sh -m32 ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build 386,darwin ++ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- -m32 _const.go ++ ++package unix ++ ++import "syscall" ++ ++const ( ++ AF_APPLETALK = 0x10 ++ AF_CCITT = 0xa ++ AF_CHAOS = 0x5 ++ AF_CNT = 0x15 ++ AF_COIP = 0x14 ++ AF_DATAKIT = 0x9 ++ AF_DECnet = 0xc ++ AF_DLI = 0xd ++ AF_E164 = 0x1c ++ AF_ECMA = 0x8 ++ AF_HYLINK = 0xf ++ AF_IEEE80211 = 0x25 ++ AF_IMPLINK = 0x3 ++ AF_INET = 0x2 ++ AF_INET6 = 0x1e ++ AF_IPX = 0x17 ++ AF_ISDN = 0x1c ++ AF_ISO = 0x7 ++ AF_LAT = 0xe ++ AF_LINK = 0x12 ++ AF_LOCAL = 0x1 ++ AF_MAX = 0x28 ++ AF_NATM = 0x1f ++ AF_NDRV = 0x1b ++ AF_NETBIOS = 0x21 ++ AF_NS = 0x6 ++ AF_OSI = 0x7 ++ AF_PPP = 0x22 ++ AF_PUP = 0x4 ++ AF_RESERVED_36 = 0x24 ++ AF_ROUTE = 0x11 ++ AF_SIP = 0x18 ++ AF_SNA = 0xb ++ AF_SYSTEM = 0x20 ++ AF_UNIX = 0x1 ++ AF_UNSPEC = 0x0 ++ AF_UTUN = 0x26 ++ B0 = 0x0 ++ B110 = 0x6e ++ B115200 = 0x1c200 ++ B1200 = 0x4b0 ++ B134 = 0x86 ++ B14400 = 0x3840 ++ B150 = 0x96 ++ B1800 = 0x708 ++ B19200 = 0x4b00 ++ B200 = 0xc8 ++ B230400 = 0x38400 ++ B2400 = 0x960 ++ B28800 = 0x7080 ++ B300 = 0x12c ++ B38400 = 0x9600 ++ B4800 = 0x12c0 ++ B50 = 0x32 ++ B57600 = 0xe100 ++ B600 = 0x258 ++ B7200 = 0x1c20 ++ B75 = 0x4b ++ B76800 = 0x12c00 ++ B9600 = 0x2580 ++ BIOCFLUSH = 0x20004268 ++ BIOCGBLEN = 0x40044266 ++ BIOCGDLT = 0x4004426a ++ BIOCGDLTLIST = 0xc00c4279 ++ BIOCGETIF = 0x4020426b ++ BIOCGHDRCMPLT = 0x40044274 ++ BIOCGRSIG = 0x40044272 ++ BIOCGRTIMEOUT = 0x4008426e ++ BIOCGSEESENT = 0x40044276 ++ BIOCGSTATS = 0x4008426f ++ BIOCIMMEDIATE = 0x80044270 ++ BIOCPROMISC = 0x20004269 ++ BIOCSBLEN = 0xc0044266 ++ BIOCSDLT = 0x80044278 ++ BIOCSETF = 0x80084267 ++ BIOCSETFNR = 0x8008427e ++ BIOCSETIF = 0x8020426c ++ BIOCSHDRCMPLT = 0x80044275 ++ BIOCSRSIG = 0x80044273 ++ BIOCSRTIMEOUT = 0x8008426d ++ BIOCSSEESENT = 0x80044277 ++ BIOCVERSION = 0x40044271 ++ BPF_A = 0x10 ++ BPF_ABS = 0x20 ++ BPF_ADD = 0x0 ++ BPF_ALIGNMENT = 0x4 ++ BPF_ALU = 0x4 ++ BPF_AND = 0x50 ++ BPF_B = 0x10 ++ BPF_DIV = 0x30 ++ BPF_H = 0x8 ++ BPF_IMM = 0x0 ++ BPF_IND = 0x40 ++ BPF_JA = 0x0 ++ BPF_JEQ = 0x10 ++ BPF_JGE = 0x30 ++ BPF_JGT = 0x20 ++ BPF_JMP = 0x5 ++ BPF_JSET = 0x40 ++ BPF_K = 0x0 ++ BPF_LD = 0x0 ++ BPF_LDX = 0x1 ++ BPF_LEN = 0x80 ++ BPF_LSH = 0x60 ++ BPF_MAJOR_VERSION = 0x1 ++ BPF_MAXBUFSIZE = 0x80000 ++ BPF_MAXINSNS = 0x200 ++ BPF_MEM = 0x60 ++ BPF_MEMWORDS = 0x10 ++ BPF_MINBUFSIZE = 0x20 ++ BPF_MINOR_VERSION = 0x1 ++ BPF_MISC = 0x7 ++ BPF_MSH = 0xa0 ++ BPF_MUL = 0x20 ++ BPF_NEG = 0x80 ++ BPF_OR = 0x40 ++ BPF_RELEASE = 0x30bb6 ++ BPF_RET = 0x6 ++ BPF_RSH = 0x70 ++ BPF_ST = 0x2 ++ BPF_STX = 0x3 ++ BPF_SUB = 0x10 ++ BPF_TAX = 0x0 ++ BPF_TXA = 0x80 ++ BPF_W = 0x0 ++ BPF_X = 0x8 ++ BRKINT = 0x2 ++ CFLUSH = 0xf ++ CLOCAL = 0x8000 ++ CREAD = 0x800 ++ CS5 = 0x0 ++ CS6 = 0x100 ++ CS7 = 0x200 ++ CS8 = 0x300 ++ CSIZE = 0x300 ++ CSTART = 0x11 ++ CSTATUS = 0x14 ++ CSTOP = 0x13 ++ CSTOPB = 0x400 ++ CSUSP = 0x1a ++ CTL_MAXNAME = 0xc ++ CTL_NET = 0x4 ++ DLT_A429 = 0xb8 ++ DLT_A653_ICM = 0xb9 ++ DLT_AIRONET_HEADER = 0x78 ++ DLT_AOS = 0xde ++ DLT_APPLE_IP_OVER_IEEE1394 = 0x8a ++ DLT_ARCNET = 0x7 ++ DLT_ARCNET_LINUX = 0x81 ++ DLT_ATM_CLIP = 0x13 ++ DLT_ATM_RFC1483 = 0xb ++ DLT_AURORA = 0x7e ++ DLT_AX25 = 0x3 ++ DLT_AX25_KISS = 0xca ++ DLT_BACNET_MS_TP = 0xa5 ++ DLT_BLUETOOTH_HCI_H4 = 0xbb ++ DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 ++ DLT_CAN20B = 0xbe ++ DLT_CAN_SOCKETCAN = 0xe3 ++ DLT_CHAOS = 0x5 ++ DLT_CHDLC = 0x68 ++ DLT_CISCO_IOS = 0x76 ++ DLT_C_HDLC = 0x68 ++ DLT_C_HDLC_WITH_DIR = 0xcd ++ DLT_DBUS = 0xe7 ++ DLT_DECT = 0xdd ++ DLT_DOCSIS = 0x8f ++ DLT_DVB_CI = 0xeb ++ DLT_ECONET = 0x73 ++ DLT_EN10MB = 0x1 ++ DLT_EN3MB = 0x2 ++ DLT_ENC = 0x6d ++ DLT_ERF = 0xc5 ++ DLT_ERF_ETH = 0xaf ++ DLT_ERF_POS = 0xb0 ++ DLT_FC_2 = 0xe0 ++ DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 ++ DLT_FDDI = 0xa ++ DLT_FLEXRAY = 0xd2 ++ DLT_FRELAY = 0x6b ++ DLT_FRELAY_WITH_DIR = 0xce ++ DLT_GCOM_SERIAL = 0xad ++ DLT_GCOM_T1E1 = 0xac ++ DLT_GPF_F = 0xab ++ DLT_GPF_T = 0xaa ++ DLT_GPRS_LLC = 0xa9 ++ DLT_GSMTAP_ABIS = 0xda ++ DLT_GSMTAP_UM = 0xd9 ++ DLT_HHDLC = 0x79 ++ DLT_IBM_SN = 0x92 ++ DLT_IBM_SP = 0x91 ++ DLT_IEEE802 = 0x6 ++ DLT_IEEE802_11 = 0x69 ++ DLT_IEEE802_11_RADIO = 0x7f ++ DLT_IEEE802_11_RADIO_AVS = 0xa3 ++ DLT_IEEE802_15_4 = 0xc3 ++ DLT_IEEE802_15_4_LINUX = 0xbf ++ DLT_IEEE802_15_4_NOFCS = 0xe6 ++ DLT_IEEE802_15_4_NONASK_PHY = 0xd7 ++ DLT_IEEE802_16_MAC_CPS = 0xbc ++ DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 ++ DLT_IPFILTER = 0x74 ++ DLT_IPMB = 0xc7 ++ DLT_IPMB_LINUX = 0xd1 ++ DLT_IPNET = 0xe2 ++ DLT_IPOIB = 0xf2 ++ DLT_IPV4 = 0xe4 ++ DLT_IPV6 = 0xe5 ++ DLT_IP_OVER_FC = 0x7a ++ DLT_JUNIPER_ATM1 = 0x89 ++ DLT_JUNIPER_ATM2 = 0x87 ++ DLT_JUNIPER_ATM_CEMIC = 0xee ++ DLT_JUNIPER_CHDLC = 0xb5 ++ DLT_JUNIPER_ES = 0x84 ++ DLT_JUNIPER_ETHER = 0xb2 ++ DLT_JUNIPER_FIBRECHANNEL = 0xea ++ DLT_JUNIPER_FRELAY = 0xb4 ++ DLT_JUNIPER_GGSN = 0x85 ++ DLT_JUNIPER_ISM = 0xc2 ++ DLT_JUNIPER_MFR = 0x86 ++ DLT_JUNIPER_MLFR = 0x83 ++ DLT_JUNIPER_MLPPP = 0x82 ++ DLT_JUNIPER_MONITOR = 0xa4 ++ DLT_JUNIPER_PIC_PEER = 0xae ++ DLT_JUNIPER_PPP = 0xb3 ++ DLT_JUNIPER_PPPOE = 0xa7 ++ DLT_JUNIPER_PPPOE_ATM = 0xa8 ++ DLT_JUNIPER_SERVICES = 0x88 ++ DLT_JUNIPER_SRX_E2E = 0xe9 ++ DLT_JUNIPER_ST = 0xc8 ++ DLT_JUNIPER_VP = 0xb7 ++ DLT_JUNIPER_VS = 0xe8 ++ DLT_LAPB_WITH_DIR = 0xcf ++ DLT_LAPD = 0xcb ++ DLT_LIN = 0xd4 ++ DLT_LINUX_EVDEV = 0xd8 ++ DLT_LINUX_IRDA = 0x90 ++ DLT_LINUX_LAPD = 0xb1 ++ DLT_LINUX_PPP_WITHDIRECTION = 0xa6 ++ DLT_LINUX_SLL = 0x71 ++ DLT_LOOP = 0x6c ++ DLT_LTALK = 0x72 ++ DLT_MATCHING_MAX = 0xf5 ++ DLT_MATCHING_MIN = 0x68 ++ DLT_MFR = 0xb6 ++ DLT_MOST = 0xd3 ++ DLT_MPEG_2_TS = 0xf3 ++ DLT_MPLS = 0xdb ++ DLT_MTP2 = 0x8c ++ DLT_MTP2_WITH_PHDR = 0x8b ++ DLT_MTP3 = 0x8d ++ DLT_MUX27010 = 0xec ++ DLT_NETANALYZER = 0xf0 ++ DLT_NETANALYZER_TRANSPARENT = 0xf1 ++ DLT_NFC_LLCP = 0xf5 ++ DLT_NFLOG = 0xef ++ DLT_NG40 = 0xf4 ++ DLT_NULL = 0x0 ++ DLT_PCI_EXP = 0x7d ++ DLT_PFLOG = 0x75 ++ DLT_PFSYNC = 0x12 ++ DLT_PPI = 0xc0 ++ DLT_PPP = 0x9 ++ DLT_PPP_BSDOS = 0x10 ++ DLT_PPP_ETHER = 0x33 ++ DLT_PPP_PPPD = 0xa6 ++ DLT_PPP_SERIAL = 0x32 ++ DLT_PPP_WITH_DIR = 0xcc ++ DLT_PPP_WITH_DIRECTION = 0xa6 ++ DLT_PRISM_HEADER = 0x77 ++ DLT_PRONET = 0x4 ++ DLT_RAIF1 = 0xc6 ++ DLT_RAW = 0xc ++ DLT_RIO = 0x7c ++ DLT_SCCP = 0x8e ++ DLT_SITA = 0xc4 ++ DLT_SLIP = 0x8 ++ DLT_SLIP_BSDOS = 0xf ++ DLT_STANAG_5066_D_PDU = 0xed ++ DLT_SUNATM = 0x7b ++ DLT_SYMANTEC_FIREWALL = 0x63 ++ DLT_TZSP = 0x80 ++ DLT_USB = 0xba ++ DLT_USB_LINUX = 0xbd ++ DLT_USB_LINUX_MMAPPED = 0xdc ++ DLT_USER0 = 0x93 ++ DLT_USER1 = 0x94 ++ DLT_USER10 = 0x9d ++ DLT_USER11 = 0x9e ++ DLT_USER12 = 0x9f ++ DLT_USER13 = 0xa0 ++ DLT_USER14 = 0xa1 ++ DLT_USER15 = 0xa2 ++ DLT_USER2 = 0x95 ++ DLT_USER3 = 0x96 ++ DLT_USER4 = 0x97 ++ DLT_USER5 = 0x98 ++ DLT_USER6 = 0x99 ++ DLT_USER7 = 0x9a ++ DLT_USER8 = 0x9b ++ DLT_USER9 = 0x9c ++ DLT_WIHART = 0xdf ++ DLT_X2E_SERIAL = 0xd5 ++ DLT_X2E_XORAYA = 0xd6 ++ DT_BLK = 0x6 ++ DT_CHR = 0x2 ++ DT_DIR = 0x4 ++ DT_FIFO = 0x1 ++ DT_LNK = 0xa ++ DT_REG = 0x8 ++ DT_SOCK = 0xc ++ DT_UNKNOWN = 0x0 ++ DT_WHT = 0xe ++ ECHO = 0x8 ++ ECHOCTL = 0x40 ++ ECHOE = 0x2 ++ ECHOK = 0x4 ++ ECHOKE = 0x1 ++ ECHONL = 0x10 ++ ECHOPRT = 0x20 ++ EVFILT_AIO = -0x3 ++ EVFILT_FS = -0x9 ++ EVFILT_MACHPORT = -0x8 ++ EVFILT_PROC = -0x5 ++ EVFILT_READ = -0x1 ++ EVFILT_SIGNAL = -0x6 ++ EVFILT_SYSCOUNT = 0xe ++ EVFILT_THREADMARKER = 0xe ++ EVFILT_TIMER = -0x7 ++ EVFILT_USER = -0xa ++ EVFILT_VM = -0xc ++ EVFILT_VNODE = -0x4 ++ EVFILT_WRITE = -0x2 ++ EV_ADD = 0x1 ++ EV_CLEAR = 0x20 ++ EV_DELETE = 0x2 ++ EV_DISABLE = 0x8 ++ EV_DISPATCH = 0x80 ++ EV_ENABLE = 0x4 ++ EV_EOF = 0x8000 ++ EV_ERROR = 0x4000 ++ EV_FLAG0 = 0x1000 ++ EV_FLAG1 = 0x2000 ++ EV_ONESHOT = 0x10 ++ EV_OOBAND = 0x2000 ++ EV_POLL = 0x1000 ++ EV_RECEIPT = 0x40 ++ EV_SYSFLAGS = 0xf000 ++ EXTA = 0x4b00 ++ EXTB = 0x9600 ++ EXTPROC = 0x800 ++ FD_CLOEXEC = 0x1 ++ FD_SETSIZE = 0x400 ++ FLUSHO = 0x800000 ++ F_ADDFILESIGS = 0x3d ++ F_ADDSIGS = 0x3b ++ F_ALLOCATEALL = 0x4 ++ F_ALLOCATECONTIG = 0x2 ++ F_CHKCLEAN = 0x29 ++ F_DUPFD = 0x0 ++ F_DUPFD_CLOEXEC = 0x43 ++ F_FINDSIGS = 0x4e ++ F_FLUSH_DATA = 0x28 ++ F_FREEZE_FS = 0x35 ++ F_FULLFSYNC = 0x33 ++ F_GETCODEDIR = 0x48 ++ F_GETFD = 0x1 ++ F_GETFL = 0x3 ++ F_GETLK = 0x7 ++ F_GETLKPID = 0x42 ++ F_GETNOSIGPIPE = 0x4a ++ F_GETOWN = 0x5 ++ F_GETPATH = 0x32 ++ F_GETPATH_MTMINFO = 0x47 ++ F_GETPROTECTIONCLASS = 0x3f ++ F_GETPROTECTIONLEVEL = 0x4d ++ F_GLOBAL_NOCACHE = 0x37 ++ F_LOG2PHYS = 0x31 ++ F_LOG2PHYS_EXT = 0x41 ++ F_NOCACHE = 0x30 ++ F_NODIRECT = 0x3e ++ F_OK = 0x0 ++ F_PATHPKG_CHECK = 0x34 ++ F_PEOFPOSMODE = 0x3 ++ F_PREALLOCATE = 0x2a ++ F_RDADVISE = 0x2c ++ F_RDAHEAD = 0x2d ++ F_RDLCK = 0x1 ++ F_SETBACKINGSTORE = 0x46 ++ F_SETFD = 0x2 ++ F_SETFL = 0x4 ++ F_SETLK = 0x8 ++ F_SETLKW = 0x9 ++ F_SETLKWTIMEOUT = 0xa ++ F_SETNOSIGPIPE = 0x49 ++ F_SETOWN = 0x6 ++ F_SETPROTECTIONCLASS = 0x40 ++ F_SETSIZE = 0x2b ++ F_SINGLE_WRITER = 0x4c ++ F_THAW_FS = 0x36 ++ F_TRANSCODEKEY = 0x4b ++ F_UNLCK = 0x2 ++ F_VOLPOSMODE = 0x4 ++ F_WRLCK = 0x3 ++ HUPCL = 0x4000 ++ ICANON = 0x100 ++ ICMP6_FILTER = 0x12 ++ ICRNL = 0x100 ++ IEXTEN = 0x400 ++ IFF_ALLMULTI = 0x200 ++ IFF_ALTPHYS = 0x4000 ++ IFF_BROADCAST = 0x2 ++ IFF_DEBUG = 0x4 ++ IFF_LINK0 = 0x1000 ++ IFF_LINK1 = 0x2000 ++ IFF_LINK2 = 0x4000 ++ IFF_LOOPBACK = 0x8 ++ IFF_MULTICAST = 0x8000 ++ IFF_NOARP = 0x80 ++ IFF_NOTRAILERS = 0x20 ++ IFF_OACTIVE = 0x400 ++ IFF_POINTOPOINT = 0x10 ++ IFF_PROMISC = 0x100 ++ IFF_RUNNING = 0x40 ++ IFF_SIMPLEX = 0x800 ++ IFF_UP = 0x1 ++ IFNAMSIZ = 0x10 ++ IFT_1822 = 0x2 ++ IFT_AAL5 = 0x31 ++ IFT_ARCNET = 0x23 ++ IFT_ARCNETPLUS = 0x24 ++ IFT_ATM = 0x25 ++ IFT_BRIDGE = 0xd1 ++ IFT_CARP = 0xf8 ++ IFT_CELLULAR = 0xff ++ IFT_CEPT = 0x13 ++ IFT_DS3 = 0x1e ++ IFT_ENC = 0xf4 ++ IFT_EON = 0x19 ++ IFT_ETHER = 0x6 ++ IFT_FAITH = 0x38 ++ IFT_FDDI = 0xf ++ IFT_FRELAY = 0x20 ++ IFT_FRELAYDCE = 0x2c ++ IFT_GIF = 0x37 ++ IFT_HDH1822 = 0x3 ++ IFT_HIPPI = 0x2f ++ IFT_HSSI = 0x2e ++ IFT_HY = 0xe ++ IFT_IEEE1394 = 0x90 ++ IFT_IEEE8023ADLAG = 0x88 ++ IFT_ISDNBASIC = 0x14 ++ IFT_ISDNPRIMARY = 0x15 ++ IFT_ISO88022LLC = 0x29 ++ IFT_ISO88023 = 0x7 ++ IFT_ISO88024 = 0x8 ++ IFT_ISO88025 = 0x9 ++ IFT_ISO88026 = 0xa ++ IFT_L2VLAN = 0x87 ++ IFT_LAPB = 0x10 ++ IFT_LOCALTALK = 0x2a ++ IFT_LOOP = 0x18 ++ IFT_MIOX25 = 0x26 ++ IFT_MODEM = 0x30 ++ IFT_NSIP = 0x1b ++ IFT_OTHER = 0x1 ++ IFT_P10 = 0xc ++ IFT_P80 = 0xd ++ IFT_PARA = 0x22 ++ IFT_PDP = 0xff ++ IFT_PFLOG = 0xf5 ++ IFT_PFSYNC = 0xf6 ++ IFT_PKTAP = 0xfe ++ IFT_PPP = 0x17 ++ IFT_PROPMUX = 0x36 ++ IFT_PROPVIRTUAL = 0x35 ++ IFT_PTPSERIAL = 0x16 ++ IFT_RS232 = 0x21 ++ IFT_SDLC = 0x11 ++ IFT_SIP = 0x1f ++ IFT_SLIP = 0x1c ++ IFT_SMDSDXI = 0x2b ++ IFT_SMDSICIP = 0x34 ++ IFT_SONET = 0x27 ++ IFT_SONETPATH = 0x32 ++ IFT_SONETVT = 0x33 ++ IFT_STARLAN = 0xb ++ IFT_STF = 0x39 ++ IFT_T1 = 0x12 ++ IFT_ULTRA = 0x1d ++ IFT_V35 = 0x2d ++ IFT_X25 = 0x5 ++ IFT_X25DDN = 0x4 ++ IFT_X25PLE = 0x28 ++ IFT_XETHER = 0x1a ++ IGNBRK = 0x1 ++ IGNCR = 0x80 ++ IGNPAR = 0x4 ++ IMAXBEL = 0x2000 ++ INLCR = 0x40 ++ INPCK = 0x10 ++ IN_CLASSA_HOST = 0xffffff ++ IN_CLASSA_MAX = 0x80 ++ IN_CLASSA_NET = 0xff000000 ++ IN_CLASSA_NSHIFT = 0x18 ++ IN_CLASSB_HOST = 0xffff ++ IN_CLASSB_MAX = 0x10000 ++ IN_CLASSB_NET = 0xffff0000 ++ IN_CLASSB_NSHIFT = 0x10 ++ IN_CLASSC_HOST = 0xff ++ IN_CLASSC_NET = 0xffffff00 ++ IN_CLASSC_NSHIFT = 0x8 ++ IN_CLASSD_HOST = 0xfffffff ++ IN_CLASSD_NET = 0xf0000000 ++ IN_CLASSD_NSHIFT = 0x1c ++ IN_LINKLOCALNETNUM = 0xa9fe0000 ++ IN_LOOPBACKNET = 0x7f ++ IPPROTO_3PC = 0x22 ++ IPPROTO_ADFS = 0x44 ++ IPPROTO_AH = 0x33 ++ IPPROTO_AHIP = 0x3d ++ IPPROTO_APES = 0x63 ++ IPPROTO_ARGUS = 0xd ++ IPPROTO_AX25 = 0x5d ++ IPPROTO_BHA = 0x31 ++ IPPROTO_BLT = 0x1e ++ IPPROTO_BRSATMON = 0x4c ++ IPPROTO_CFTP = 0x3e ++ IPPROTO_CHAOS = 0x10 ++ IPPROTO_CMTP = 0x26 ++ IPPROTO_CPHB = 0x49 ++ IPPROTO_CPNX = 0x48 ++ IPPROTO_DDP = 0x25 ++ IPPROTO_DGP = 0x56 ++ IPPROTO_DIVERT = 0xfe ++ IPPROTO_DONE = 0x101 ++ IPPROTO_DSTOPTS = 0x3c ++ IPPROTO_EGP = 0x8 ++ IPPROTO_EMCON = 0xe ++ IPPROTO_ENCAP = 0x62 ++ IPPROTO_EON = 0x50 ++ IPPROTO_ESP = 0x32 ++ IPPROTO_ETHERIP = 0x61 ++ IPPROTO_FRAGMENT = 0x2c ++ IPPROTO_GGP = 0x3 ++ IPPROTO_GMTP = 0x64 ++ IPPROTO_GRE = 0x2f ++ IPPROTO_HELLO = 0x3f ++ IPPROTO_HMP = 0x14 ++ IPPROTO_HOPOPTS = 0x0 ++ IPPROTO_ICMP = 0x1 ++ IPPROTO_ICMPV6 = 0x3a ++ IPPROTO_IDP = 0x16 ++ IPPROTO_IDPR = 0x23 ++ IPPROTO_IDRP = 0x2d ++ IPPROTO_IGMP = 0x2 ++ IPPROTO_IGP = 0x55 ++ IPPROTO_IGRP = 0x58 ++ IPPROTO_IL = 0x28 ++ IPPROTO_INLSP = 0x34 ++ IPPROTO_INP = 0x20 ++ IPPROTO_IP = 0x0 ++ IPPROTO_IPCOMP = 0x6c ++ IPPROTO_IPCV = 0x47 ++ IPPROTO_IPEIP = 0x5e ++ IPPROTO_IPIP = 0x4 ++ IPPROTO_IPPC = 0x43 ++ IPPROTO_IPV4 = 0x4 ++ IPPROTO_IPV6 = 0x29 ++ IPPROTO_IRTP = 0x1c ++ IPPROTO_KRYPTOLAN = 0x41 ++ IPPROTO_LARP = 0x5b ++ IPPROTO_LEAF1 = 0x19 ++ IPPROTO_LEAF2 = 0x1a ++ IPPROTO_MAX = 0x100 ++ IPPROTO_MAXID = 0x34 ++ IPPROTO_MEAS = 0x13 ++ IPPROTO_MHRP = 0x30 ++ IPPROTO_MICP = 0x5f ++ IPPROTO_MTP = 0x5c ++ IPPROTO_MUX = 0x12 ++ IPPROTO_ND = 0x4d ++ IPPROTO_NHRP = 0x36 ++ IPPROTO_NONE = 0x3b ++ IPPROTO_NSP = 0x1f ++ IPPROTO_NVPII = 0xb ++ IPPROTO_OSPFIGP = 0x59 ++ IPPROTO_PGM = 0x71 ++ IPPROTO_PIGP = 0x9 ++ IPPROTO_PIM = 0x67 ++ IPPROTO_PRM = 0x15 ++ IPPROTO_PUP = 0xc ++ IPPROTO_PVP = 0x4b ++ IPPROTO_RAW = 0xff ++ IPPROTO_RCCMON = 0xa ++ IPPROTO_RDP = 0x1b ++ IPPROTO_ROUTING = 0x2b ++ IPPROTO_RSVP = 0x2e ++ IPPROTO_RVD = 0x42 ++ IPPROTO_SATEXPAK = 0x40 ++ IPPROTO_SATMON = 0x45 ++ IPPROTO_SCCSP = 0x60 ++ IPPROTO_SCTP = 0x84 ++ IPPROTO_SDRP = 0x2a ++ IPPROTO_SEP = 0x21 ++ IPPROTO_SRPC = 0x5a ++ IPPROTO_ST = 0x7 ++ IPPROTO_SVMTP = 0x52 ++ IPPROTO_SWIPE = 0x35 ++ IPPROTO_TCF = 0x57 ++ IPPROTO_TCP = 0x6 ++ IPPROTO_TP = 0x1d ++ IPPROTO_TPXX = 0x27 ++ IPPROTO_TRUNK1 = 0x17 ++ IPPROTO_TRUNK2 = 0x18 ++ IPPROTO_TTP = 0x54 ++ IPPROTO_UDP = 0x11 ++ IPPROTO_VINES = 0x53 ++ IPPROTO_VISA = 0x46 ++ IPPROTO_VMTP = 0x51 ++ IPPROTO_WBEXPAK = 0x4f ++ IPPROTO_WBMON = 0x4e ++ IPPROTO_WSN = 0x4a ++ IPPROTO_XNET = 0xf ++ IPPROTO_XTP = 0x24 ++ IPV6_2292DSTOPTS = 0x17 ++ IPV6_2292HOPLIMIT = 0x14 ++ IPV6_2292HOPOPTS = 0x16 ++ IPV6_2292NEXTHOP = 0x15 ++ IPV6_2292PKTINFO = 0x13 ++ IPV6_2292PKTOPTIONS = 0x19 ++ IPV6_2292RTHDR = 0x18 ++ IPV6_BINDV6ONLY = 0x1b ++ IPV6_BOUND_IF = 0x7d ++ IPV6_CHECKSUM = 0x1a ++ IPV6_DEFAULT_MULTICAST_HOPS = 0x1 ++ IPV6_DEFAULT_MULTICAST_LOOP = 0x1 ++ IPV6_DEFHLIM = 0x40 ++ IPV6_FAITH = 0x1d ++ IPV6_FLOWINFO_MASK = 0xffffff0f ++ IPV6_FLOWLABEL_MASK = 0xffff0f00 ++ IPV6_FRAGTTL = 0x3c ++ IPV6_FW_ADD = 0x1e ++ IPV6_FW_DEL = 0x1f ++ IPV6_FW_FLUSH = 0x20 ++ IPV6_FW_GET = 0x22 ++ IPV6_FW_ZERO = 0x21 ++ IPV6_HLIMDEC = 0x1 ++ IPV6_IPSEC_POLICY = 0x1c ++ IPV6_JOIN_GROUP = 0xc ++ IPV6_LEAVE_GROUP = 0xd ++ IPV6_MAXHLIM = 0xff ++ IPV6_MAXOPTHDR = 0x800 ++ IPV6_MAXPACKET = 0xffff ++ IPV6_MAX_GROUP_SRC_FILTER = 0x200 ++ IPV6_MAX_MEMBERSHIPS = 0xfff ++ IPV6_MAX_SOCK_SRC_FILTER = 0x80 ++ IPV6_MIN_MEMBERSHIPS = 0x1f ++ IPV6_MMTU = 0x500 ++ IPV6_MULTICAST_HOPS = 0xa ++ IPV6_MULTICAST_IF = 0x9 ++ IPV6_MULTICAST_LOOP = 0xb ++ IPV6_PORTRANGE = 0xe ++ IPV6_PORTRANGE_DEFAULT = 0x0 ++ IPV6_PORTRANGE_HIGH = 0x1 ++ IPV6_PORTRANGE_LOW = 0x2 ++ IPV6_RECVTCLASS = 0x23 ++ IPV6_RTHDR_LOOSE = 0x0 ++ IPV6_RTHDR_STRICT = 0x1 ++ IPV6_RTHDR_TYPE_0 = 0x0 ++ IPV6_SOCKOPT_RESERVED1 = 0x3 ++ IPV6_TCLASS = 0x24 ++ IPV6_UNICAST_HOPS = 0x4 ++ IPV6_V6ONLY = 0x1b ++ IPV6_VERSION = 0x60 ++ IPV6_VERSION_MASK = 0xf0 ++ IP_ADD_MEMBERSHIP = 0xc ++ IP_ADD_SOURCE_MEMBERSHIP = 0x46 ++ IP_BLOCK_SOURCE = 0x48 ++ IP_BOUND_IF = 0x19 ++ IP_DEFAULT_MULTICAST_LOOP = 0x1 ++ IP_DEFAULT_MULTICAST_TTL = 0x1 ++ IP_DF = 0x4000 ++ IP_DROP_MEMBERSHIP = 0xd ++ IP_DROP_SOURCE_MEMBERSHIP = 0x47 ++ IP_DUMMYNET_CONFIGURE = 0x3c ++ IP_DUMMYNET_DEL = 0x3d ++ IP_DUMMYNET_FLUSH = 0x3e ++ IP_DUMMYNET_GET = 0x40 ++ IP_FAITH = 0x16 ++ IP_FW_ADD = 0x28 ++ IP_FW_DEL = 0x29 ++ IP_FW_FLUSH = 0x2a ++ IP_FW_GET = 0x2c ++ IP_FW_RESETLOG = 0x2d ++ IP_FW_ZERO = 0x2b ++ IP_HDRINCL = 0x2 ++ IP_IPSEC_POLICY = 0x15 ++ IP_MAXPACKET = 0xffff ++ IP_MAX_GROUP_SRC_FILTER = 0x200 ++ IP_MAX_MEMBERSHIPS = 0xfff ++ IP_MAX_SOCK_MUTE_FILTER = 0x80 ++ IP_MAX_SOCK_SRC_FILTER = 0x80 ++ IP_MF = 0x2000 ++ IP_MIN_MEMBERSHIPS = 0x1f ++ IP_MSFILTER = 0x4a ++ IP_MSS = 0x240 ++ IP_MULTICAST_IF = 0x9 ++ IP_MULTICAST_IFINDEX = 0x42 ++ IP_MULTICAST_LOOP = 0xb ++ IP_MULTICAST_TTL = 0xa ++ IP_MULTICAST_VIF = 0xe ++ IP_NAT__XXX = 0x37 ++ IP_OFFMASK = 0x1fff ++ IP_OLD_FW_ADD = 0x32 ++ IP_OLD_FW_DEL = 0x33 ++ IP_OLD_FW_FLUSH = 0x34 ++ IP_OLD_FW_GET = 0x36 ++ IP_OLD_FW_RESETLOG = 0x38 ++ IP_OLD_FW_ZERO = 0x35 ++ IP_OPTIONS = 0x1 ++ IP_PKTINFO = 0x1a ++ IP_PORTRANGE = 0x13 ++ IP_PORTRANGE_DEFAULT = 0x0 ++ IP_PORTRANGE_HIGH = 0x1 ++ IP_PORTRANGE_LOW = 0x2 ++ IP_RECVDSTADDR = 0x7 ++ IP_RECVIF = 0x14 ++ IP_RECVOPTS = 0x5 ++ IP_RECVPKTINFO = 0x1a ++ IP_RECVRETOPTS = 0x6 ++ IP_RECVTTL = 0x18 ++ IP_RETOPTS = 0x8 ++ IP_RF = 0x8000 ++ IP_RSVP_OFF = 0x10 ++ IP_RSVP_ON = 0xf ++ IP_RSVP_VIF_OFF = 0x12 ++ IP_RSVP_VIF_ON = 0x11 ++ IP_STRIPHDR = 0x17 ++ IP_TOS = 0x3 ++ IP_TRAFFIC_MGT_BACKGROUND = 0x41 ++ IP_TTL = 0x4 ++ IP_UNBLOCK_SOURCE = 0x49 ++ ISIG = 0x80 ++ ISTRIP = 0x20 ++ IUTF8 = 0x4000 ++ IXANY = 0x800 ++ IXOFF = 0x400 ++ IXON = 0x200 ++ LOCK_EX = 0x2 ++ LOCK_NB = 0x4 ++ LOCK_SH = 0x1 ++ LOCK_UN = 0x8 ++ MADV_CAN_REUSE = 0x9 ++ MADV_DONTNEED = 0x4 ++ MADV_FREE = 0x5 ++ MADV_FREE_REUSABLE = 0x7 ++ MADV_FREE_REUSE = 0x8 ++ MADV_NORMAL = 0x0 ++ MADV_RANDOM = 0x1 ++ MADV_SEQUENTIAL = 0x2 ++ MADV_WILLNEED = 0x3 ++ MADV_ZERO_WIRED_PAGES = 0x6 ++ MAP_ANON = 0x1000 ++ MAP_COPY = 0x2 ++ MAP_FILE = 0x0 ++ MAP_FIXED = 0x10 ++ MAP_HASSEMAPHORE = 0x200 ++ MAP_JIT = 0x800 ++ MAP_NOCACHE = 0x400 ++ MAP_NOEXTEND = 0x100 ++ MAP_NORESERVE = 0x40 ++ MAP_PRIVATE = 0x2 ++ MAP_RENAME = 0x20 ++ MAP_RESERVED0080 = 0x80 ++ MAP_SHARED = 0x1 ++ MCL_CURRENT = 0x1 ++ MCL_FUTURE = 0x2 ++ MSG_CTRUNC = 0x20 ++ MSG_DONTROUTE = 0x4 ++ MSG_DONTWAIT = 0x80 ++ MSG_EOF = 0x100 ++ MSG_EOR = 0x8 ++ MSG_FLUSH = 0x400 ++ MSG_HAVEMORE = 0x2000 ++ MSG_HOLD = 0x800 ++ MSG_NEEDSA = 0x10000 ++ MSG_OOB = 0x1 ++ MSG_PEEK = 0x2 ++ MSG_RCVMORE = 0x4000 ++ MSG_SEND = 0x1000 ++ MSG_TRUNC = 0x10 ++ MSG_WAITALL = 0x40 ++ MSG_WAITSTREAM = 0x200 ++ MS_ASYNC = 0x1 ++ MS_DEACTIVATE = 0x8 ++ MS_INVALIDATE = 0x2 ++ MS_KILLPAGES = 0x4 ++ MS_SYNC = 0x10 ++ NAME_MAX = 0xff ++ NET_RT_DUMP = 0x1 ++ NET_RT_DUMP2 = 0x7 ++ NET_RT_FLAGS = 0x2 ++ NET_RT_IFLIST = 0x3 ++ NET_RT_IFLIST2 = 0x6 ++ NET_RT_MAXID = 0xa ++ NET_RT_STAT = 0x4 ++ NET_RT_TRASH = 0x5 ++ NOFLSH = 0x80000000 ++ NOTE_ABSOLUTE = 0x8 ++ NOTE_ATTRIB = 0x8 ++ NOTE_BACKGROUND = 0x40 ++ NOTE_CHILD = 0x4 ++ NOTE_CRITICAL = 0x20 ++ NOTE_DELETE = 0x1 ++ NOTE_EXEC = 0x20000000 ++ NOTE_EXIT = 0x80000000 ++ NOTE_EXITSTATUS = 0x4000000 ++ NOTE_EXIT_CSERROR = 0x40000 ++ NOTE_EXIT_DECRYPTFAIL = 0x10000 ++ NOTE_EXIT_DETAIL = 0x2000000 ++ NOTE_EXIT_DETAIL_MASK = 0x70000 ++ NOTE_EXIT_MEMORY = 0x20000 ++ NOTE_EXIT_REPARENTED = 0x80000 ++ NOTE_EXTEND = 0x4 ++ NOTE_FFAND = 0x40000000 ++ NOTE_FFCOPY = 0xc0000000 ++ NOTE_FFCTRLMASK = 0xc0000000 ++ NOTE_FFLAGSMASK = 0xffffff ++ NOTE_FFNOP = 0x0 ++ NOTE_FFOR = 0x80000000 ++ NOTE_FORK = 0x40000000 ++ NOTE_LEEWAY = 0x10 ++ NOTE_LINK = 0x10 ++ NOTE_LOWAT = 0x1 ++ NOTE_NONE = 0x80 ++ NOTE_NSECONDS = 0x4 ++ NOTE_PCTRLMASK = -0x100000 ++ NOTE_PDATAMASK = 0xfffff ++ NOTE_REAP = 0x10000000 ++ NOTE_RENAME = 0x20 ++ NOTE_REVOKE = 0x40 ++ NOTE_SECONDS = 0x1 ++ NOTE_SIGNAL = 0x8000000 ++ NOTE_TRACK = 0x1 ++ NOTE_TRACKERR = 0x2 ++ NOTE_TRIGGER = 0x1000000 ++ NOTE_USECONDS = 0x2 ++ NOTE_VM_ERROR = 0x10000000 ++ NOTE_VM_PRESSURE = 0x80000000 ++ NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000 ++ NOTE_VM_PRESSURE_TERMINATE = 0x40000000 ++ NOTE_WRITE = 0x2 ++ OCRNL = 0x10 ++ OFDEL = 0x20000 ++ OFILL = 0x80 ++ ONLCR = 0x2 ++ ONLRET = 0x40 ++ ONOCR = 0x20 ++ ONOEOT = 0x8 ++ OPOST = 0x1 ++ O_ACCMODE = 0x3 ++ O_ALERT = 0x20000000 ++ O_APPEND = 0x8 ++ O_ASYNC = 0x40 ++ O_CLOEXEC = 0x1000000 ++ O_CREAT = 0x200 ++ O_DIRECTORY = 0x100000 ++ O_DP_GETRAWENCRYPTED = 0x1 ++ O_DSYNC = 0x400000 ++ O_EVTONLY = 0x8000 ++ O_EXCL = 0x800 ++ O_EXLOCK = 0x20 ++ O_FSYNC = 0x80 ++ O_NDELAY = 0x4 ++ O_NOCTTY = 0x20000 ++ O_NOFOLLOW = 0x100 ++ O_NONBLOCK = 0x4 ++ O_POPUP = 0x80000000 ++ O_RDONLY = 0x0 ++ O_RDWR = 0x2 ++ O_SHLOCK = 0x10 ++ O_SYMLINK = 0x200000 ++ O_SYNC = 0x80 ++ O_TRUNC = 0x400 ++ O_WRONLY = 0x1 ++ PARENB = 0x1000 ++ PARMRK = 0x8 ++ PARODD = 0x2000 ++ PENDIN = 0x20000000 ++ PRIO_PGRP = 0x1 ++ PRIO_PROCESS = 0x0 ++ PRIO_USER = 0x2 ++ PROT_EXEC = 0x4 ++ PROT_NONE = 0x0 ++ PROT_READ = 0x1 ++ PROT_WRITE = 0x2 ++ PT_ATTACH = 0xa ++ PT_ATTACHEXC = 0xe ++ PT_CONTINUE = 0x7 ++ PT_DENY_ATTACH = 0x1f ++ PT_DETACH = 0xb ++ PT_FIRSTMACH = 0x20 ++ PT_FORCEQUOTA = 0x1e ++ PT_KILL = 0x8 ++ PT_READ_D = 0x2 ++ PT_READ_I = 0x1 ++ PT_READ_U = 0x3 ++ PT_SIGEXC = 0xc ++ PT_STEP = 0x9 ++ PT_THUPDATE = 0xd ++ PT_TRACE_ME = 0x0 ++ PT_WRITE_D = 0x5 ++ PT_WRITE_I = 0x4 ++ PT_WRITE_U = 0x6 ++ RLIMIT_AS = 0x5 ++ RLIMIT_CORE = 0x4 ++ RLIMIT_CPU = 0x0 ++ RLIMIT_CPU_USAGE_MONITOR = 0x2 ++ RLIMIT_DATA = 0x2 ++ RLIMIT_FSIZE = 0x1 ++ RLIMIT_NOFILE = 0x8 ++ RLIMIT_STACK = 0x3 ++ RLIM_INFINITY = 0x7fffffffffffffff ++ RTAX_AUTHOR = 0x6 ++ RTAX_BRD = 0x7 ++ RTAX_DST = 0x0 ++ RTAX_GATEWAY = 0x1 ++ RTAX_GENMASK = 0x3 ++ RTAX_IFA = 0x5 ++ RTAX_IFP = 0x4 ++ RTAX_MAX = 0x8 ++ RTAX_NETMASK = 0x2 ++ RTA_AUTHOR = 0x40 ++ RTA_BRD = 0x80 ++ RTA_DST = 0x1 ++ RTA_GATEWAY = 0x2 ++ RTA_GENMASK = 0x8 ++ RTA_IFA = 0x20 ++ RTA_IFP = 0x10 ++ RTA_NETMASK = 0x4 ++ RTF_BLACKHOLE = 0x1000 ++ RTF_BROADCAST = 0x400000 ++ RTF_CLONING = 0x100 ++ RTF_CONDEMNED = 0x2000000 ++ RTF_DELCLONE = 0x80 ++ RTF_DONE = 0x40 ++ RTF_DYNAMIC = 0x10 ++ RTF_GATEWAY = 0x2 ++ RTF_HOST = 0x4 ++ RTF_IFREF = 0x4000000 ++ RTF_IFSCOPE = 0x1000000 ++ RTF_LLINFO = 0x400 ++ RTF_LOCAL = 0x200000 ++ RTF_MODIFIED = 0x20 ++ RTF_MULTICAST = 0x800000 ++ RTF_NOIFREF = 0x2000 ++ RTF_PINNED = 0x100000 ++ RTF_PRCLONING = 0x10000 ++ RTF_PROTO1 = 0x8000 ++ RTF_PROTO2 = 0x4000 ++ RTF_PROTO3 = 0x40000 ++ RTF_PROXY = 0x8000000 ++ RTF_REJECT = 0x8 ++ RTF_ROUTER = 0x10000000 ++ RTF_STATIC = 0x800 ++ RTF_UP = 0x1 ++ RTF_WASCLONED = 0x20000 ++ RTF_XRESOLVE = 0x200 ++ RTM_ADD = 0x1 ++ RTM_CHANGE = 0x3 ++ RTM_DELADDR = 0xd ++ RTM_DELETE = 0x2 ++ RTM_DELMADDR = 0x10 ++ RTM_GET = 0x4 ++ RTM_GET2 = 0x14 ++ RTM_IFINFO = 0xe ++ RTM_IFINFO2 = 0x12 ++ RTM_LOCK = 0x8 ++ RTM_LOSING = 0x5 ++ RTM_MISS = 0x7 ++ RTM_NEWADDR = 0xc ++ RTM_NEWMADDR = 0xf ++ RTM_NEWMADDR2 = 0x13 ++ RTM_OLDADD = 0x9 ++ RTM_OLDDEL = 0xa ++ RTM_REDIRECT = 0x6 ++ RTM_RESOLVE = 0xb ++ RTM_RTTUNIT = 0xf4240 ++ RTM_VERSION = 0x5 ++ RTV_EXPIRE = 0x4 ++ RTV_HOPCOUNT = 0x2 ++ RTV_MTU = 0x1 ++ RTV_RPIPE = 0x8 ++ RTV_RTT = 0x40 ++ RTV_RTTVAR = 0x80 ++ RTV_SPIPE = 0x10 ++ RTV_SSTHRESH = 0x20 ++ RUSAGE_CHILDREN = -0x1 ++ RUSAGE_SELF = 0x0 ++ SCM_CREDS = 0x3 ++ SCM_RIGHTS = 0x1 ++ SCM_TIMESTAMP = 0x2 ++ SCM_TIMESTAMP_MONOTONIC = 0x4 ++ SHUT_RD = 0x0 ++ SHUT_RDWR = 0x2 ++ SHUT_WR = 0x1 ++ SIOCADDMULTI = 0x80206931 ++ SIOCAIFADDR = 0x8040691a ++ SIOCARPIPLL = 0xc0206928 ++ SIOCATMARK = 0x40047307 ++ SIOCAUTOADDR = 0xc0206926 ++ SIOCAUTONETMASK = 0x80206927 ++ SIOCDELMULTI = 0x80206932 ++ SIOCDIFADDR = 0x80206919 ++ SIOCDIFPHYADDR = 0x80206941 ++ SIOCGDRVSPEC = 0xc01c697b ++ SIOCGETVLAN = 0xc020697f ++ SIOCGHIWAT = 0x40047301 ++ SIOCGIFADDR = 0xc0206921 ++ SIOCGIFALTMTU = 0xc0206948 ++ SIOCGIFASYNCMAP = 0xc020697c ++ SIOCGIFBOND = 0xc0206947 ++ SIOCGIFBRDADDR = 0xc0206923 ++ SIOCGIFCAP = 0xc020695b ++ SIOCGIFCONF = 0xc0086924 ++ SIOCGIFDEVMTU = 0xc0206944 ++ SIOCGIFDSTADDR = 0xc0206922 ++ SIOCGIFFLAGS = 0xc0206911 ++ SIOCGIFGENERIC = 0xc020693a ++ SIOCGIFKPI = 0xc0206987 ++ SIOCGIFMAC = 0xc0206982 ++ SIOCGIFMEDIA = 0xc0286938 ++ SIOCGIFMETRIC = 0xc0206917 ++ SIOCGIFMTU = 0xc0206933 ++ SIOCGIFNETMASK = 0xc0206925 ++ SIOCGIFPDSTADDR = 0xc0206940 ++ SIOCGIFPHYS = 0xc0206935 ++ SIOCGIFPSRCADDR = 0xc020693f ++ SIOCGIFSTATUS = 0xc331693d ++ SIOCGIFVLAN = 0xc020697f ++ SIOCGIFWAKEFLAGS = 0xc0206988 ++ SIOCGLOWAT = 0x40047303 ++ SIOCGPGRP = 0x40047309 ++ SIOCIFCREATE = 0xc0206978 ++ SIOCIFCREATE2 = 0xc020697a ++ SIOCIFDESTROY = 0x80206979 ++ SIOCIFGCLONERS = 0xc00c6981 ++ SIOCRSLVMULTI = 0xc008693b ++ SIOCSDRVSPEC = 0x801c697b ++ SIOCSETVLAN = 0x8020697e ++ SIOCSHIWAT = 0x80047300 ++ SIOCSIFADDR = 0x8020690c ++ SIOCSIFALTMTU = 0x80206945 ++ SIOCSIFASYNCMAP = 0x8020697d ++ SIOCSIFBOND = 0x80206946 ++ SIOCSIFBRDADDR = 0x80206913 ++ SIOCSIFCAP = 0x8020695a ++ SIOCSIFDSTADDR = 0x8020690e ++ SIOCSIFFLAGS = 0x80206910 ++ SIOCSIFGENERIC = 0x80206939 ++ SIOCSIFKPI = 0x80206986 ++ SIOCSIFLLADDR = 0x8020693c ++ SIOCSIFMAC = 0x80206983 ++ SIOCSIFMEDIA = 0xc0206937 ++ SIOCSIFMETRIC = 0x80206918 ++ SIOCSIFMTU = 0x80206934 ++ SIOCSIFNETMASK = 0x80206916 ++ SIOCSIFPHYADDR = 0x8040693e ++ SIOCSIFPHYS = 0x80206936 ++ SIOCSIFVLAN = 0x8020697e ++ SIOCSLOWAT = 0x80047302 ++ SIOCSPGRP = 0x80047308 ++ SOCK_DGRAM = 0x2 ++ SOCK_MAXADDRLEN = 0xff ++ SOCK_RAW = 0x3 ++ SOCK_RDM = 0x4 ++ SOCK_SEQPACKET = 0x5 ++ SOCK_STREAM = 0x1 ++ SOL_SOCKET = 0xffff ++ SOMAXCONN = 0x80 ++ SO_ACCEPTCONN = 0x2 ++ SO_BROADCAST = 0x20 ++ SO_DEBUG = 0x1 ++ SO_DONTROUTE = 0x10 ++ SO_DONTTRUNC = 0x2000 ++ SO_ERROR = 0x1007 ++ SO_KEEPALIVE = 0x8 ++ SO_LABEL = 0x1010 ++ SO_LINGER = 0x80 ++ SO_LINGER_SEC = 0x1080 ++ SO_NKE = 0x1021 ++ SO_NOADDRERR = 0x1023 ++ SO_NOSIGPIPE = 0x1022 ++ SO_NOTIFYCONFLICT = 0x1026 ++ SO_NP_EXTENSIONS = 0x1083 ++ SO_NREAD = 0x1020 ++ SO_NUMRCVPKT = 0x1112 ++ SO_NWRITE = 0x1024 ++ SO_OOBINLINE = 0x100 ++ SO_PEERLABEL = 0x1011 ++ SO_RANDOMPORT = 0x1082 ++ SO_RCVBUF = 0x1002 ++ SO_RCVLOWAT = 0x1004 ++ SO_RCVTIMEO = 0x1006 ++ SO_REUSEADDR = 0x4 ++ SO_REUSEPORT = 0x200 ++ SO_REUSESHAREUID = 0x1025 ++ SO_SNDBUF = 0x1001 ++ SO_SNDLOWAT = 0x1003 ++ SO_SNDTIMEO = 0x1005 ++ SO_TIMESTAMP = 0x400 ++ SO_TIMESTAMP_MONOTONIC = 0x800 ++ SO_TYPE = 0x1008 ++ SO_UPCALLCLOSEWAIT = 0x1027 ++ SO_USELOOPBACK = 0x40 ++ SO_WANTMORE = 0x4000 ++ SO_WANTOOBFLAG = 0x8000 ++ S_IEXEC = 0x40 ++ S_IFBLK = 0x6000 ++ S_IFCHR = 0x2000 ++ S_IFDIR = 0x4000 ++ S_IFIFO = 0x1000 ++ S_IFLNK = 0xa000 ++ S_IFMT = 0xf000 ++ S_IFREG = 0x8000 ++ S_IFSOCK = 0xc000 ++ S_IFWHT = 0xe000 ++ S_IREAD = 0x100 ++ S_IRGRP = 0x20 ++ S_IROTH = 0x4 ++ S_IRUSR = 0x100 ++ S_IRWXG = 0x38 ++ S_IRWXO = 0x7 ++ S_IRWXU = 0x1c0 ++ S_ISGID = 0x400 ++ S_ISTXT = 0x200 ++ S_ISUID = 0x800 ++ S_ISVTX = 0x200 ++ S_IWGRP = 0x10 ++ S_IWOTH = 0x2 ++ S_IWRITE = 0x80 ++ S_IWUSR = 0x80 ++ S_IXGRP = 0x8 ++ S_IXOTH = 0x1 ++ S_IXUSR = 0x40 ++ TCIFLUSH = 0x1 ++ TCIOFLUSH = 0x3 ++ TCOFLUSH = 0x2 ++ TCP_CONNECTIONTIMEOUT = 0x20 ++ TCP_ENABLE_ECN = 0x104 ++ TCP_KEEPALIVE = 0x10 ++ TCP_KEEPCNT = 0x102 ++ TCP_KEEPINTVL = 0x101 ++ TCP_MAXHLEN = 0x3c ++ TCP_MAXOLEN = 0x28 ++ TCP_MAXSEG = 0x2 ++ TCP_MAXWIN = 0xffff ++ TCP_MAX_SACK = 0x4 ++ TCP_MAX_WINSHIFT = 0xe ++ TCP_MINMSS = 0xd8 ++ TCP_MSS = 0x200 ++ TCP_NODELAY = 0x1 ++ TCP_NOOPT = 0x8 ++ TCP_NOPUSH = 0x4 ++ TCP_NOTSENT_LOWAT = 0x201 ++ TCP_RXT_CONNDROPTIME = 0x80 ++ TCP_RXT_FINDROP = 0x100 ++ TCP_SENDMOREACKS = 0x103 ++ TCSAFLUSH = 0x2 ++ TIOCCBRK = 0x2000747a ++ TIOCCDTR = 0x20007478 ++ TIOCCONS = 0x80047462 ++ TIOCDCDTIMESTAMP = 0x40087458 ++ TIOCDRAIN = 0x2000745e ++ TIOCDSIMICROCODE = 0x20007455 ++ TIOCEXCL = 0x2000740d ++ TIOCEXT = 0x80047460 ++ TIOCFLUSH = 0x80047410 ++ TIOCGDRAINWAIT = 0x40047456 ++ TIOCGETA = 0x402c7413 ++ TIOCGETD = 0x4004741a ++ TIOCGPGRP = 0x40047477 ++ TIOCGWINSZ = 0x40087468 ++ TIOCIXOFF = 0x20007480 ++ TIOCIXON = 0x20007481 ++ TIOCMBIC = 0x8004746b ++ TIOCMBIS = 0x8004746c ++ TIOCMGDTRWAIT = 0x4004745a ++ TIOCMGET = 0x4004746a ++ TIOCMODG = 0x40047403 ++ TIOCMODS = 0x80047404 ++ TIOCMSDTRWAIT = 0x8004745b ++ TIOCMSET = 0x8004746d ++ TIOCM_CAR = 0x40 ++ TIOCM_CD = 0x40 ++ TIOCM_CTS = 0x20 ++ TIOCM_DSR = 0x100 ++ TIOCM_DTR = 0x2 ++ TIOCM_LE = 0x1 ++ TIOCM_RI = 0x80 ++ TIOCM_RNG = 0x80 ++ TIOCM_RTS = 0x4 ++ TIOCM_SR = 0x10 ++ TIOCM_ST = 0x8 ++ TIOCNOTTY = 0x20007471 ++ TIOCNXCL = 0x2000740e ++ TIOCOUTQ = 0x40047473 ++ TIOCPKT = 0x80047470 ++ TIOCPKT_DATA = 0x0 ++ TIOCPKT_DOSTOP = 0x20 ++ TIOCPKT_FLUSHREAD = 0x1 ++ TIOCPKT_FLUSHWRITE = 0x2 ++ TIOCPKT_IOCTL = 0x40 ++ TIOCPKT_NOSTOP = 0x10 ++ TIOCPKT_START = 0x8 ++ TIOCPKT_STOP = 0x4 ++ TIOCPTYGNAME = 0x40807453 ++ TIOCPTYGRANT = 0x20007454 ++ TIOCPTYUNLK = 0x20007452 ++ TIOCREMOTE = 0x80047469 ++ TIOCSBRK = 0x2000747b ++ TIOCSCONS = 0x20007463 ++ TIOCSCTTY = 0x20007461 ++ TIOCSDRAINWAIT = 0x80047457 ++ TIOCSDTR = 0x20007479 ++ TIOCSETA = 0x802c7414 ++ TIOCSETAF = 0x802c7416 ++ TIOCSETAW = 0x802c7415 ++ TIOCSETD = 0x8004741b ++ TIOCSIG = 0x2000745f ++ TIOCSPGRP = 0x80047476 ++ TIOCSTART = 0x2000746e ++ TIOCSTAT = 0x20007465 ++ TIOCSTI = 0x80017472 ++ TIOCSTOP = 0x2000746f ++ TIOCSWINSZ = 0x80087467 ++ TIOCTIMESTAMP = 0x40087459 ++ TIOCUCNTL = 0x80047466 ++ TOSTOP = 0x400000 ++ VDISCARD = 0xf ++ VDSUSP = 0xb ++ VEOF = 0x0 ++ VEOL = 0x1 ++ VEOL2 = 0x2 ++ VERASE = 0x3 ++ VINTR = 0x8 ++ VKILL = 0x5 ++ VLNEXT = 0xe ++ VMIN = 0x10 ++ VQUIT = 0x9 ++ VREPRINT = 0x6 ++ VSTART = 0xc ++ VSTATUS = 0x12 ++ VSTOP = 0xd ++ VSUSP = 0xa ++ VT0 = 0x0 ++ VT1 = 0x10000 ++ VTDLY = 0x10000 ++ VTIME = 0x11 ++ VWERASE = 0x4 ++ WCONTINUED = 0x10 ++ WCOREFLAG = 0x80 ++ WEXITED = 0x4 ++ WNOHANG = 0x1 ++ WNOWAIT = 0x20 ++ WORDSIZE = 0x20 ++ WSTOPPED = 0x8 ++ WUNTRACED = 0x2 ++) ++ ++// Errors ++const ( ++ E2BIG = syscall.Errno(0x7) ++ EACCES = syscall.Errno(0xd) ++ EADDRINUSE = syscall.Errno(0x30) ++ EADDRNOTAVAIL = syscall.Errno(0x31) ++ EAFNOSUPPORT = syscall.Errno(0x2f) ++ EAGAIN = syscall.Errno(0x23) ++ EALREADY = syscall.Errno(0x25) ++ EAUTH = syscall.Errno(0x50) ++ EBADARCH = syscall.Errno(0x56) ++ EBADEXEC = syscall.Errno(0x55) ++ EBADF = syscall.Errno(0x9) ++ EBADMACHO = syscall.Errno(0x58) ++ EBADMSG = syscall.Errno(0x5e) ++ EBADRPC = syscall.Errno(0x48) ++ EBUSY = syscall.Errno(0x10) ++ ECANCELED = syscall.Errno(0x59) ++ ECHILD = syscall.Errno(0xa) ++ ECONNABORTED = syscall.Errno(0x35) ++ ECONNREFUSED = syscall.Errno(0x3d) ++ ECONNRESET = syscall.Errno(0x36) ++ EDEADLK = syscall.Errno(0xb) ++ EDESTADDRREQ = syscall.Errno(0x27) ++ EDEVERR = syscall.Errno(0x53) ++ EDOM = syscall.Errno(0x21) ++ EDQUOT = syscall.Errno(0x45) ++ EEXIST = syscall.Errno(0x11) ++ EFAULT = syscall.Errno(0xe) ++ EFBIG = syscall.Errno(0x1b) ++ EFTYPE = syscall.Errno(0x4f) ++ EHOSTDOWN = syscall.Errno(0x40) ++ EHOSTUNREACH = syscall.Errno(0x41) ++ EIDRM = syscall.Errno(0x5a) ++ EILSEQ = syscall.Errno(0x5c) ++ EINPROGRESS = syscall.Errno(0x24) ++ EINTR = syscall.Errno(0x4) ++ EINVAL = syscall.Errno(0x16) ++ EIO = syscall.Errno(0x5) ++ EISCONN = syscall.Errno(0x38) ++ EISDIR = syscall.Errno(0x15) ++ ELAST = syscall.Errno(0x6a) ++ ELOOP = syscall.Errno(0x3e) ++ EMFILE = syscall.Errno(0x18) ++ EMLINK = syscall.Errno(0x1f) ++ EMSGSIZE = syscall.Errno(0x28) ++ EMULTIHOP = syscall.Errno(0x5f) ++ ENAMETOOLONG = syscall.Errno(0x3f) ++ ENEEDAUTH = syscall.Errno(0x51) ++ ENETDOWN = syscall.Errno(0x32) ++ ENETRESET = syscall.Errno(0x34) ++ ENETUNREACH = syscall.Errno(0x33) ++ ENFILE = syscall.Errno(0x17) ++ ENOATTR = syscall.Errno(0x5d) ++ ENOBUFS = syscall.Errno(0x37) ++ ENODATA = syscall.Errno(0x60) ++ ENODEV = syscall.Errno(0x13) ++ ENOENT = syscall.Errno(0x2) ++ ENOEXEC = syscall.Errno(0x8) ++ ENOLCK = syscall.Errno(0x4d) ++ ENOLINK = syscall.Errno(0x61) ++ ENOMEM = syscall.Errno(0xc) ++ ENOMSG = syscall.Errno(0x5b) ++ ENOPOLICY = syscall.Errno(0x67) ++ ENOPROTOOPT = syscall.Errno(0x2a) ++ ENOSPC = syscall.Errno(0x1c) ++ ENOSR = syscall.Errno(0x62) ++ ENOSTR = syscall.Errno(0x63) ++ ENOSYS = syscall.Errno(0x4e) ++ ENOTBLK = syscall.Errno(0xf) ++ ENOTCONN = syscall.Errno(0x39) ++ ENOTDIR = syscall.Errno(0x14) ++ ENOTEMPTY = syscall.Errno(0x42) ++ ENOTRECOVERABLE = syscall.Errno(0x68) ++ ENOTSOCK = syscall.Errno(0x26) ++ ENOTSUP = syscall.Errno(0x2d) ++ ENOTTY = syscall.Errno(0x19) ++ ENXIO = syscall.Errno(0x6) ++ EOPNOTSUPP = syscall.Errno(0x66) ++ EOVERFLOW = syscall.Errno(0x54) ++ EOWNERDEAD = syscall.Errno(0x69) ++ EPERM = syscall.Errno(0x1) ++ EPFNOSUPPORT = syscall.Errno(0x2e) ++ EPIPE = syscall.Errno(0x20) ++ EPROCLIM = syscall.Errno(0x43) ++ EPROCUNAVAIL = syscall.Errno(0x4c) ++ EPROGMISMATCH = syscall.Errno(0x4b) ++ EPROGUNAVAIL = syscall.Errno(0x4a) ++ EPROTO = syscall.Errno(0x64) ++ EPROTONOSUPPORT = syscall.Errno(0x2b) ++ EPROTOTYPE = syscall.Errno(0x29) ++ EPWROFF = syscall.Errno(0x52) ++ EQFULL = syscall.Errno(0x6a) ++ ERANGE = syscall.Errno(0x22) ++ EREMOTE = syscall.Errno(0x47) ++ EROFS = syscall.Errno(0x1e) ++ ERPCMISMATCH = syscall.Errno(0x49) ++ ESHLIBVERS = syscall.Errno(0x57) ++ ESHUTDOWN = syscall.Errno(0x3a) ++ ESOCKTNOSUPPORT = syscall.Errno(0x2c) ++ ESPIPE = syscall.Errno(0x1d) ++ ESRCH = syscall.Errno(0x3) ++ ESTALE = syscall.Errno(0x46) ++ ETIME = syscall.Errno(0x65) ++ ETIMEDOUT = syscall.Errno(0x3c) ++ ETOOMANYREFS = syscall.Errno(0x3b) ++ ETXTBSY = syscall.Errno(0x1a) ++ EUSERS = syscall.Errno(0x44) ++ EWOULDBLOCK = syscall.Errno(0x23) ++ EXDEV = syscall.Errno(0x12) ++) ++ ++// Signals ++const ( ++ SIGABRT = syscall.Signal(0x6) ++ SIGALRM = syscall.Signal(0xe) ++ SIGBUS = syscall.Signal(0xa) ++ SIGCHLD = syscall.Signal(0x14) ++ SIGCONT = syscall.Signal(0x13) ++ SIGEMT = syscall.Signal(0x7) ++ SIGFPE = syscall.Signal(0x8) ++ SIGHUP = syscall.Signal(0x1) ++ SIGILL = syscall.Signal(0x4) ++ SIGINFO = syscall.Signal(0x1d) ++ SIGINT = syscall.Signal(0x2) ++ SIGIO = syscall.Signal(0x17) ++ SIGIOT = syscall.Signal(0x6) ++ SIGKILL = syscall.Signal(0x9) ++ SIGPIPE = syscall.Signal(0xd) ++ SIGPROF = syscall.Signal(0x1b) ++ SIGQUIT = syscall.Signal(0x3) ++ SIGSEGV = syscall.Signal(0xb) ++ SIGSTOP = syscall.Signal(0x11) ++ SIGSYS = syscall.Signal(0xc) ++ SIGTERM = syscall.Signal(0xf) ++ SIGTRAP = syscall.Signal(0x5) ++ SIGTSTP = syscall.Signal(0x12) ++ SIGTTIN = syscall.Signal(0x15) ++ SIGTTOU = syscall.Signal(0x16) ++ SIGURG = syscall.Signal(0x10) ++ SIGUSR1 = syscall.Signal(0x1e) ++ SIGUSR2 = syscall.Signal(0x1f) ++ SIGVTALRM = syscall.Signal(0x1a) ++ SIGWINCH = syscall.Signal(0x1c) ++ SIGXCPU = syscall.Signal(0x18) ++ SIGXFSZ = syscall.Signal(0x19) ++) ++ ++// Error table ++var errors = [...]string{ ++ 1: "operation not permitted", ++ 2: "no such file or directory", ++ 3: "no such process", ++ 4: "interrupted system call", ++ 5: "input/output error", ++ 6: "device not configured", ++ 7: "argument list too long", ++ 8: "exec format error", ++ 9: "bad file descriptor", ++ 10: "no child processes", ++ 11: "resource deadlock avoided", ++ 12: "cannot allocate memory", ++ 13: "permission denied", ++ 14: "bad address", ++ 15: "block device required", ++ 16: "resource busy", ++ 17: "file exists", ++ 18: "cross-device link", ++ 19: "operation not supported by device", ++ 20: "not a directory", ++ 21: "is a directory", ++ 22: "invalid argument", ++ 23: "too many open files in system", ++ 24: "too many open files", ++ 25: "inappropriate ioctl for device", ++ 26: "text file busy", ++ 27: "file too large", ++ 28: "no space left on device", ++ 29: "illegal seek", ++ 30: "read-only file system", ++ 31: "too many links", ++ 32: "broken pipe", ++ 33: "numerical argument out of domain", ++ 34: "result too large", ++ 35: "resource temporarily unavailable", ++ 36: "operation now in progress", ++ 37: "operation already in progress", ++ 38: "socket operation on non-socket", ++ 39: "destination address required", ++ 40: "message too long", ++ 41: "protocol wrong type for socket", ++ 42: "protocol not available", ++ 43: "protocol not supported", ++ 44: "socket type not supported", ++ 45: "operation not supported", ++ 46: "protocol family not supported", ++ 47: "address family not supported by protocol family", ++ 48: "address already in use", ++ 49: "can't assign requested address", ++ 50: "network is down", ++ 51: "network is unreachable", ++ 52: "network dropped connection on reset", ++ 53: "software caused connection abort", ++ 54: "connection reset by peer", ++ 55: "no buffer space available", ++ 56: "socket is already connected", ++ 57: "socket is not connected", ++ 58: "can't send after socket shutdown", ++ 59: "too many references: can't splice", ++ 60: "operation timed out", ++ 61: "connection refused", ++ 62: "too many levels of symbolic links", ++ 63: "file name too long", ++ 64: "host is down", ++ 65: "no route to host", ++ 66: "directory not empty", ++ 67: "too many processes", ++ 68: "too many users", ++ 69: "disc quota exceeded", ++ 70: "stale NFS file handle", ++ 71: "too many levels of remote in path", ++ 72: "RPC struct is bad", ++ 73: "RPC version wrong", ++ 74: "RPC prog. not avail", ++ 75: "program version wrong", ++ 76: "bad procedure for program", ++ 77: "no locks available", ++ 78: "function not implemented", ++ 79: "inappropriate file type or format", ++ 80: "authentication error", ++ 81: "need authenticator", ++ 82: "device power is off", ++ 83: "device error", ++ 84: "value too large to be stored in data type", ++ 85: "bad executable (or shared library)", ++ 86: "bad CPU type in executable", ++ 87: "shared library version mismatch", ++ 88: "malformed Mach-o file", ++ 89: "operation canceled", ++ 90: "identifier removed", ++ 91: "no message of desired type", ++ 92: "illegal byte sequence", ++ 93: "attribute not found", ++ 94: "bad message", ++ 95: "EMULTIHOP (Reserved)", ++ 96: "no message available on STREAM", ++ 97: "ENOLINK (Reserved)", ++ 98: "no STREAM resources", ++ 99: "not a STREAM", ++ 100: "protocol error", ++ 101: "STREAM ioctl timeout", ++ 102: "operation not supported on socket", ++ 103: "policy not found", ++ 104: "state not recoverable", ++ 105: "previous owner died", ++ 106: "interface output queue is full", ++} ++ ++// Signal table ++var signals = [...]string{ ++ 1: "hangup", ++ 2: "interrupt", ++ 3: "quit", ++ 4: "illegal instruction", ++ 5: "trace/BPT trap", ++ 6: "abort trap", ++ 7: "EMT trap", ++ 8: "floating point exception", ++ 9: "killed", ++ 10: "bus error", ++ 11: "segmentation fault", ++ 12: "bad system call", ++ 13: "broken pipe", ++ 14: "alarm clock", ++ 15: "terminated", ++ 16: "urgent I/O condition", ++ 17: "suspended (signal)", ++ 18: "suspended", ++ 19: "continued", ++ 20: "child exited", ++ 21: "stopped (tty input)", ++ 22: "stopped (tty output)", ++ 23: "I/O possible", ++ 24: "cputime limit exceeded", ++ 25: "filesize limit exceeded", ++ 26: "virtual timer expired", ++ 27: "profiling timer expired", ++ 28: "window size changes", ++ 29: "information request", ++ 30: "user defined signal 1", ++ 31: "user defined signal 2", ++} +diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go +new file mode 100644 +index 0000000..9594f93 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go +@@ -0,0 +1,1576 @@ ++// mkerrors.sh -m64 ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build amd64,darwin ++ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- -m64 _const.go ++ ++package unix ++ ++import "syscall" ++ ++const ( ++ AF_APPLETALK = 0x10 ++ AF_CCITT = 0xa ++ AF_CHAOS = 0x5 ++ AF_CNT = 0x15 ++ AF_COIP = 0x14 ++ AF_DATAKIT = 0x9 ++ AF_DECnet = 0xc ++ AF_DLI = 0xd ++ AF_E164 = 0x1c ++ AF_ECMA = 0x8 ++ AF_HYLINK = 0xf ++ AF_IEEE80211 = 0x25 ++ AF_IMPLINK = 0x3 ++ AF_INET = 0x2 ++ AF_INET6 = 0x1e ++ AF_IPX = 0x17 ++ AF_ISDN = 0x1c ++ AF_ISO = 0x7 ++ AF_LAT = 0xe ++ AF_LINK = 0x12 ++ AF_LOCAL = 0x1 ++ AF_MAX = 0x28 ++ AF_NATM = 0x1f ++ AF_NDRV = 0x1b ++ AF_NETBIOS = 0x21 ++ AF_NS = 0x6 ++ AF_OSI = 0x7 ++ AF_PPP = 0x22 ++ AF_PUP = 0x4 ++ AF_RESERVED_36 = 0x24 ++ AF_ROUTE = 0x11 ++ AF_SIP = 0x18 ++ AF_SNA = 0xb ++ AF_SYSTEM = 0x20 ++ AF_UNIX = 0x1 ++ AF_UNSPEC = 0x0 ++ AF_UTUN = 0x26 ++ B0 = 0x0 ++ B110 = 0x6e ++ B115200 = 0x1c200 ++ B1200 = 0x4b0 ++ B134 = 0x86 ++ B14400 = 0x3840 ++ B150 = 0x96 ++ B1800 = 0x708 ++ B19200 = 0x4b00 ++ B200 = 0xc8 ++ B230400 = 0x38400 ++ B2400 = 0x960 ++ B28800 = 0x7080 ++ B300 = 0x12c ++ B38400 = 0x9600 ++ B4800 = 0x12c0 ++ B50 = 0x32 ++ B57600 = 0xe100 ++ B600 = 0x258 ++ B7200 = 0x1c20 ++ B75 = 0x4b ++ B76800 = 0x12c00 ++ B9600 = 0x2580 ++ BIOCFLUSH = 0x20004268 ++ BIOCGBLEN = 0x40044266 ++ BIOCGDLT = 0x4004426a ++ BIOCGDLTLIST = 0xc00c4279 ++ BIOCGETIF = 0x4020426b ++ BIOCGHDRCMPLT = 0x40044274 ++ BIOCGRSIG = 0x40044272 ++ BIOCGRTIMEOUT = 0x4010426e ++ BIOCGSEESENT = 0x40044276 ++ BIOCGSTATS = 0x4008426f ++ BIOCIMMEDIATE = 0x80044270 ++ BIOCPROMISC = 0x20004269 ++ BIOCSBLEN = 0xc0044266 ++ BIOCSDLT = 0x80044278 ++ BIOCSETF = 0x80104267 ++ BIOCSETFNR = 0x8010427e ++ BIOCSETIF = 0x8020426c ++ BIOCSHDRCMPLT = 0x80044275 ++ BIOCSRSIG = 0x80044273 ++ BIOCSRTIMEOUT = 0x8010426d ++ BIOCSSEESENT = 0x80044277 ++ BIOCVERSION = 0x40044271 ++ BPF_A = 0x10 ++ BPF_ABS = 0x20 ++ BPF_ADD = 0x0 ++ BPF_ALIGNMENT = 0x4 ++ BPF_ALU = 0x4 ++ BPF_AND = 0x50 ++ BPF_B = 0x10 ++ BPF_DIV = 0x30 ++ BPF_H = 0x8 ++ BPF_IMM = 0x0 ++ BPF_IND = 0x40 ++ BPF_JA = 0x0 ++ BPF_JEQ = 0x10 ++ BPF_JGE = 0x30 ++ BPF_JGT = 0x20 ++ BPF_JMP = 0x5 ++ BPF_JSET = 0x40 ++ BPF_K = 0x0 ++ BPF_LD = 0x0 ++ BPF_LDX = 0x1 ++ BPF_LEN = 0x80 ++ BPF_LSH = 0x60 ++ BPF_MAJOR_VERSION = 0x1 ++ BPF_MAXBUFSIZE = 0x80000 ++ BPF_MAXINSNS = 0x200 ++ BPF_MEM = 0x60 ++ BPF_MEMWORDS = 0x10 ++ BPF_MINBUFSIZE = 0x20 ++ BPF_MINOR_VERSION = 0x1 ++ BPF_MISC = 0x7 ++ BPF_MSH = 0xa0 ++ BPF_MUL = 0x20 ++ BPF_NEG = 0x80 ++ BPF_OR = 0x40 ++ BPF_RELEASE = 0x30bb6 ++ BPF_RET = 0x6 ++ BPF_RSH = 0x70 ++ BPF_ST = 0x2 ++ BPF_STX = 0x3 ++ BPF_SUB = 0x10 ++ BPF_TAX = 0x0 ++ BPF_TXA = 0x80 ++ BPF_W = 0x0 ++ BPF_X = 0x8 ++ BRKINT = 0x2 ++ CFLUSH = 0xf ++ CLOCAL = 0x8000 ++ CREAD = 0x800 ++ CS5 = 0x0 ++ CS6 = 0x100 ++ CS7 = 0x200 ++ CS8 = 0x300 ++ CSIZE = 0x300 ++ CSTART = 0x11 ++ CSTATUS = 0x14 ++ CSTOP = 0x13 ++ CSTOPB = 0x400 ++ CSUSP = 0x1a ++ CTL_MAXNAME = 0xc ++ CTL_NET = 0x4 ++ DLT_A429 = 0xb8 ++ DLT_A653_ICM = 0xb9 ++ DLT_AIRONET_HEADER = 0x78 ++ DLT_AOS = 0xde ++ DLT_APPLE_IP_OVER_IEEE1394 = 0x8a ++ DLT_ARCNET = 0x7 ++ DLT_ARCNET_LINUX = 0x81 ++ DLT_ATM_CLIP = 0x13 ++ DLT_ATM_RFC1483 = 0xb ++ DLT_AURORA = 0x7e ++ DLT_AX25 = 0x3 ++ DLT_AX25_KISS = 0xca ++ DLT_BACNET_MS_TP = 0xa5 ++ DLT_BLUETOOTH_HCI_H4 = 0xbb ++ DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 ++ DLT_CAN20B = 0xbe ++ DLT_CAN_SOCKETCAN = 0xe3 ++ DLT_CHAOS = 0x5 ++ DLT_CHDLC = 0x68 ++ DLT_CISCO_IOS = 0x76 ++ DLT_C_HDLC = 0x68 ++ DLT_C_HDLC_WITH_DIR = 0xcd ++ DLT_DBUS = 0xe7 ++ DLT_DECT = 0xdd ++ DLT_DOCSIS = 0x8f ++ DLT_DVB_CI = 0xeb ++ DLT_ECONET = 0x73 ++ DLT_EN10MB = 0x1 ++ DLT_EN3MB = 0x2 ++ DLT_ENC = 0x6d ++ DLT_ERF = 0xc5 ++ DLT_ERF_ETH = 0xaf ++ DLT_ERF_POS = 0xb0 ++ DLT_FC_2 = 0xe0 ++ DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 ++ DLT_FDDI = 0xa ++ DLT_FLEXRAY = 0xd2 ++ DLT_FRELAY = 0x6b ++ DLT_FRELAY_WITH_DIR = 0xce ++ DLT_GCOM_SERIAL = 0xad ++ DLT_GCOM_T1E1 = 0xac ++ DLT_GPF_F = 0xab ++ DLT_GPF_T = 0xaa ++ DLT_GPRS_LLC = 0xa9 ++ DLT_GSMTAP_ABIS = 0xda ++ DLT_GSMTAP_UM = 0xd9 ++ DLT_HHDLC = 0x79 ++ DLT_IBM_SN = 0x92 ++ DLT_IBM_SP = 0x91 ++ DLT_IEEE802 = 0x6 ++ DLT_IEEE802_11 = 0x69 ++ DLT_IEEE802_11_RADIO = 0x7f ++ DLT_IEEE802_11_RADIO_AVS = 0xa3 ++ DLT_IEEE802_15_4 = 0xc3 ++ DLT_IEEE802_15_4_LINUX = 0xbf ++ DLT_IEEE802_15_4_NOFCS = 0xe6 ++ DLT_IEEE802_15_4_NONASK_PHY = 0xd7 ++ DLT_IEEE802_16_MAC_CPS = 0xbc ++ DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 ++ DLT_IPFILTER = 0x74 ++ DLT_IPMB = 0xc7 ++ DLT_IPMB_LINUX = 0xd1 ++ DLT_IPNET = 0xe2 ++ DLT_IPOIB = 0xf2 ++ DLT_IPV4 = 0xe4 ++ DLT_IPV6 = 0xe5 ++ DLT_IP_OVER_FC = 0x7a ++ DLT_JUNIPER_ATM1 = 0x89 ++ DLT_JUNIPER_ATM2 = 0x87 ++ DLT_JUNIPER_ATM_CEMIC = 0xee ++ DLT_JUNIPER_CHDLC = 0xb5 ++ DLT_JUNIPER_ES = 0x84 ++ DLT_JUNIPER_ETHER = 0xb2 ++ DLT_JUNIPER_FIBRECHANNEL = 0xea ++ DLT_JUNIPER_FRELAY = 0xb4 ++ DLT_JUNIPER_GGSN = 0x85 ++ DLT_JUNIPER_ISM = 0xc2 ++ DLT_JUNIPER_MFR = 0x86 ++ DLT_JUNIPER_MLFR = 0x83 ++ DLT_JUNIPER_MLPPP = 0x82 ++ DLT_JUNIPER_MONITOR = 0xa4 ++ DLT_JUNIPER_PIC_PEER = 0xae ++ DLT_JUNIPER_PPP = 0xb3 ++ DLT_JUNIPER_PPPOE = 0xa7 ++ DLT_JUNIPER_PPPOE_ATM = 0xa8 ++ DLT_JUNIPER_SERVICES = 0x88 ++ DLT_JUNIPER_SRX_E2E = 0xe9 ++ DLT_JUNIPER_ST = 0xc8 ++ DLT_JUNIPER_VP = 0xb7 ++ DLT_JUNIPER_VS = 0xe8 ++ DLT_LAPB_WITH_DIR = 0xcf ++ DLT_LAPD = 0xcb ++ DLT_LIN = 0xd4 ++ DLT_LINUX_EVDEV = 0xd8 ++ DLT_LINUX_IRDA = 0x90 ++ DLT_LINUX_LAPD = 0xb1 ++ DLT_LINUX_PPP_WITHDIRECTION = 0xa6 ++ DLT_LINUX_SLL = 0x71 ++ DLT_LOOP = 0x6c ++ DLT_LTALK = 0x72 ++ DLT_MATCHING_MAX = 0xf5 ++ DLT_MATCHING_MIN = 0x68 ++ DLT_MFR = 0xb6 ++ DLT_MOST = 0xd3 ++ DLT_MPEG_2_TS = 0xf3 ++ DLT_MPLS = 0xdb ++ DLT_MTP2 = 0x8c ++ DLT_MTP2_WITH_PHDR = 0x8b ++ DLT_MTP3 = 0x8d ++ DLT_MUX27010 = 0xec ++ DLT_NETANALYZER = 0xf0 ++ DLT_NETANALYZER_TRANSPARENT = 0xf1 ++ DLT_NFC_LLCP = 0xf5 ++ DLT_NFLOG = 0xef ++ DLT_NG40 = 0xf4 ++ DLT_NULL = 0x0 ++ DLT_PCI_EXP = 0x7d ++ DLT_PFLOG = 0x75 ++ DLT_PFSYNC = 0x12 ++ DLT_PPI = 0xc0 ++ DLT_PPP = 0x9 ++ DLT_PPP_BSDOS = 0x10 ++ DLT_PPP_ETHER = 0x33 ++ DLT_PPP_PPPD = 0xa6 ++ DLT_PPP_SERIAL = 0x32 ++ DLT_PPP_WITH_DIR = 0xcc ++ DLT_PPP_WITH_DIRECTION = 0xa6 ++ DLT_PRISM_HEADER = 0x77 ++ DLT_PRONET = 0x4 ++ DLT_RAIF1 = 0xc6 ++ DLT_RAW = 0xc ++ DLT_RIO = 0x7c ++ DLT_SCCP = 0x8e ++ DLT_SITA = 0xc4 ++ DLT_SLIP = 0x8 ++ DLT_SLIP_BSDOS = 0xf ++ DLT_STANAG_5066_D_PDU = 0xed ++ DLT_SUNATM = 0x7b ++ DLT_SYMANTEC_FIREWALL = 0x63 ++ DLT_TZSP = 0x80 ++ DLT_USB = 0xba ++ DLT_USB_LINUX = 0xbd ++ DLT_USB_LINUX_MMAPPED = 0xdc ++ DLT_USER0 = 0x93 ++ DLT_USER1 = 0x94 ++ DLT_USER10 = 0x9d ++ DLT_USER11 = 0x9e ++ DLT_USER12 = 0x9f ++ DLT_USER13 = 0xa0 ++ DLT_USER14 = 0xa1 ++ DLT_USER15 = 0xa2 ++ DLT_USER2 = 0x95 ++ DLT_USER3 = 0x96 ++ DLT_USER4 = 0x97 ++ DLT_USER5 = 0x98 ++ DLT_USER6 = 0x99 ++ DLT_USER7 = 0x9a ++ DLT_USER8 = 0x9b ++ DLT_USER9 = 0x9c ++ DLT_WIHART = 0xdf ++ DLT_X2E_SERIAL = 0xd5 ++ DLT_X2E_XORAYA = 0xd6 ++ DT_BLK = 0x6 ++ DT_CHR = 0x2 ++ DT_DIR = 0x4 ++ DT_FIFO = 0x1 ++ DT_LNK = 0xa ++ DT_REG = 0x8 ++ DT_SOCK = 0xc ++ DT_UNKNOWN = 0x0 ++ DT_WHT = 0xe ++ ECHO = 0x8 ++ ECHOCTL = 0x40 ++ ECHOE = 0x2 ++ ECHOK = 0x4 ++ ECHOKE = 0x1 ++ ECHONL = 0x10 ++ ECHOPRT = 0x20 ++ EVFILT_AIO = -0x3 ++ EVFILT_FS = -0x9 ++ EVFILT_MACHPORT = -0x8 ++ EVFILT_PROC = -0x5 ++ EVFILT_READ = -0x1 ++ EVFILT_SIGNAL = -0x6 ++ EVFILT_SYSCOUNT = 0xe ++ EVFILT_THREADMARKER = 0xe ++ EVFILT_TIMER = -0x7 ++ EVFILT_USER = -0xa ++ EVFILT_VM = -0xc ++ EVFILT_VNODE = -0x4 ++ EVFILT_WRITE = -0x2 ++ EV_ADD = 0x1 ++ EV_CLEAR = 0x20 ++ EV_DELETE = 0x2 ++ EV_DISABLE = 0x8 ++ EV_DISPATCH = 0x80 ++ EV_ENABLE = 0x4 ++ EV_EOF = 0x8000 ++ EV_ERROR = 0x4000 ++ EV_FLAG0 = 0x1000 ++ EV_FLAG1 = 0x2000 ++ EV_ONESHOT = 0x10 ++ EV_OOBAND = 0x2000 ++ EV_POLL = 0x1000 ++ EV_RECEIPT = 0x40 ++ EV_SYSFLAGS = 0xf000 ++ EXTA = 0x4b00 ++ EXTB = 0x9600 ++ EXTPROC = 0x800 ++ FD_CLOEXEC = 0x1 ++ FD_SETSIZE = 0x400 ++ FLUSHO = 0x800000 ++ F_ADDFILESIGS = 0x3d ++ F_ADDSIGS = 0x3b ++ F_ALLOCATEALL = 0x4 ++ F_ALLOCATECONTIG = 0x2 ++ F_CHKCLEAN = 0x29 ++ F_DUPFD = 0x0 ++ F_DUPFD_CLOEXEC = 0x43 ++ F_FINDSIGS = 0x4e ++ F_FLUSH_DATA = 0x28 ++ F_FREEZE_FS = 0x35 ++ F_FULLFSYNC = 0x33 ++ F_GETCODEDIR = 0x48 ++ F_GETFD = 0x1 ++ F_GETFL = 0x3 ++ F_GETLK = 0x7 ++ F_GETLKPID = 0x42 ++ F_GETNOSIGPIPE = 0x4a ++ F_GETOWN = 0x5 ++ F_GETPATH = 0x32 ++ F_GETPATH_MTMINFO = 0x47 ++ F_GETPROTECTIONCLASS = 0x3f ++ F_GETPROTECTIONLEVEL = 0x4d ++ F_GLOBAL_NOCACHE = 0x37 ++ F_LOG2PHYS = 0x31 ++ F_LOG2PHYS_EXT = 0x41 ++ F_NOCACHE = 0x30 ++ F_NODIRECT = 0x3e ++ F_OK = 0x0 ++ F_PATHPKG_CHECK = 0x34 ++ F_PEOFPOSMODE = 0x3 ++ F_PREALLOCATE = 0x2a ++ F_RDADVISE = 0x2c ++ F_RDAHEAD = 0x2d ++ F_RDLCK = 0x1 ++ F_SETBACKINGSTORE = 0x46 ++ F_SETFD = 0x2 ++ F_SETFL = 0x4 ++ F_SETLK = 0x8 ++ F_SETLKW = 0x9 ++ F_SETLKWTIMEOUT = 0xa ++ F_SETNOSIGPIPE = 0x49 ++ F_SETOWN = 0x6 ++ F_SETPROTECTIONCLASS = 0x40 ++ F_SETSIZE = 0x2b ++ F_SINGLE_WRITER = 0x4c ++ F_THAW_FS = 0x36 ++ F_TRANSCODEKEY = 0x4b ++ F_UNLCK = 0x2 ++ F_VOLPOSMODE = 0x4 ++ F_WRLCK = 0x3 ++ HUPCL = 0x4000 ++ ICANON = 0x100 ++ ICMP6_FILTER = 0x12 ++ ICRNL = 0x100 ++ IEXTEN = 0x400 ++ IFF_ALLMULTI = 0x200 ++ IFF_ALTPHYS = 0x4000 ++ IFF_BROADCAST = 0x2 ++ IFF_DEBUG = 0x4 ++ IFF_LINK0 = 0x1000 ++ IFF_LINK1 = 0x2000 ++ IFF_LINK2 = 0x4000 ++ IFF_LOOPBACK = 0x8 ++ IFF_MULTICAST = 0x8000 ++ IFF_NOARP = 0x80 ++ IFF_NOTRAILERS = 0x20 ++ IFF_OACTIVE = 0x400 ++ IFF_POINTOPOINT = 0x10 ++ IFF_PROMISC = 0x100 ++ IFF_RUNNING = 0x40 ++ IFF_SIMPLEX = 0x800 ++ IFF_UP = 0x1 ++ IFNAMSIZ = 0x10 ++ IFT_1822 = 0x2 ++ IFT_AAL5 = 0x31 ++ IFT_ARCNET = 0x23 ++ IFT_ARCNETPLUS = 0x24 ++ IFT_ATM = 0x25 ++ IFT_BRIDGE = 0xd1 ++ IFT_CARP = 0xf8 ++ IFT_CELLULAR = 0xff ++ IFT_CEPT = 0x13 ++ IFT_DS3 = 0x1e ++ IFT_ENC = 0xf4 ++ IFT_EON = 0x19 ++ IFT_ETHER = 0x6 ++ IFT_FAITH = 0x38 ++ IFT_FDDI = 0xf ++ IFT_FRELAY = 0x20 ++ IFT_FRELAYDCE = 0x2c ++ IFT_GIF = 0x37 ++ IFT_HDH1822 = 0x3 ++ IFT_HIPPI = 0x2f ++ IFT_HSSI = 0x2e ++ IFT_HY = 0xe ++ IFT_IEEE1394 = 0x90 ++ IFT_IEEE8023ADLAG = 0x88 ++ IFT_ISDNBASIC = 0x14 ++ IFT_ISDNPRIMARY = 0x15 ++ IFT_ISO88022LLC = 0x29 ++ IFT_ISO88023 = 0x7 ++ IFT_ISO88024 = 0x8 ++ IFT_ISO88025 = 0x9 ++ IFT_ISO88026 = 0xa ++ IFT_L2VLAN = 0x87 ++ IFT_LAPB = 0x10 ++ IFT_LOCALTALK = 0x2a ++ IFT_LOOP = 0x18 ++ IFT_MIOX25 = 0x26 ++ IFT_MODEM = 0x30 ++ IFT_NSIP = 0x1b ++ IFT_OTHER = 0x1 ++ IFT_P10 = 0xc ++ IFT_P80 = 0xd ++ IFT_PARA = 0x22 ++ IFT_PDP = 0xff ++ IFT_PFLOG = 0xf5 ++ IFT_PFSYNC = 0xf6 ++ IFT_PKTAP = 0xfe ++ IFT_PPP = 0x17 ++ IFT_PROPMUX = 0x36 ++ IFT_PROPVIRTUAL = 0x35 ++ IFT_PTPSERIAL = 0x16 ++ IFT_RS232 = 0x21 ++ IFT_SDLC = 0x11 ++ IFT_SIP = 0x1f ++ IFT_SLIP = 0x1c ++ IFT_SMDSDXI = 0x2b ++ IFT_SMDSICIP = 0x34 ++ IFT_SONET = 0x27 ++ IFT_SONETPATH = 0x32 ++ IFT_SONETVT = 0x33 ++ IFT_STARLAN = 0xb ++ IFT_STF = 0x39 ++ IFT_T1 = 0x12 ++ IFT_ULTRA = 0x1d ++ IFT_V35 = 0x2d ++ IFT_X25 = 0x5 ++ IFT_X25DDN = 0x4 ++ IFT_X25PLE = 0x28 ++ IFT_XETHER = 0x1a ++ IGNBRK = 0x1 ++ IGNCR = 0x80 ++ IGNPAR = 0x4 ++ IMAXBEL = 0x2000 ++ INLCR = 0x40 ++ INPCK = 0x10 ++ IN_CLASSA_HOST = 0xffffff ++ IN_CLASSA_MAX = 0x80 ++ IN_CLASSA_NET = 0xff000000 ++ IN_CLASSA_NSHIFT = 0x18 ++ IN_CLASSB_HOST = 0xffff ++ IN_CLASSB_MAX = 0x10000 ++ IN_CLASSB_NET = 0xffff0000 ++ IN_CLASSB_NSHIFT = 0x10 ++ IN_CLASSC_HOST = 0xff ++ IN_CLASSC_NET = 0xffffff00 ++ IN_CLASSC_NSHIFT = 0x8 ++ IN_CLASSD_HOST = 0xfffffff ++ IN_CLASSD_NET = 0xf0000000 ++ IN_CLASSD_NSHIFT = 0x1c ++ IN_LINKLOCALNETNUM = 0xa9fe0000 ++ IN_LOOPBACKNET = 0x7f ++ IPPROTO_3PC = 0x22 ++ IPPROTO_ADFS = 0x44 ++ IPPROTO_AH = 0x33 ++ IPPROTO_AHIP = 0x3d ++ IPPROTO_APES = 0x63 ++ IPPROTO_ARGUS = 0xd ++ IPPROTO_AX25 = 0x5d ++ IPPROTO_BHA = 0x31 ++ IPPROTO_BLT = 0x1e ++ IPPROTO_BRSATMON = 0x4c ++ IPPROTO_CFTP = 0x3e ++ IPPROTO_CHAOS = 0x10 ++ IPPROTO_CMTP = 0x26 ++ IPPROTO_CPHB = 0x49 ++ IPPROTO_CPNX = 0x48 ++ IPPROTO_DDP = 0x25 ++ IPPROTO_DGP = 0x56 ++ IPPROTO_DIVERT = 0xfe ++ IPPROTO_DONE = 0x101 ++ IPPROTO_DSTOPTS = 0x3c ++ IPPROTO_EGP = 0x8 ++ IPPROTO_EMCON = 0xe ++ IPPROTO_ENCAP = 0x62 ++ IPPROTO_EON = 0x50 ++ IPPROTO_ESP = 0x32 ++ IPPROTO_ETHERIP = 0x61 ++ IPPROTO_FRAGMENT = 0x2c ++ IPPROTO_GGP = 0x3 ++ IPPROTO_GMTP = 0x64 ++ IPPROTO_GRE = 0x2f ++ IPPROTO_HELLO = 0x3f ++ IPPROTO_HMP = 0x14 ++ IPPROTO_HOPOPTS = 0x0 ++ IPPROTO_ICMP = 0x1 ++ IPPROTO_ICMPV6 = 0x3a ++ IPPROTO_IDP = 0x16 ++ IPPROTO_IDPR = 0x23 ++ IPPROTO_IDRP = 0x2d ++ IPPROTO_IGMP = 0x2 ++ IPPROTO_IGP = 0x55 ++ IPPROTO_IGRP = 0x58 ++ IPPROTO_IL = 0x28 ++ IPPROTO_INLSP = 0x34 ++ IPPROTO_INP = 0x20 ++ IPPROTO_IP = 0x0 ++ IPPROTO_IPCOMP = 0x6c ++ IPPROTO_IPCV = 0x47 ++ IPPROTO_IPEIP = 0x5e ++ IPPROTO_IPIP = 0x4 ++ IPPROTO_IPPC = 0x43 ++ IPPROTO_IPV4 = 0x4 ++ IPPROTO_IPV6 = 0x29 ++ IPPROTO_IRTP = 0x1c ++ IPPROTO_KRYPTOLAN = 0x41 ++ IPPROTO_LARP = 0x5b ++ IPPROTO_LEAF1 = 0x19 ++ IPPROTO_LEAF2 = 0x1a ++ IPPROTO_MAX = 0x100 ++ IPPROTO_MAXID = 0x34 ++ IPPROTO_MEAS = 0x13 ++ IPPROTO_MHRP = 0x30 ++ IPPROTO_MICP = 0x5f ++ IPPROTO_MTP = 0x5c ++ IPPROTO_MUX = 0x12 ++ IPPROTO_ND = 0x4d ++ IPPROTO_NHRP = 0x36 ++ IPPROTO_NONE = 0x3b ++ IPPROTO_NSP = 0x1f ++ IPPROTO_NVPII = 0xb ++ IPPROTO_OSPFIGP = 0x59 ++ IPPROTO_PGM = 0x71 ++ IPPROTO_PIGP = 0x9 ++ IPPROTO_PIM = 0x67 ++ IPPROTO_PRM = 0x15 ++ IPPROTO_PUP = 0xc ++ IPPROTO_PVP = 0x4b ++ IPPROTO_RAW = 0xff ++ IPPROTO_RCCMON = 0xa ++ IPPROTO_RDP = 0x1b ++ IPPROTO_ROUTING = 0x2b ++ IPPROTO_RSVP = 0x2e ++ IPPROTO_RVD = 0x42 ++ IPPROTO_SATEXPAK = 0x40 ++ IPPROTO_SATMON = 0x45 ++ IPPROTO_SCCSP = 0x60 ++ IPPROTO_SCTP = 0x84 ++ IPPROTO_SDRP = 0x2a ++ IPPROTO_SEP = 0x21 ++ IPPROTO_SRPC = 0x5a ++ IPPROTO_ST = 0x7 ++ IPPROTO_SVMTP = 0x52 ++ IPPROTO_SWIPE = 0x35 ++ IPPROTO_TCF = 0x57 ++ IPPROTO_TCP = 0x6 ++ IPPROTO_TP = 0x1d ++ IPPROTO_TPXX = 0x27 ++ IPPROTO_TRUNK1 = 0x17 ++ IPPROTO_TRUNK2 = 0x18 ++ IPPROTO_TTP = 0x54 ++ IPPROTO_UDP = 0x11 ++ IPPROTO_VINES = 0x53 ++ IPPROTO_VISA = 0x46 ++ IPPROTO_VMTP = 0x51 ++ IPPROTO_WBEXPAK = 0x4f ++ IPPROTO_WBMON = 0x4e ++ IPPROTO_WSN = 0x4a ++ IPPROTO_XNET = 0xf ++ IPPROTO_XTP = 0x24 ++ IPV6_2292DSTOPTS = 0x17 ++ IPV6_2292HOPLIMIT = 0x14 ++ IPV6_2292HOPOPTS = 0x16 ++ IPV6_2292NEXTHOP = 0x15 ++ IPV6_2292PKTINFO = 0x13 ++ IPV6_2292PKTOPTIONS = 0x19 ++ IPV6_2292RTHDR = 0x18 ++ IPV6_BINDV6ONLY = 0x1b ++ IPV6_BOUND_IF = 0x7d ++ IPV6_CHECKSUM = 0x1a ++ IPV6_DEFAULT_MULTICAST_HOPS = 0x1 ++ IPV6_DEFAULT_MULTICAST_LOOP = 0x1 ++ IPV6_DEFHLIM = 0x40 ++ IPV6_FAITH = 0x1d ++ IPV6_FLOWINFO_MASK = 0xffffff0f ++ IPV6_FLOWLABEL_MASK = 0xffff0f00 ++ IPV6_FRAGTTL = 0x3c ++ IPV6_FW_ADD = 0x1e ++ IPV6_FW_DEL = 0x1f ++ IPV6_FW_FLUSH = 0x20 ++ IPV6_FW_GET = 0x22 ++ IPV6_FW_ZERO = 0x21 ++ IPV6_HLIMDEC = 0x1 ++ IPV6_IPSEC_POLICY = 0x1c ++ IPV6_JOIN_GROUP = 0xc ++ IPV6_LEAVE_GROUP = 0xd ++ IPV6_MAXHLIM = 0xff ++ IPV6_MAXOPTHDR = 0x800 ++ IPV6_MAXPACKET = 0xffff ++ IPV6_MAX_GROUP_SRC_FILTER = 0x200 ++ IPV6_MAX_MEMBERSHIPS = 0xfff ++ IPV6_MAX_SOCK_SRC_FILTER = 0x80 ++ IPV6_MIN_MEMBERSHIPS = 0x1f ++ IPV6_MMTU = 0x500 ++ IPV6_MULTICAST_HOPS = 0xa ++ IPV6_MULTICAST_IF = 0x9 ++ IPV6_MULTICAST_LOOP = 0xb ++ IPV6_PORTRANGE = 0xe ++ IPV6_PORTRANGE_DEFAULT = 0x0 ++ IPV6_PORTRANGE_HIGH = 0x1 ++ IPV6_PORTRANGE_LOW = 0x2 ++ IPV6_RECVTCLASS = 0x23 ++ IPV6_RTHDR_LOOSE = 0x0 ++ IPV6_RTHDR_STRICT = 0x1 ++ IPV6_RTHDR_TYPE_0 = 0x0 ++ IPV6_SOCKOPT_RESERVED1 = 0x3 ++ IPV6_TCLASS = 0x24 ++ IPV6_UNICAST_HOPS = 0x4 ++ IPV6_V6ONLY = 0x1b ++ IPV6_VERSION = 0x60 ++ IPV6_VERSION_MASK = 0xf0 ++ IP_ADD_MEMBERSHIP = 0xc ++ IP_ADD_SOURCE_MEMBERSHIP = 0x46 ++ IP_BLOCK_SOURCE = 0x48 ++ IP_BOUND_IF = 0x19 ++ IP_DEFAULT_MULTICAST_LOOP = 0x1 ++ IP_DEFAULT_MULTICAST_TTL = 0x1 ++ IP_DF = 0x4000 ++ IP_DROP_MEMBERSHIP = 0xd ++ IP_DROP_SOURCE_MEMBERSHIP = 0x47 ++ IP_DUMMYNET_CONFIGURE = 0x3c ++ IP_DUMMYNET_DEL = 0x3d ++ IP_DUMMYNET_FLUSH = 0x3e ++ IP_DUMMYNET_GET = 0x40 ++ IP_FAITH = 0x16 ++ IP_FW_ADD = 0x28 ++ IP_FW_DEL = 0x29 ++ IP_FW_FLUSH = 0x2a ++ IP_FW_GET = 0x2c ++ IP_FW_RESETLOG = 0x2d ++ IP_FW_ZERO = 0x2b ++ IP_HDRINCL = 0x2 ++ IP_IPSEC_POLICY = 0x15 ++ IP_MAXPACKET = 0xffff ++ IP_MAX_GROUP_SRC_FILTER = 0x200 ++ IP_MAX_MEMBERSHIPS = 0xfff ++ IP_MAX_SOCK_MUTE_FILTER = 0x80 ++ IP_MAX_SOCK_SRC_FILTER = 0x80 ++ IP_MF = 0x2000 ++ IP_MIN_MEMBERSHIPS = 0x1f ++ IP_MSFILTER = 0x4a ++ IP_MSS = 0x240 ++ IP_MULTICAST_IF = 0x9 ++ IP_MULTICAST_IFINDEX = 0x42 ++ IP_MULTICAST_LOOP = 0xb ++ IP_MULTICAST_TTL = 0xa ++ IP_MULTICAST_VIF = 0xe ++ IP_NAT__XXX = 0x37 ++ IP_OFFMASK = 0x1fff ++ IP_OLD_FW_ADD = 0x32 ++ IP_OLD_FW_DEL = 0x33 ++ IP_OLD_FW_FLUSH = 0x34 ++ IP_OLD_FW_GET = 0x36 ++ IP_OLD_FW_RESETLOG = 0x38 ++ IP_OLD_FW_ZERO = 0x35 ++ IP_OPTIONS = 0x1 ++ IP_PKTINFO = 0x1a ++ IP_PORTRANGE = 0x13 ++ IP_PORTRANGE_DEFAULT = 0x0 ++ IP_PORTRANGE_HIGH = 0x1 ++ IP_PORTRANGE_LOW = 0x2 ++ IP_RECVDSTADDR = 0x7 ++ IP_RECVIF = 0x14 ++ IP_RECVOPTS = 0x5 ++ IP_RECVPKTINFO = 0x1a ++ IP_RECVRETOPTS = 0x6 ++ IP_RECVTTL = 0x18 ++ IP_RETOPTS = 0x8 ++ IP_RF = 0x8000 ++ IP_RSVP_OFF = 0x10 ++ IP_RSVP_ON = 0xf ++ IP_RSVP_VIF_OFF = 0x12 ++ IP_RSVP_VIF_ON = 0x11 ++ IP_STRIPHDR = 0x17 ++ IP_TOS = 0x3 ++ IP_TRAFFIC_MGT_BACKGROUND = 0x41 ++ IP_TTL = 0x4 ++ IP_UNBLOCK_SOURCE = 0x49 ++ ISIG = 0x80 ++ ISTRIP = 0x20 ++ IUTF8 = 0x4000 ++ IXANY = 0x800 ++ IXOFF = 0x400 ++ IXON = 0x200 ++ LOCK_EX = 0x2 ++ LOCK_NB = 0x4 ++ LOCK_SH = 0x1 ++ LOCK_UN = 0x8 ++ MADV_CAN_REUSE = 0x9 ++ MADV_DONTNEED = 0x4 ++ MADV_FREE = 0x5 ++ MADV_FREE_REUSABLE = 0x7 ++ MADV_FREE_REUSE = 0x8 ++ MADV_NORMAL = 0x0 ++ MADV_RANDOM = 0x1 ++ MADV_SEQUENTIAL = 0x2 ++ MADV_WILLNEED = 0x3 ++ MADV_ZERO_WIRED_PAGES = 0x6 ++ MAP_ANON = 0x1000 ++ MAP_COPY = 0x2 ++ MAP_FILE = 0x0 ++ MAP_FIXED = 0x10 ++ MAP_HASSEMAPHORE = 0x200 ++ MAP_JIT = 0x800 ++ MAP_NOCACHE = 0x400 ++ MAP_NOEXTEND = 0x100 ++ MAP_NORESERVE = 0x40 ++ MAP_PRIVATE = 0x2 ++ MAP_RENAME = 0x20 ++ MAP_RESERVED0080 = 0x80 ++ MAP_SHARED = 0x1 ++ MCL_CURRENT = 0x1 ++ MCL_FUTURE = 0x2 ++ MSG_CTRUNC = 0x20 ++ MSG_DONTROUTE = 0x4 ++ MSG_DONTWAIT = 0x80 ++ MSG_EOF = 0x100 ++ MSG_EOR = 0x8 ++ MSG_FLUSH = 0x400 ++ MSG_HAVEMORE = 0x2000 ++ MSG_HOLD = 0x800 ++ MSG_NEEDSA = 0x10000 ++ MSG_OOB = 0x1 ++ MSG_PEEK = 0x2 ++ MSG_RCVMORE = 0x4000 ++ MSG_SEND = 0x1000 ++ MSG_TRUNC = 0x10 ++ MSG_WAITALL = 0x40 ++ MSG_WAITSTREAM = 0x200 ++ MS_ASYNC = 0x1 ++ MS_DEACTIVATE = 0x8 ++ MS_INVALIDATE = 0x2 ++ MS_KILLPAGES = 0x4 ++ MS_SYNC = 0x10 ++ NAME_MAX = 0xff ++ NET_RT_DUMP = 0x1 ++ NET_RT_DUMP2 = 0x7 ++ NET_RT_FLAGS = 0x2 ++ NET_RT_IFLIST = 0x3 ++ NET_RT_IFLIST2 = 0x6 ++ NET_RT_MAXID = 0xa ++ NET_RT_STAT = 0x4 ++ NET_RT_TRASH = 0x5 ++ NOFLSH = 0x80000000 ++ NOTE_ABSOLUTE = 0x8 ++ NOTE_ATTRIB = 0x8 ++ NOTE_BACKGROUND = 0x40 ++ NOTE_CHILD = 0x4 ++ NOTE_CRITICAL = 0x20 ++ NOTE_DELETE = 0x1 ++ NOTE_EXEC = 0x20000000 ++ NOTE_EXIT = 0x80000000 ++ NOTE_EXITSTATUS = 0x4000000 ++ NOTE_EXIT_CSERROR = 0x40000 ++ NOTE_EXIT_DECRYPTFAIL = 0x10000 ++ NOTE_EXIT_DETAIL = 0x2000000 ++ NOTE_EXIT_DETAIL_MASK = 0x70000 ++ NOTE_EXIT_MEMORY = 0x20000 ++ NOTE_EXIT_REPARENTED = 0x80000 ++ NOTE_EXTEND = 0x4 ++ NOTE_FFAND = 0x40000000 ++ NOTE_FFCOPY = 0xc0000000 ++ NOTE_FFCTRLMASK = 0xc0000000 ++ NOTE_FFLAGSMASK = 0xffffff ++ NOTE_FFNOP = 0x0 ++ NOTE_FFOR = 0x80000000 ++ NOTE_FORK = 0x40000000 ++ NOTE_LEEWAY = 0x10 ++ NOTE_LINK = 0x10 ++ NOTE_LOWAT = 0x1 ++ NOTE_NONE = 0x80 ++ NOTE_NSECONDS = 0x4 ++ NOTE_PCTRLMASK = -0x100000 ++ NOTE_PDATAMASK = 0xfffff ++ NOTE_REAP = 0x10000000 ++ NOTE_RENAME = 0x20 ++ NOTE_REVOKE = 0x40 ++ NOTE_SECONDS = 0x1 ++ NOTE_SIGNAL = 0x8000000 ++ NOTE_TRACK = 0x1 ++ NOTE_TRACKERR = 0x2 ++ NOTE_TRIGGER = 0x1000000 ++ NOTE_USECONDS = 0x2 ++ NOTE_VM_ERROR = 0x10000000 ++ NOTE_VM_PRESSURE = 0x80000000 ++ NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000 ++ NOTE_VM_PRESSURE_TERMINATE = 0x40000000 ++ NOTE_WRITE = 0x2 ++ OCRNL = 0x10 ++ OFDEL = 0x20000 ++ OFILL = 0x80 ++ ONLCR = 0x2 ++ ONLRET = 0x40 ++ ONOCR = 0x20 ++ ONOEOT = 0x8 ++ OPOST = 0x1 ++ O_ACCMODE = 0x3 ++ O_ALERT = 0x20000000 ++ O_APPEND = 0x8 ++ O_ASYNC = 0x40 ++ O_CLOEXEC = 0x1000000 ++ O_CREAT = 0x200 ++ O_DIRECTORY = 0x100000 ++ O_DP_GETRAWENCRYPTED = 0x1 ++ O_DSYNC = 0x400000 ++ O_EVTONLY = 0x8000 ++ O_EXCL = 0x800 ++ O_EXLOCK = 0x20 ++ O_FSYNC = 0x80 ++ O_NDELAY = 0x4 ++ O_NOCTTY = 0x20000 ++ O_NOFOLLOW = 0x100 ++ O_NONBLOCK = 0x4 ++ O_POPUP = 0x80000000 ++ O_RDONLY = 0x0 ++ O_RDWR = 0x2 ++ O_SHLOCK = 0x10 ++ O_SYMLINK = 0x200000 ++ O_SYNC = 0x80 ++ O_TRUNC = 0x400 ++ O_WRONLY = 0x1 ++ PARENB = 0x1000 ++ PARMRK = 0x8 ++ PARODD = 0x2000 ++ PENDIN = 0x20000000 ++ PRIO_PGRP = 0x1 ++ PRIO_PROCESS = 0x0 ++ PRIO_USER = 0x2 ++ PROT_EXEC = 0x4 ++ PROT_NONE = 0x0 ++ PROT_READ = 0x1 ++ PROT_WRITE = 0x2 ++ PT_ATTACH = 0xa ++ PT_ATTACHEXC = 0xe ++ PT_CONTINUE = 0x7 ++ PT_DENY_ATTACH = 0x1f ++ PT_DETACH = 0xb ++ PT_FIRSTMACH = 0x20 ++ PT_FORCEQUOTA = 0x1e ++ PT_KILL = 0x8 ++ PT_READ_D = 0x2 ++ PT_READ_I = 0x1 ++ PT_READ_U = 0x3 ++ PT_SIGEXC = 0xc ++ PT_STEP = 0x9 ++ PT_THUPDATE = 0xd ++ PT_TRACE_ME = 0x0 ++ PT_WRITE_D = 0x5 ++ PT_WRITE_I = 0x4 ++ PT_WRITE_U = 0x6 ++ RLIMIT_AS = 0x5 ++ RLIMIT_CORE = 0x4 ++ RLIMIT_CPU = 0x0 ++ RLIMIT_CPU_USAGE_MONITOR = 0x2 ++ RLIMIT_DATA = 0x2 ++ RLIMIT_FSIZE = 0x1 ++ RLIMIT_NOFILE = 0x8 ++ RLIMIT_STACK = 0x3 ++ RLIM_INFINITY = 0x7fffffffffffffff ++ RTAX_AUTHOR = 0x6 ++ RTAX_BRD = 0x7 ++ RTAX_DST = 0x0 ++ RTAX_GATEWAY = 0x1 ++ RTAX_GENMASK = 0x3 ++ RTAX_IFA = 0x5 ++ RTAX_IFP = 0x4 ++ RTAX_MAX = 0x8 ++ RTAX_NETMASK = 0x2 ++ RTA_AUTHOR = 0x40 ++ RTA_BRD = 0x80 ++ RTA_DST = 0x1 ++ RTA_GATEWAY = 0x2 ++ RTA_GENMASK = 0x8 ++ RTA_IFA = 0x20 ++ RTA_IFP = 0x10 ++ RTA_NETMASK = 0x4 ++ RTF_BLACKHOLE = 0x1000 ++ RTF_BROADCAST = 0x400000 ++ RTF_CLONING = 0x100 ++ RTF_CONDEMNED = 0x2000000 ++ RTF_DELCLONE = 0x80 ++ RTF_DONE = 0x40 ++ RTF_DYNAMIC = 0x10 ++ RTF_GATEWAY = 0x2 ++ RTF_HOST = 0x4 ++ RTF_IFREF = 0x4000000 ++ RTF_IFSCOPE = 0x1000000 ++ RTF_LLINFO = 0x400 ++ RTF_LOCAL = 0x200000 ++ RTF_MODIFIED = 0x20 ++ RTF_MULTICAST = 0x800000 ++ RTF_NOIFREF = 0x2000 ++ RTF_PINNED = 0x100000 ++ RTF_PRCLONING = 0x10000 ++ RTF_PROTO1 = 0x8000 ++ RTF_PROTO2 = 0x4000 ++ RTF_PROTO3 = 0x40000 ++ RTF_PROXY = 0x8000000 ++ RTF_REJECT = 0x8 ++ RTF_ROUTER = 0x10000000 ++ RTF_STATIC = 0x800 ++ RTF_UP = 0x1 ++ RTF_WASCLONED = 0x20000 ++ RTF_XRESOLVE = 0x200 ++ RTM_ADD = 0x1 ++ RTM_CHANGE = 0x3 ++ RTM_DELADDR = 0xd ++ RTM_DELETE = 0x2 ++ RTM_DELMADDR = 0x10 ++ RTM_GET = 0x4 ++ RTM_GET2 = 0x14 ++ RTM_IFINFO = 0xe ++ RTM_IFINFO2 = 0x12 ++ RTM_LOCK = 0x8 ++ RTM_LOSING = 0x5 ++ RTM_MISS = 0x7 ++ RTM_NEWADDR = 0xc ++ RTM_NEWMADDR = 0xf ++ RTM_NEWMADDR2 = 0x13 ++ RTM_OLDADD = 0x9 ++ RTM_OLDDEL = 0xa ++ RTM_REDIRECT = 0x6 ++ RTM_RESOLVE = 0xb ++ RTM_RTTUNIT = 0xf4240 ++ RTM_VERSION = 0x5 ++ RTV_EXPIRE = 0x4 ++ RTV_HOPCOUNT = 0x2 ++ RTV_MTU = 0x1 ++ RTV_RPIPE = 0x8 ++ RTV_RTT = 0x40 ++ RTV_RTTVAR = 0x80 ++ RTV_SPIPE = 0x10 ++ RTV_SSTHRESH = 0x20 ++ RUSAGE_CHILDREN = -0x1 ++ RUSAGE_SELF = 0x0 ++ SCM_CREDS = 0x3 ++ SCM_RIGHTS = 0x1 ++ SCM_TIMESTAMP = 0x2 ++ SCM_TIMESTAMP_MONOTONIC = 0x4 ++ SHUT_RD = 0x0 ++ SHUT_RDWR = 0x2 ++ SHUT_WR = 0x1 ++ SIOCADDMULTI = 0x80206931 ++ SIOCAIFADDR = 0x8040691a ++ SIOCARPIPLL = 0xc0206928 ++ SIOCATMARK = 0x40047307 ++ SIOCAUTOADDR = 0xc0206926 ++ SIOCAUTONETMASK = 0x80206927 ++ SIOCDELMULTI = 0x80206932 ++ SIOCDIFADDR = 0x80206919 ++ SIOCDIFPHYADDR = 0x80206941 ++ SIOCGDRVSPEC = 0xc028697b ++ SIOCGETVLAN = 0xc020697f ++ SIOCGHIWAT = 0x40047301 ++ SIOCGIFADDR = 0xc0206921 ++ SIOCGIFALTMTU = 0xc0206948 ++ SIOCGIFASYNCMAP = 0xc020697c ++ SIOCGIFBOND = 0xc0206947 ++ SIOCGIFBRDADDR = 0xc0206923 ++ SIOCGIFCAP = 0xc020695b ++ SIOCGIFCONF = 0xc00c6924 ++ SIOCGIFDEVMTU = 0xc0206944 ++ SIOCGIFDSTADDR = 0xc0206922 ++ SIOCGIFFLAGS = 0xc0206911 ++ SIOCGIFGENERIC = 0xc020693a ++ SIOCGIFKPI = 0xc0206987 ++ SIOCGIFMAC = 0xc0206982 ++ SIOCGIFMEDIA = 0xc02c6938 ++ SIOCGIFMETRIC = 0xc0206917 ++ SIOCGIFMTU = 0xc0206933 ++ SIOCGIFNETMASK = 0xc0206925 ++ SIOCGIFPDSTADDR = 0xc0206940 ++ SIOCGIFPHYS = 0xc0206935 ++ SIOCGIFPSRCADDR = 0xc020693f ++ SIOCGIFSTATUS = 0xc331693d ++ SIOCGIFVLAN = 0xc020697f ++ SIOCGIFWAKEFLAGS = 0xc0206988 ++ SIOCGLOWAT = 0x40047303 ++ SIOCGPGRP = 0x40047309 ++ SIOCIFCREATE = 0xc0206978 ++ SIOCIFCREATE2 = 0xc020697a ++ SIOCIFDESTROY = 0x80206979 ++ SIOCIFGCLONERS = 0xc0106981 ++ SIOCRSLVMULTI = 0xc010693b ++ SIOCSDRVSPEC = 0x8028697b ++ SIOCSETVLAN = 0x8020697e ++ SIOCSHIWAT = 0x80047300 ++ SIOCSIFADDR = 0x8020690c ++ SIOCSIFALTMTU = 0x80206945 ++ SIOCSIFASYNCMAP = 0x8020697d ++ SIOCSIFBOND = 0x80206946 ++ SIOCSIFBRDADDR = 0x80206913 ++ SIOCSIFCAP = 0x8020695a ++ SIOCSIFDSTADDR = 0x8020690e ++ SIOCSIFFLAGS = 0x80206910 ++ SIOCSIFGENERIC = 0x80206939 ++ SIOCSIFKPI = 0x80206986 ++ SIOCSIFLLADDR = 0x8020693c ++ SIOCSIFMAC = 0x80206983 ++ SIOCSIFMEDIA = 0xc0206937 ++ SIOCSIFMETRIC = 0x80206918 ++ SIOCSIFMTU = 0x80206934 ++ SIOCSIFNETMASK = 0x80206916 ++ SIOCSIFPHYADDR = 0x8040693e ++ SIOCSIFPHYS = 0x80206936 ++ SIOCSIFVLAN = 0x8020697e ++ SIOCSLOWAT = 0x80047302 ++ SIOCSPGRP = 0x80047308 ++ SOCK_DGRAM = 0x2 ++ SOCK_MAXADDRLEN = 0xff ++ SOCK_RAW = 0x3 ++ SOCK_RDM = 0x4 ++ SOCK_SEQPACKET = 0x5 ++ SOCK_STREAM = 0x1 ++ SOL_SOCKET = 0xffff ++ SOMAXCONN = 0x80 ++ SO_ACCEPTCONN = 0x2 ++ SO_BROADCAST = 0x20 ++ SO_DEBUG = 0x1 ++ SO_DONTROUTE = 0x10 ++ SO_DONTTRUNC = 0x2000 ++ SO_ERROR = 0x1007 ++ SO_KEEPALIVE = 0x8 ++ SO_LABEL = 0x1010 ++ SO_LINGER = 0x80 ++ SO_LINGER_SEC = 0x1080 ++ SO_NKE = 0x1021 ++ SO_NOADDRERR = 0x1023 ++ SO_NOSIGPIPE = 0x1022 ++ SO_NOTIFYCONFLICT = 0x1026 ++ SO_NP_EXTENSIONS = 0x1083 ++ SO_NREAD = 0x1020 ++ SO_NUMRCVPKT = 0x1112 ++ SO_NWRITE = 0x1024 ++ SO_OOBINLINE = 0x100 ++ SO_PEERLABEL = 0x1011 ++ SO_RANDOMPORT = 0x1082 ++ SO_RCVBUF = 0x1002 ++ SO_RCVLOWAT = 0x1004 ++ SO_RCVTIMEO = 0x1006 ++ SO_REUSEADDR = 0x4 ++ SO_REUSEPORT = 0x200 ++ SO_REUSESHAREUID = 0x1025 ++ SO_SNDBUF = 0x1001 ++ SO_SNDLOWAT = 0x1003 ++ SO_SNDTIMEO = 0x1005 ++ SO_TIMESTAMP = 0x400 ++ SO_TIMESTAMP_MONOTONIC = 0x800 ++ SO_TYPE = 0x1008 ++ SO_UPCALLCLOSEWAIT = 0x1027 ++ SO_USELOOPBACK = 0x40 ++ SO_WANTMORE = 0x4000 ++ SO_WANTOOBFLAG = 0x8000 ++ S_IEXEC = 0x40 ++ S_IFBLK = 0x6000 ++ S_IFCHR = 0x2000 ++ S_IFDIR = 0x4000 ++ S_IFIFO = 0x1000 ++ S_IFLNK = 0xa000 ++ S_IFMT = 0xf000 ++ S_IFREG = 0x8000 ++ S_IFSOCK = 0xc000 ++ S_IFWHT = 0xe000 ++ S_IREAD = 0x100 ++ S_IRGRP = 0x20 ++ S_IROTH = 0x4 ++ S_IRUSR = 0x100 ++ S_IRWXG = 0x38 ++ S_IRWXO = 0x7 ++ S_IRWXU = 0x1c0 ++ S_ISGID = 0x400 ++ S_ISTXT = 0x200 ++ S_ISUID = 0x800 ++ S_ISVTX = 0x200 ++ S_IWGRP = 0x10 ++ S_IWOTH = 0x2 ++ S_IWRITE = 0x80 ++ S_IWUSR = 0x80 ++ S_IXGRP = 0x8 ++ S_IXOTH = 0x1 ++ S_IXUSR = 0x40 ++ TCIFLUSH = 0x1 ++ TCIOFLUSH = 0x3 ++ TCOFLUSH = 0x2 ++ TCP_CONNECTIONTIMEOUT = 0x20 ++ TCP_ENABLE_ECN = 0x104 ++ TCP_KEEPALIVE = 0x10 ++ TCP_KEEPCNT = 0x102 ++ TCP_KEEPINTVL = 0x101 ++ TCP_MAXHLEN = 0x3c ++ TCP_MAXOLEN = 0x28 ++ TCP_MAXSEG = 0x2 ++ TCP_MAXWIN = 0xffff ++ TCP_MAX_SACK = 0x4 ++ TCP_MAX_WINSHIFT = 0xe ++ TCP_MINMSS = 0xd8 ++ TCP_MSS = 0x200 ++ TCP_NODELAY = 0x1 ++ TCP_NOOPT = 0x8 ++ TCP_NOPUSH = 0x4 ++ TCP_NOTSENT_LOWAT = 0x201 ++ TCP_RXT_CONNDROPTIME = 0x80 ++ TCP_RXT_FINDROP = 0x100 ++ TCP_SENDMOREACKS = 0x103 ++ TCSAFLUSH = 0x2 ++ TIOCCBRK = 0x2000747a ++ TIOCCDTR = 0x20007478 ++ TIOCCONS = 0x80047462 ++ TIOCDCDTIMESTAMP = 0x40107458 ++ TIOCDRAIN = 0x2000745e ++ TIOCDSIMICROCODE = 0x20007455 ++ TIOCEXCL = 0x2000740d ++ TIOCEXT = 0x80047460 ++ TIOCFLUSH = 0x80047410 ++ TIOCGDRAINWAIT = 0x40047456 ++ TIOCGETA = 0x40487413 ++ TIOCGETD = 0x4004741a ++ TIOCGPGRP = 0x40047477 ++ TIOCGWINSZ = 0x40087468 ++ TIOCIXOFF = 0x20007480 ++ TIOCIXON = 0x20007481 ++ TIOCMBIC = 0x8004746b ++ TIOCMBIS = 0x8004746c ++ TIOCMGDTRWAIT = 0x4004745a ++ TIOCMGET = 0x4004746a ++ TIOCMODG = 0x40047403 ++ TIOCMODS = 0x80047404 ++ TIOCMSDTRWAIT = 0x8004745b ++ TIOCMSET = 0x8004746d ++ TIOCM_CAR = 0x40 ++ TIOCM_CD = 0x40 ++ TIOCM_CTS = 0x20 ++ TIOCM_DSR = 0x100 ++ TIOCM_DTR = 0x2 ++ TIOCM_LE = 0x1 ++ TIOCM_RI = 0x80 ++ TIOCM_RNG = 0x80 ++ TIOCM_RTS = 0x4 ++ TIOCM_SR = 0x10 ++ TIOCM_ST = 0x8 ++ TIOCNOTTY = 0x20007471 ++ TIOCNXCL = 0x2000740e ++ TIOCOUTQ = 0x40047473 ++ TIOCPKT = 0x80047470 ++ TIOCPKT_DATA = 0x0 ++ TIOCPKT_DOSTOP = 0x20 ++ TIOCPKT_FLUSHREAD = 0x1 ++ TIOCPKT_FLUSHWRITE = 0x2 ++ TIOCPKT_IOCTL = 0x40 ++ TIOCPKT_NOSTOP = 0x10 ++ TIOCPKT_START = 0x8 ++ TIOCPKT_STOP = 0x4 ++ TIOCPTYGNAME = 0x40807453 ++ TIOCPTYGRANT = 0x20007454 ++ TIOCPTYUNLK = 0x20007452 ++ TIOCREMOTE = 0x80047469 ++ TIOCSBRK = 0x2000747b ++ TIOCSCONS = 0x20007463 ++ TIOCSCTTY = 0x20007461 ++ TIOCSDRAINWAIT = 0x80047457 ++ TIOCSDTR = 0x20007479 ++ TIOCSETA = 0x80487414 ++ TIOCSETAF = 0x80487416 ++ TIOCSETAW = 0x80487415 ++ TIOCSETD = 0x8004741b ++ TIOCSIG = 0x2000745f ++ TIOCSPGRP = 0x80047476 ++ TIOCSTART = 0x2000746e ++ TIOCSTAT = 0x20007465 ++ TIOCSTI = 0x80017472 ++ TIOCSTOP = 0x2000746f ++ TIOCSWINSZ = 0x80087467 ++ TIOCTIMESTAMP = 0x40107459 ++ TIOCUCNTL = 0x80047466 ++ TOSTOP = 0x400000 ++ VDISCARD = 0xf ++ VDSUSP = 0xb ++ VEOF = 0x0 ++ VEOL = 0x1 ++ VEOL2 = 0x2 ++ VERASE = 0x3 ++ VINTR = 0x8 ++ VKILL = 0x5 ++ VLNEXT = 0xe ++ VMIN = 0x10 ++ VQUIT = 0x9 ++ VREPRINT = 0x6 ++ VSTART = 0xc ++ VSTATUS = 0x12 ++ VSTOP = 0xd ++ VSUSP = 0xa ++ VT0 = 0x0 ++ VT1 = 0x10000 ++ VTDLY = 0x10000 ++ VTIME = 0x11 ++ VWERASE = 0x4 ++ WCONTINUED = 0x10 ++ WCOREFLAG = 0x80 ++ WEXITED = 0x4 ++ WNOHANG = 0x1 ++ WNOWAIT = 0x20 ++ WORDSIZE = 0x40 ++ WSTOPPED = 0x8 ++ WUNTRACED = 0x2 ++) ++ ++// Errors ++const ( ++ E2BIG = syscall.Errno(0x7) ++ EACCES = syscall.Errno(0xd) ++ EADDRINUSE = syscall.Errno(0x30) ++ EADDRNOTAVAIL = syscall.Errno(0x31) ++ EAFNOSUPPORT = syscall.Errno(0x2f) ++ EAGAIN = syscall.Errno(0x23) ++ EALREADY = syscall.Errno(0x25) ++ EAUTH = syscall.Errno(0x50) ++ EBADARCH = syscall.Errno(0x56) ++ EBADEXEC = syscall.Errno(0x55) ++ EBADF = syscall.Errno(0x9) ++ EBADMACHO = syscall.Errno(0x58) ++ EBADMSG = syscall.Errno(0x5e) ++ EBADRPC = syscall.Errno(0x48) ++ EBUSY = syscall.Errno(0x10) ++ ECANCELED = syscall.Errno(0x59) ++ ECHILD = syscall.Errno(0xa) ++ ECONNABORTED = syscall.Errno(0x35) ++ ECONNREFUSED = syscall.Errno(0x3d) ++ ECONNRESET = syscall.Errno(0x36) ++ EDEADLK = syscall.Errno(0xb) ++ EDESTADDRREQ = syscall.Errno(0x27) ++ EDEVERR = syscall.Errno(0x53) ++ EDOM = syscall.Errno(0x21) ++ EDQUOT = syscall.Errno(0x45) ++ EEXIST = syscall.Errno(0x11) ++ EFAULT = syscall.Errno(0xe) ++ EFBIG = syscall.Errno(0x1b) ++ EFTYPE = syscall.Errno(0x4f) ++ EHOSTDOWN = syscall.Errno(0x40) ++ EHOSTUNREACH = syscall.Errno(0x41) ++ EIDRM = syscall.Errno(0x5a) ++ EILSEQ = syscall.Errno(0x5c) ++ EINPROGRESS = syscall.Errno(0x24) ++ EINTR = syscall.Errno(0x4) ++ EINVAL = syscall.Errno(0x16) ++ EIO = syscall.Errno(0x5) ++ EISCONN = syscall.Errno(0x38) ++ EISDIR = syscall.Errno(0x15) ++ ELAST = syscall.Errno(0x6a) ++ ELOOP = syscall.Errno(0x3e) ++ EMFILE = syscall.Errno(0x18) ++ EMLINK = syscall.Errno(0x1f) ++ EMSGSIZE = syscall.Errno(0x28) ++ EMULTIHOP = syscall.Errno(0x5f) ++ ENAMETOOLONG = syscall.Errno(0x3f) ++ ENEEDAUTH = syscall.Errno(0x51) ++ ENETDOWN = syscall.Errno(0x32) ++ ENETRESET = syscall.Errno(0x34) ++ ENETUNREACH = syscall.Errno(0x33) ++ ENFILE = syscall.Errno(0x17) ++ ENOATTR = syscall.Errno(0x5d) ++ ENOBUFS = syscall.Errno(0x37) ++ ENODATA = syscall.Errno(0x60) ++ ENODEV = syscall.Errno(0x13) ++ ENOENT = syscall.Errno(0x2) ++ ENOEXEC = syscall.Errno(0x8) ++ ENOLCK = syscall.Errno(0x4d) ++ ENOLINK = syscall.Errno(0x61) ++ ENOMEM = syscall.Errno(0xc) ++ ENOMSG = syscall.Errno(0x5b) ++ ENOPOLICY = syscall.Errno(0x67) ++ ENOPROTOOPT = syscall.Errno(0x2a) ++ ENOSPC = syscall.Errno(0x1c) ++ ENOSR = syscall.Errno(0x62) ++ ENOSTR = syscall.Errno(0x63) ++ ENOSYS = syscall.Errno(0x4e) ++ ENOTBLK = syscall.Errno(0xf) ++ ENOTCONN = syscall.Errno(0x39) ++ ENOTDIR = syscall.Errno(0x14) ++ ENOTEMPTY = syscall.Errno(0x42) ++ ENOTRECOVERABLE = syscall.Errno(0x68) ++ ENOTSOCK = syscall.Errno(0x26) ++ ENOTSUP = syscall.Errno(0x2d) ++ ENOTTY = syscall.Errno(0x19) ++ ENXIO = syscall.Errno(0x6) ++ EOPNOTSUPP = syscall.Errno(0x66) ++ EOVERFLOW = syscall.Errno(0x54) ++ EOWNERDEAD = syscall.Errno(0x69) ++ EPERM = syscall.Errno(0x1) ++ EPFNOSUPPORT = syscall.Errno(0x2e) ++ EPIPE = syscall.Errno(0x20) ++ EPROCLIM = syscall.Errno(0x43) ++ EPROCUNAVAIL = syscall.Errno(0x4c) ++ EPROGMISMATCH = syscall.Errno(0x4b) ++ EPROGUNAVAIL = syscall.Errno(0x4a) ++ EPROTO = syscall.Errno(0x64) ++ EPROTONOSUPPORT = syscall.Errno(0x2b) ++ EPROTOTYPE = syscall.Errno(0x29) ++ EPWROFF = syscall.Errno(0x52) ++ EQFULL = syscall.Errno(0x6a) ++ ERANGE = syscall.Errno(0x22) ++ EREMOTE = syscall.Errno(0x47) ++ EROFS = syscall.Errno(0x1e) ++ ERPCMISMATCH = syscall.Errno(0x49) ++ ESHLIBVERS = syscall.Errno(0x57) ++ ESHUTDOWN = syscall.Errno(0x3a) ++ ESOCKTNOSUPPORT = syscall.Errno(0x2c) ++ ESPIPE = syscall.Errno(0x1d) ++ ESRCH = syscall.Errno(0x3) ++ ESTALE = syscall.Errno(0x46) ++ ETIME = syscall.Errno(0x65) ++ ETIMEDOUT = syscall.Errno(0x3c) ++ ETOOMANYREFS = syscall.Errno(0x3b) ++ ETXTBSY = syscall.Errno(0x1a) ++ EUSERS = syscall.Errno(0x44) ++ EWOULDBLOCK = syscall.Errno(0x23) ++ EXDEV = syscall.Errno(0x12) ++) ++ ++// Signals ++const ( ++ SIGABRT = syscall.Signal(0x6) ++ SIGALRM = syscall.Signal(0xe) ++ SIGBUS = syscall.Signal(0xa) ++ SIGCHLD = syscall.Signal(0x14) ++ SIGCONT = syscall.Signal(0x13) ++ SIGEMT = syscall.Signal(0x7) ++ SIGFPE = syscall.Signal(0x8) ++ SIGHUP = syscall.Signal(0x1) ++ SIGILL = syscall.Signal(0x4) ++ SIGINFO = syscall.Signal(0x1d) ++ SIGINT = syscall.Signal(0x2) ++ SIGIO = syscall.Signal(0x17) ++ SIGIOT = syscall.Signal(0x6) ++ SIGKILL = syscall.Signal(0x9) ++ SIGPIPE = syscall.Signal(0xd) ++ SIGPROF = syscall.Signal(0x1b) ++ SIGQUIT = syscall.Signal(0x3) ++ SIGSEGV = syscall.Signal(0xb) ++ SIGSTOP = syscall.Signal(0x11) ++ SIGSYS = syscall.Signal(0xc) ++ SIGTERM = syscall.Signal(0xf) ++ SIGTRAP = syscall.Signal(0x5) ++ SIGTSTP = syscall.Signal(0x12) ++ SIGTTIN = syscall.Signal(0x15) ++ SIGTTOU = syscall.Signal(0x16) ++ SIGURG = syscall.Signal(0x10) ++ SIGUSR1 = syscall.Signal(0x1e) ++ SIGUSR2 = syscall.Signal(0x1f) ++ SIGVTALRM = syscall.Signal(0x1a) ++ SIGWINCH = syscall.Signal(0x1c) ++ SIGXCPU = syscall.Signal(0x18) ++ SIGXFSZ = syscall.Signal(0x19) ++) ++ ++// Error table ++var errors = [...]string{ ++ 1: "operation not permitted", ++ 2: "no such file or directory", ++ 3: "no such process", ++ 4: "interrupted system call", ++ 5: "input/output error", ++ 6: "device not configured", ++ 7: "argument list too long", ++ 8: "exec format error", ++ 9: "bad file descriptor", ++ 10: "no child processes", ++ 11: "resource deadlock avoided", ++ 12: "cannot allocate memory", ++ 13: "permission denied", ++ 14: "bad address", ++ 15: "block device required", ++ 16: "resource busy", ++ 17: "file exists", ++ 18: "cross-device link", ++ 19: "operation not supported by device", ++ 20: "not a directory", ++ 21: "is a directory", ++ 22: "invalid argument", ++ 23: "too many open files in system", ++ 24: "too many open files", ++ 25: "inappropriate ioctl for device", ++ 26: "text file busy", ++ 27: "file too large", ++ 28: "no space left on device", ++ 29: "illegal seek", ++ 30: "read-only file system", ++ 31: "too many links", ++ 32: "broken pipe", ++ 33: "numerical argument out of domain", ++ 34: "result too large", ++ 35: "resource temporarily unavailable", ++ 36: "operation now in progress", ++ 37: "operation already in progress", ++ 38: "socket operation on non-socket", ++ 39: "destination address required", ++ 40: "message too long", ++ 41: "protocol wrong type for socket", ++ 42: "protocol not available", ++ 43: "protocol not supported", ++ 44: "socket type not supported", ++ 45: "operation not supported", ++ 46: "protocol family not supported", ++ 47: "address family not supported by protocol family", ++ 48: "address already in use", ++ 49: "can't assign requested address", ++ 50: "network is down", ++ 51: "network is unreachable", ++ 52: "network dropped connection on reset", ++ 53: "software caused connection abort", ++ 54: "connection reset by peer", ++ 55: "no buffer space available", ++ 56: "socket is already connected", ++ 57: "socket is not connected", ++ 58: "can't send after socket shutdown", ++ 59: "too many references: can't splice", ++ 60: "operation timed out", ++ 61: "connection refused", ++ 62: "too many levels of symbolic links", ++ 63: "file name too long", ++ 64: "host is down", ++ 65: "no route to host", ++ 66: "directory not empty", ++ 67: "too many processes", ++ 68: "too many users", ++ 69: "disc quota exceeded", ++ 70: "stale NFS file handle", ++ 71: "too many levels of remote in path", ++ 72: "RPC struct is bad", ++ 73: "RPC version wrong", ++ 74: "RPC prog. not avail", ++ 75: "program version wrong", ++ 76: "bad procedure for program", ++ 77: "no locks available", ++ 78: "function not implemented", ++ 79: "inappropriate file type or format", ++ 80: "authentication error", ++ 81: "need authenticator", ++ 82: "device power is off", ++ 83: "device error", ++ 84: "value too large to be stored in data type", ++ 85: "bad executable (or shared library)", ++ 86: "bad CPU type in executable", ++ 87: "shared library version mismatch", ++ 88: "malformed Mach-o file", ++ 89: "operation canceled", ++ 90: "identifier removed", ++ 91: "no message of desired type", ++ 92: "illegal byte sequence", ++ 93: "attribute not found", ++ 94: "bad message", ++ 95: "EMULTIHOP (Reserved)", ++ 96: "no message available on STREAM", ++ 97: "ENOLINK (Reserved)", ++ 98: "no STREAM resources", ++ 99: "not a STREAM", ++ 100: "protocol error", ++ 101: "STREAM ioctl timeout", ++ 102: "operation not supported on socket", ++ 103: "policy not found", ++ 104: "state not recoverable", ++ 105: "previous owner died", ++ 106: "interface output queue is full", ++} ++ ++// Signal table ++var signals = [...]string{ ++ 1: "hangup", ++ 2: "interrupt", ++ 3: "quit", ++ 4: "illegal instruction", ++ 5: "trace/BPT trap", ++ 6: "abort trap", ++ 7: "EMT trap", ++ 8: "floating point exception", ++ 9: "killed", ++ 10: "bus error", ++ 11: "segmentation fault", ++ 12: "bad system call", ++ 13: "broken pipe", ++ 14: "alarm clock", ++ 15: "terminated", ++ 16: "urgent I/O condition", ++ 17: "suspended (signal)", ++ 18: "suspended", ++ 19: "continued", ++ 20: "child exited", ++ 21: "stopped (tty input)", ++ 22: "stopped (tty output)", ++ 23: "I/O possible", ++ 24: "cputime limit exceeded", ++ 25: "filesize limit exceeded", ++ 26: "virtual timer expired", ++ 27: "profiling timer expired", ++ 28: "window size changes", ++ 29: "information request", ++ 30: "user defined signal 1", ++ 31: "user defined signal 2", ++} +diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go +new file mode 100644 +index 0000000..a410e88 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm.go +@@ -0,0 +1,1293 @@ ++// mkerrors.sh ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- _const.go ++ ++// +build arm,darwin ++ ++package unix ++ ++import "syscall" ++ ++const ( ++ AF_APPLETALK = 0x10 ++ AF_CCITT = 0xa ++ AF_CHAOS = 0x5 ++ AF_CNT = 0x15 ++ AF_COIP = 0x14 ++ AF_DATAKIT = 0x9 ++ AF_DECnet = 0xc ++ AF_DLI = 0xd ++ AF_E164 = 0x1c ++ AF_ECMA = 0x8 ++ AF_HYLINK = 0xf ++ AF_IEEE80211 = 0x25 ++ AF_IMPLINK = 0x3 ++ AF_INET = 0x2 ++ AF_INET6 = 0x1e ++ AF_IPX = 0x17 ++ AF_ISDN = 0x1c ++ AF_ISO = 0x7 ++ AF_LAT = 0xe ++ AF_LINK = 0x12 ++ AF_LOCAL = 0x1 ++ AF_MAX = 0x28 ++ AF_NATM = 0x1f ++ AF_NDRV = 0x1b ++ AF_NETBIOS = 0x21 ++ AF_NS = 0x6 ++ AF_OSI = 0x7 ++ AF_PPP = 0x22 ++ AF_PUP = 0x4 ++ AF_RESERVED_36 = 0x24 ++ AF_ROUTE = 0x11 ++ AF_SIP = 0x18 ++ AF_SNA = 0xb ++ AF_SYSTEM = 0x20 ++ AF_UNIX = 0x1 ++ AF_UNSPEC = 0x0 ++ AF_UTUN = 0x26 ++ B0 = 0x0 ++ B110 = 0x6e ++ B115200 = 0x1c200 ++ B1200 = 0x4b0 ++ B134 = 0x86 ++ B14400 = 0x3840 ++ B150 = 0x96 ++ B1800 = 0x708 ++ B19200 = 0x4b00 ++ B200 = 0xc8 ++ B230400 = 0x38400 ++ B2400 = 0x960 ++ B28800 = 0x7080 ++ B300 = 0x12c ++ B38400 = 0x9600 ++ B4800 = 0x12c0 ++ B50 = 0x32 ++ B57600 = 0xe100 ++ B600 = 0x258 ++ B7200 = 0x1c20 ++ B75 = 0x4b ++ B76800 = 0x12c00 ++ B9600 = 0x2580 ++ BIOCFLUSH = 0x20004268 ++ BIOCGBLEN = 0x40044266 ++ BIOCGDLT = 0x4004426a ++ BIOCGDLTLIST = 0xc00c4279 ++ BIOCGETIF = 0x4020426b ++ BIOCGHDRCMPLT = 0x40044274 ++ BIOCGRSIG = 0x40044272 ++ BIOCGRTIMEOUT = 0x4010426e ++ BIOCGSEESENT = 0x40044276 ++ BIOCGSTATS = 0x4008426f ++ BIOCIMMEDIATE = 0x80044270 ++ BIOCPROMISC = 0x20004269 ++ BIOCSBLEN = 0xc0044266 ++ BIOCSDLT = 0x80044278 ++ BIOCSETF = 0x80104267 ++ BIOCSETIF = 0x8020426c ++ BIOCSHDRCMPLT = 0x80044275 ++ BIOCSRSIG = 0x80044273 ++ BIOCSRTIMEOUT = 0x8010426d ++ BIOCSSEESENT = 0x80044277 ++ BIOCVERSION = 0x40044271 ++ BPF_A = 0x10 ++ BPF_ABS = 0x20 ++ BPF_ADD = 0x0 ++ BPF_ALIGNMENT = 0x4 ++ BPF_ALU = 0x4 ++ BPF_AND = 0x50 ++ BPF_B = 0x10 ++ BPF_DIV = 0x30 ++ BPF_H = 0x8 ++ BPF_IMM = 0x0 ++ BPF_IND = 0x40 ++ BPF_JA = 0x0 ++ BPF_JEQ = 0x10 ++ BPF_JGE = 0x30 ++ BPF_JGT = 0x20 ++ BPF_JMP = 0x5 ++ BPF_JSET = 0x40 ++ BPF_K = 0x0 ++ BPF_LD = 0x0 ++ BPF_LDX = 0x1 ++ BPF_LEN = 0x80 ++ BPF_LSH = 0x60 ++ BPF_MAJOR_VERSION = 0x1 ++ BPF_MAXBUFSIZE = 0x80000 ++ BPF_MAXINSNS = 0x200 ++ BPF_MEM = 0x60 ++ BPF_MEMWORDS = 0x10 ++ BPF_MINBUFSIZE = 0x20 ++ BPF_MINOR_VERSION = 0x1 ++ BPF_MISC = 0x7 ++ BPF_MSH = 0xa0 ++ BPF_MUL = 0x20 ++ BPF_NEG = 0x80 ++ BPF_OR = 0x40 ++ BPF_RELEASE = 0x30bb6 ++ BPF_RET = 0x6 ++ BPF_RSH = 0x70 ++ BPF_ST = 0x2 ++ BPF_STX = 0x3 ++ BPF_SUB = 0x10 ++ BPF_TAX = 0x0 ++ BPF_TXA = 0x80 ++ BPF_W = 0x0 ++ BPF_X = 0x8 ++ BRKINT = 0x2 ++ CFLUSH = 0xf ++ CLOCAL = 0x8000 ++ CREAD = 0x800 ++ CS5 = 0x0 ++ CS6 = 0x100 ++ CS7 = 0x200 ++ CS8 = 0x300 ++ CSIZE = 0x300 ++ CSTART = 0x11 ++ CSTATUS = 0x14 ++ CSTOP = 0x13 ++ CSTOPB = 0x400 ++ CSUSP = 0x1a ++ CTL_MAXNAME = 0xc ++ CTL_NET = 0x4 ++ DLT_APPLE_IP_OVER_IEEE1394 = 0x8a ++ DLT_ARCNET = 0x7 ++ DLT_ATM_CLIP = 0x13 ++ DLT_ATM_RFC1483 = 0xb ++ DLT_AX25 = 0x3 ++ DLT_CHAOS = 0x5 ++ DLT_CHDLC = 0x68 ++ DLT_C_HDLC = 0x68 ++ DLT_EN10MB = 0x1 ++ DLT_EN3MB = 0x2 ++ DLT_FDDI = 0xa ++ DLT_IEEE802 = 0x6 ++ DLT_IEEE802_11 = 0x69 ++ DLT_IEEE802_11_RADIO = 0x7f ++ DLT_IEEE802_11_RADIO_AVS = 0xa3 ++ DLT_LINUX_SLL = 0x71 ++ DLT_LOOP = 0x6c ++ DLT_NULL = 0x0 ++ DLT_PFLOG = 0x75 ++ DLT_PFSYNC = 0x12 ++ DLT_PPP = 0x9 ++ DLT_PPP_BSDOS = 0x10 ++ DLT_PPP_SERIAL = 0x32 ++ DLT_PRONET = 0x4 ++ DLT_RAW = 0xc ++ DLT_SLIP = 0x8 ++ DLT_SLIP_BSDOS = 0xf ++ DT_BLK = 0x6 ++ DT_CHR = 0x2 ++ DT_DIR = 0x4 ++ DT_FIFO = 0x1 ++ DT_LNK = 0xa ++ DT_REG = 0x8 ++ DT_SOCK = 0xc ++ DT_UNKNOWN = 0x0 ++ DT_WHT = 0xe ++ ECHO = 0x8 ++ ECHOCTL = 0x40 ++ ECHOE = 0x2 ++ ECHOK = 0x4 ++ ECHOKE = 0x1 ++ ECHONL = 0x10 ++ ECHOPRT = 0x20 ++ EVFILT_AIO = -0x3 ++ EVFILT_FS = -0x9 ++ EVFILT_MACHPORT = -0x8 ++ EVFILT_PROC = -0x5 ++ EVFILT_READ = -0x1 ++ EVFILT_SIGNAL = -0x6 ++ EVFILT_SYSCOUNT = 0xe ++ EVFILT_THREADMARKER = 0xe ++ EVFILT_TIMER = -0x7 ++ EVFILT_USER = -0xa ++ EVFILT_VM = -0xc ++ EVFILT_VNODE = -0x4 ++ EVFILT_WRITE = -0x2 ++ EV_ADD = 0x1 ++ EV_CLEAR = 0x20 ++ EV_DELETE = 0x2 ++ EV_DISABLE = 0x8 ++ EV_DISPATCH = 0x80 ++ EV_ENABLE = 0x4 ++ EV_EOF = 0x8000 ++ EV_ERROR = 0x4000 ++ EV_FLAG0 = 0x1000 ++ EV_FLAG1 = 0x2000 ++ EV_ONESHOT = 0x10 ++ EV_OOBAND = 0x2000 ++ EV_POLL = 0x1000 ++ EV_RECEIPT = 0x40 ++ EV_SYSFLAGS = 0xf000 ++ EXTA = 0x4b00 ++ EXTB = 0x9600 ++ EXTPROC = 0x800 ++ FD_CLOEXEC = 0x1 ++ FD_SETSIZE = 0x400 ++ FLUSHO = 0x800000 ++ F_ADDFILESIGS = 0x3d ++ F_ADDSIGS = 0x3b ++ F_ALLOCATEALL = 0x4 ++ F_ALLOCATECONTIG = 0x2 ++ F_CHKCLEAN = 0x29 ++ F_DUPFD = 0x0 ++ F_DUPFD_CLOEXEC = 0x43 ++ F_FINDSIGS = 0x4e ++ F_FLUSH_DATA = 0x28 ++ F_FREEZE_FS = 0x35 ++ F_FULLFSYNC = 0x33 ++ F_GETCODEDIR = 0x48 ++ F_GETFD = 0x1 ++ F_GETFL = 0x3 ++ F_GETLK = 0x7 ++ F_GETLKPID = 0x42 ++ F_GETNOSIGPIPE = 0x4a ++ F_GETOWN = 0x5 ++ F_GETPATH = 0x32 ++ F_GETPATH_MTMINFO = 0x47 ++ F_GETPROTECTIONCLASS = 0x3f ++ F_GETPROTECTIONLEVEL = 0x4d ++ F_GLOBAL_NOCACHE = 0x37 ++ F_LOG2PHYS = 0x31 ++ F_LOG2PHYS_EXT = 0x41 ++ F_NOCACHE = 0x30 ++ F_NODIRECT = 0x3e ++ F_OK = 0x0 ++ F_PATHPKG_CHECK = 0x34 ++ F_PEOFPOSMODE = 0x3 ++ F_PREALLOCATE = 0x2a ++ F_RDADVISE = 0x2c ++ F_RDAHEAD = 0x2d ++ F_RDLCK = 0x1 ++ F_SETBACKINGSTORE = 0x46 ++ F_SETFD = 0x2 ++ F_SETFL = 0x4 ++ F_SETLK = 0x8 ++ F_SETLKW = 0x9 ++ F_SETLKWTIMEOUT = 0xa ++ F_SETNOSIGPIPE = 0x49 ++ F_SETOWN = 0x6 ++ F_SETPROTECTIONCLASS = 0x40 ++ F_SETSIZE = 0x2b ++ F_SINGLE_WRITER = 0x4c ++ F_THAW_FS = 0x36 ++ F_TRANSCODEKEY = 0x4b ++ F_UNLCK = 0x2 ++ F_VOLPOSMODE = 0x4 ++ F_WRLCK = 0x3 ++ HUPCL = 0x4000 ++ ICANON = 0x100 ++ ICMP6_FILTER = 0x12 ++ ICRNL = 0x100 ++ IEXTEN = 0x400 ++ IFF_ALLMULTI = 0x200 ++ IFF_ALTPHYS = 0x4000 ++ IFF_BROADCAST = 0x2 ++ IFF_DEBUG = 0x4 ++ IFF_LINK0 = 0x1000 ++ IFF_LINK1 = 0x2000 ++ IFF_LINK2 = 0x4000 ++ IFF_LOOPBACK = 0x8 ++ IFF_MULTICAST = 0x8000 ++ IFF_NOARP = 0x80 ++ IFF_NOTRAILERS = 0x20 ++ IFF_OACTIVE = 0x400 ++ IFF_POINTOPOINT = 0x10 ++ IFF_PROMISC = 0x100 ++ IFF_RUNNING = 0x40 ++ IFF_SIMPLEX = 0x800 ++ IFF_UP = 0x1 ++ IFNAMSIZ = 0x10 ++ IFT_1822 = 0x2 ++ IFT_AAL5 = 0x31 ++ IFT_ARCNET = 0x23 ++ IFT_ARCNETPLUS = 0x24 ++ IFT_ATM = 0x25 ++ IFT_BRIDGE = 0xd1 ++ IFT_CARP = 0xf8 ++ IFT_CELLULAR = 0xff ++ IFT_CEPT = 0x13 ++ IFT_DS3 = 0x1e ++ IFT_ENC = 0xf4 ++ IFT_EON = 0x19 ++ IFT_ETHER = 0x6 ++ IFT_FAITH = 0x38 ++ IFT_FDDI = 0xf ++ IFT_FRELAY = 0x20 ++ IFT_FRELAYDCE = 0x2c ++ IFT_GIF = 0x37 ++ IFT_HDH1822 = 0x3 ++ IFT_HIPPI = 0x2f ++ IFT_HSSI = 0x2e ++ IFT_HY = 0xe ++ IFT_IEEE1394 = 0x90 ++ IFT_IEEE8023ADLAG = 0x88 ++ IFT_ISDNBASIC = 0x14 ++ IFT_ISDNPRIMARY = 0x15 ++ IFT_ISO88022LLC = 0x29 ++ IFT_ISO88023 = 0x7 ++ IFT_ISO88024 = 0x8 ++ IFT_ISO88025 = 0x9 ++ IFT_ISO88026 = 0xa ++ IFT_L2VLAN = 0x87 ++ IFT_LAPB = 0x10 ++ IFT_LOCALTALK = 0x2a ++ IFT_LOOP = 0x18 ++ IFT_MIOX25 = 0x26 ++ IFT_MODEM = 0x30 ++ IFT_NSIP = 0x1b ++ IFT_OTHER = 0x1 ++ IFT_P10 = 0xc ++ IFT_P80 = 0xd ++ IFT_PARA = 0x22 ++ IFT_PDP = 0xff ++ IFT_PFLOG = 0xf5 ++ IFT_PFSYNC = 0xf6 ++ IFT_PPP = 0x17 ++ IFT_PROPMUX = 0x36 ++ IFT_PROPVIRTUAL = 0x35 ++ IFT_PTPSERIAL = 0x16 ++ IFT_RS232 = 0x21 ++ IFT_SDLC = 0x11 ++ IFT_SIP = 0x1f ++ IFT_SLIP = 0x1c ++ IFT_SMDSDXI = 0x2b ++ IFT_SMDSICIP = 0x34 ++ IFT_SONET = 0x27 ++ IFT_SONETPATH = 0x32 ++ IFT_SONETVT = 0x33 ++ IFT_STARLAN = 0xb ++ IFT_STF = 0x39 ++ IFT_T1 = 0x12 ++ IFT_ULTRA = 0x1d ++ IFT_V35 = 0x2d ++ IFT_X25 = 0x5 ++ IFT_X25DDN = 0x4 ++ IFT_X25PLE = 0x28 ++ IFT_XETHER = 0x1a ++ IGNBRK = 0x1 ++ IGNCR = 0x80 ++ IGNPAR = 0x4 ++ IMAXBEL = 0x2000 ++ INLCR = 0x40 ++ INPCK = 0x10 ++ IN_CLASSA_HOST = 0xffffff ++ IN_CLASSA_MAX = 0x80 ++ IN_CLASSA_NET = 0xff000000 ++ IN_CLASSA_NSHIFT = 0x18 ++ IN_CLASSB_HOST = 0xffff ++ IN_CLASSB_MAX = 0x10000 ++ IN_CLASSB_NET = 0xffff0000 ++ IN_CLASSB_NSHIFT = 0x10 ++ IN_CLASSC_HOST = 0xff ++ IN_CLASSC_NET = 0xffffff00 ++ IN_CLASSC_NSHIFT = 0x8 ++ IN_CLASSD_HOST = 0xfffffff ++ IN_CLASSD_NET = 0xf0000000 ++ IN_CLASSD_NSHIFT = 0x1c ++ IN_LINKLOCALNETNUM = 0xa9fe0000 ++ IN_LOOPBACKNET = 0x7f ++ IPPROTO_3PC = 0x22 ++ IPPROTO_ADFS = 0x44 ++ IPPROTO_AH = 0x33 ++ IPPROTO_AHIP = 0x3d ++ IPPROTO_APES = 0x63 ++ IPPROTO_ARGUS = 0xd ++ IPPROTO_AX25 = 0x5d ++ IPPROTO_BHA = 0x31 ++ IPPROTO_BLT = 0x1e ++ IPPROTO_BRSATMON = 0x4c ++ IPPROTO_CFTP = 0x3e ++ IPPROTO_CHAOS = 0x10 ++ IPPROTO_CMTP = 0x26 ++ IPPROTO_CPHB = 0x49 ++ IPPROTO_CPNX = 0x48 ++ IPPROTO_DDP = 0x25 ++ IPPROTO_DGP = 0x56 ++ IPPROTO_DIVERT = 0xfe ++ IPPROTO_DONE = 0x101 ++ IPPROTO_DSTOPTS = 0x3c ++ IPPROTO_EGP = 0x8 ++ IPPROTO_EMCON = 0xe ++ IPPROTO_ENCAP = 0x62 ++ IPPROTO_EON = 0x50 ++ IPPROTO_ESP = 0x32 ++ IPPROTO_ETHERIP = 0x61 ++ IPPROTO_FRAGMENT = 0x2c ++ IPPROTO_GGP = 0x3 ++ IPPROTO_GMTP = 0x64 ++ IPPROTO_GRE = 0x2f ++ IPPROTO_HELLO = 0x3f ++ IPPROTO_HMP = 0x14 ++ IPPROTO_HOPOPTS = 0x0 ++ IPPROTO_ICMP = 0x1 ++ IPPROTO_ICMPV6 = 0x3a ++ IPPROTO_IDP = 0x16 ++ IPPROTO_IDPR = 0x23 ++ IPPROTO_IDRP = 0x2d ++ IPPROTO_IGMP = 0x2 ++ IPPROTO_IGP = 0x55 ++ IPPROTO_IGRP = 0x58 ++ IPPROTO_IL = 0x28 ++ IPPROTO_INLSP = 0x34 ++ IPPROTO_INP = 0x20 ++ IPPROTO_IP = 0x0 ++ IPPROTO_IPCOMP = 0x6c ++ IPPROTO_IPCV = 0x47 ++ IPPROTO_IPEIP = 0x5e ++ IPPROTO_IPIP = 0x4 ++ IPPROTO_IPPC = 0x43 ++ IPPROTO_IPV4 = 0x4 ++ IPPROTO_IPV6 = 0x29 ++ IPPROTO_IRTP = 0x1c ++ IPPROTO_KRYPTOLAN = 0x41 ++ IPPROTO_LARP = 0x5b ++ IPPROTO_LEAF1 = 0x19 ++ IPPROTO_LEAF2 = 0x1a ++ IPPROTO_MAX = 0x100 ++ IPPROTO_MAXID = 0x34 ++ IPPROTO_MEAS = 0x13 ++ IPPROTO_MHRP = 0x30 ++ IPPROTO_MICP = 0x5f ++ IPPROTO_MTP = 0x5c ++ IPPROTO_MUX = 0x12 ++ IPPROTO_ND = 0x4d ++ IPPROTO_NHRP = 0x36 ++ IPPROTO_NONE = 0x3b ++ IPPROTO_NSP = 0x1f ++ IPPROTO_NVPII = 0xb ++ IPPROTO_OSPFIGP = 0x59 ++ IPPROTO_PGM = 0x71 ++ IPPROTO_PIGP = 0x9 ++ IPPROTO_PIM = 0x67 ++ IPPROTO_PRM = 0x15 ++ IPPROTO_PUP = 0xc ++ IPPROTO_PVP = 0x4b ++ IPPROTO_RAW = 0xff ++ IPPROTO_RCCMON = 0xa ++ IPPROTO_RDP = 0x1b ++ IPPROTO_ROUTING = 0x2b ++ IPPROTO_RSVP = 0x2e ++ IPPROTO_RVD = 0x42 ++ IPPROTO_SATEXPAK = 0x40 ++ IPPROTO_SATMON = 0x45 ++ IPPROTO_SCCSP = 0x60 ++ IPPROTO_SCTP = 0x84 ++ IPPROTO_SDRP = 0x2a ++ IPPROTO_SEP = 0x21 ++ IPPROTO_SRPC = 0x5a ++ IPPROTO_ST = 0x7 ++ IPPROTO_SVMTP = 0x52 ++ IPPROTO_SWIPE = 0x35 ++ IPPROTO_TCF = 0x57 ++ IPPROTO_TCP = 0x6 ++ IPPROTO_TP = 0x1d ++ IPPROTO_TPXX = 0x27 ++ IPPROTO_TRUNK1 = 0x17 ++ IPPROTO_TRUNK2 = 0x18 ++ IPPROTO_TTP = 0x54 ++ IPPROTO_UDP = 0x11 ++ IPPROTO_VINES = 0x53 ++ IPPROTO_VISA = 0x46 ++ IPPROTO_VMTP = 0x51 ++ IPPROTO_WBEXPAK = 0x4f ++ IPPROTO_WBMON = 0x4e ++ IPPROTO_WSN = 0x4a ++ IPPROTO_XNET = 0xf ++ IPPROTO_XTP = 0x24 ++ IPV6_2292DSTOPTS = 0x17 ++ IPV6_2292HOPLIMIT = 0x14 ++ IPV6_2292HOPOPTS = 0x16 ++ IPV6_2292NEXTHOP = 0x15 ++ IPV6_2292PKTINFO = 0x13 ++ IPV6_2292PKTOPTIONS = 0x19 ++ IPV6_2292RTHDR = 0x18 ++ IPV6_BINDV6ONLY = 0x1b ++ IPV6_BOUND_IF = 0x7d ++ IPV6_CHECKSUM = 0x1a ++ IPV6_DEFAULT_MULTICAST_HOPS = 0x1 ++ IPV6_DEFAULT_MULTICAST_LOOP = 0x1 ++ IPV6_DEFHLIM = 0x40 ++ IPV6_FAITH = 0x1d ++ IPV6_FLOWINFO_MASK = 0xffffff0f ++ IPV6_FLOWLABEL_MASK = 0xffff0f00 ++ IPV6_FRAGTTL = 0x78 ++ IPV6_FW_ADD = 0x1e ++ IPV6_FW_DEL = 0x1f ++ IPV6_FW_FLUSH = 0x20 ++ IPV6_FW_GET = 0x22 ++ IPV6_FW_ZERO = 0x21 ++ IPV6_HLIMDEC = 0x1 ++ IPV6_IPSEC_POLICY = 0x1c ++ IPV6_JOIN_GROUP = 0xc ++ IPV6_LEAVE_GROUP = 0xd ++ IPV6_MAXHLIM = 0xff ++ IPV6_MAXOPTHDR = 0x800 ++ IPV6_MAXPACKET = 0xffff ++ IPV6_MAX_GROUP_SRC_FILTER = 0x200 ++ IPV6_MAX_MEMBERSHIPS = 0xfff ++ IPV6_MAX_SOCK_SRC_FILTER = 0x80 ++ IPV6_MIN_MEMBERSHIPS = 0x1f ++ IPV6_MMTU = 0x500 ++ IPV6_MULTICAST_HOPS = 0xa ++ IPV6_MULTICAST_IF = 0x9 ++ IPV6_MULTICAST_LOOP = 0xb ++ IPV6_PORTRANGE = 0xe ++ IPV6_PORTRANGE_DEFAULT = 0x0 ++ IPV6_PORTRANGE_HIGH = 0x1 ++ IPV6_PORTRANGE_LOW = 0x2 ++ IPV6_RECVTCLASS = 0x23 ++ IPV6_RTHDR_LOOSE = 0x0 ++ IPV6_RTHDR_STRICT = 0x1 ++ IPV6_RTHDR_TYPE_0 = 0x0 ++ IPV6_SOCKOPT_RESERVED1 = 0x3 ++ IPV6_TCLASS = 0x24 ++ IPV6_UNICAST_HOPS = 0x4 ++ IPV6_V6ONLY = 0x1b ++ IPV6_VERSION = 0x60 ++ IPV6_VERSION_MASK = 0xf0 ++ IP_ADD_MEMBERSHIP = 0xc ++ IP_ADD_SOURCE_MEMBERSHIP = 0x46 ++ IP_BLOCK_SOURCE = 0x48 ++ IP_BOUND_IF = 0x19 ++ IP_DEFAULT_MULTICAST_LOOP = 0x1 ++ IP_DEFAULT_MULTICAST_TTL = 0x1 ++ IP_DF = 0x4000 ++ IP_DROP_MEMBERSHIP = 0xd ++ IP_DROP_SOURCE_MEMBERSHIP = 0x47 ++ IP_DUMMYNET_CONFIGURE = 0x3c ++ IP_DUMMYNET_DEL = 0x3d ++ IP_DUMMYNET_FLUSH = 0x3e ++ IP_DUMMYNET_GET = 0x40 ++ IP_FAITH = 0x16 ++ IP_FW_ADD = 0x28 ++ IP_FW_DEL = 0x29 ++ IP_FW_FLUSH = 0x2a ++ IP_FW_GET = 0x2c ++ IP_FW_RESETLOG = 0x2d ++ IP_FW_ZERO = 0x2b ++ IP_HDRINCL = 0x2 ++ IP_IPSEC_POLICY = 0x15 ++ IP_MAXPACKET = 0xffff ++ IP_MAX_GROUP_SRC_FILTER = 0x200 ++ IP_MAX_MEMBERSHIPS = 0xfff ++ IP_MAX_SOCK_MUTE_FILTER = 0x80 ++ IP_MAX_SOCK_SRC_FILTER = 0x80 ++ IP_MF = 0x2000 ++ IP_MIN_MEMBERSHIPS = 0x1f ++ IP_MSFILTER = 0x4a ++ IP_MSS = 0x240 ++ IP_MULTICAST_IF = 0x9 ++ IP_MULTICAST_IFINDEX = 0x42 ++ IP_MULTICAST_LOOP = 0xb ++ IP_MULTICAST_TTL = 0xa ++ IP_MULTICAST_VIF = 0xe ++ IP_NAT__XXX = 0x37 ++ IP_OFFMASK = 0x1fff ++ IP_OLD_FW_ADD = 0x32 ++ IP_OLD_FW_DEL = 0x33 ++ IP_OLD_FW_FLUSH = 0x34 ++ IP_OLD_FW_GET = 0x36 ++ IP_OLD_FW_RESETLOG = 0x38 ++ IP_OLD_FW_ZERO = 0x35 ++ IP_OPTIONS = 0x1 ++ IP_PKTINFO = 0x1a ++ IP_PORTRANGE = 0x13 ++ IP_PORTRANGE_DEFAULT = 0x0 ++ IP_PORTRANGE_HIGH = 0x1 ++ IP_PORTRANGE_LOW = 0x2 ++ IP_RECVDSTADDR = 0x7 ++ IP_RECVIF = 0x14 ++ IP_RECVOPTS = 0x5 ++ IP_RECVPKTINFO = 0x1a ++ IP_RECVRETOPTS = 0x6 ++ IP_RECVTTL = 0x18 ++ IP_RETOPTS = 0x8 ++ IP_RF = 0x8000 ++ IP_RSVP_OFF = 0x10 ++ IP_RSVP_ON = 0xf ++ IP_RSVP_VIF_OFF = 0x12 ++ IP_RSVP_VIF_ON = 0x11 ++ IP_STRIPHDR = 0x17 ++ IP_TOS = 0x3 ++ IP_TRAFFIC_MGT_BACKGROUND = 0x41 ++ IP_TTL = 0x4 ++ IP_UNBLOCK_SOURCE = 0x49 ++ ISIG = 0x80 ++ ISTRIP = 0x20 ++ IUTF8 = 0x4000 ++ IXANY = 0x800 ++ IXOFF = 0x400 ++ IXON = 0x200 ++ LOCK_EX = 0x2 ++ LOCK_NB = 0x4 ++ LOCK_SH = 0x1 ++ LOCK_UN = 0x8 ++ MADV_CAN_REUSE = 0x9 ++ MADV_DONTNEED = 0x4 ++ MADV_FREE = 0x5 ++ MADV_FREE_REUSABLE = 0x7 ++ MADV_FREE_REUSE = 0x8 ++ MADV_NORMAL = 0x0 ++ MADV_RANDOM = 0x1 ++ MADV_SEQUENTIAL = 0x2 ++ MADV_WILLNEED = 0x3 ++ MADV_ZERO_WIRED_PAGES = 0x6 ++ MAP_ANON = 0x1000 ++ MAP_COPY = 0x2 ++ MAP_FILE = 0x0 ++ MAP_FIXED = 0x10 ++ MAP_HASSEMAPHORE = 0x200 ++ MAP_JIT = 0x800 ++ MAP_NOCACHE = 0x400 ++ MAP_NOEXTEND = 0x100 ++ MAP_NORESERVE = 0x40 ++ MAP_PRIVATE = 0x2 ++ MAP_RENAME = 0x20 ++ MAP_RESERVED0080 = 0x80 ++ MAP_SHARED = 0x1 ++ MCL_CURRENT = 0x1 ++ MCL_FUTURE = 0x2 ++ MSG_CTRUNC = 0x20 ++ MSG_DONTROUTE = 0x4 ++ MSG_DONTWAIT = 0x80 ++ MSG_EOF = 0x100 ++ MSG_EOR = 0x8 ++ MSG_FLUSH = 0x400 ++ MSG_HAVEMORE = 0x2000 ++ MSG_HOLD = 0x800 ++ MSG_NEEDSA = 0x10000 ++ MSG_OOB = 0x1 ++ MSG_PEEK = 0x2 ++ MSG_RCVMORE = 0x4000 ++ MSG_SEND = 0x1000 ++ MSG_TRUNC = 0x10 ++ MSG_WAITALL = 0x40 ++ MSG_WAITSTREAM = 0x200 ++ MS_ASYNC = 0x1 ++ MS_DEACTIVATE = 0x8 ++ MS_INVALIDATE = 0x2 ++ MS_KILLPAGES = 0x4 ++ MS_SYNC = 0x10 ++ NAME_MAX = 0xff ++ NET_RT_DUMP = 0x1 ++ NET_RT_DUMP2 = 0x7 ++ NET_RT_FLAGS = 0x2 ++ NET_RT_IFLIST = 0x3 ++ NET_RT_IFLIST2 = 0x6 ++ NET_RT_MAXID = 0xa ++ NET_RT_STAT = 0x4 ++ NET_RT_TRASH = 0x5 ++ NOFLSH = 0x80000000 ++ NOTE_ABSOLUTE = 0x8 ++ NOTE_ATTRIB = 0x8 ++ NOTE_BACKGROUND = 0x40 ++ NOTE_CHILD = 0x4 ++ NOTE_CRITICAL = 0x20 ++ NOTE_DELETE = 0x1 ++ NOTE_EXEC = 0x20000000 ++ NOTE_EXIT = 0x80000000 ++ NOTE_EXITSTATUS = 0x4000000 ++ NOTE_EXIT_CSERROR = 0x40000 ++ NOTE_EXIT_DECRYPTFAIL = 0x10000 ++ NOTE_EXIT_DETAIL = 0x2000000 ++ NOTE_EXIT_DETAIL_MASK = 0x70000 ++ NOTE_EXIT_MEMORY = 0x20000 ++ NOTE_EXIT_REPARENTED = 0x80000 ++ NOTE_EXTEND = 0x4 ++ NOTE_FFAND = 0x40000000 ++ NOTE_FFCOPY = 0xc0000000 ++ NOTE_FFCTRLMASK = 0xc0000000 ++ NOTE_FFLAGSMASK = 0xffffff ++ NOTE_FFNOP = 0x0 ++ NOTE_FFOR = 0x80000000 ++ NOTE_FORK = 0x40000000 ++ NOTE_LEEWAY = 0x10 ++ NOTE_LINK = 0x10 ++ NOTE_LOWAT = 0x1 ++ NOTE_NONE = 0x80 ++ NOTE_NSECONDS = 0x4 ++ NOTE_PCTRLMASK = -0x100000 ++ NOTE_PDATAMASK = 0xfffff ++ NOTE_REAP = 0x10000000 ++ NOTE_RENAME = 0x20 ++ NOTE_REVOKE = 0x40 ++ NOTE_SECONDS = 0x1 ++ NOTE_SIGNAL = 0x8000000 ++ NOTE_TRACK = 0x1 ++ NOTE_TRACKERR = 0x2 ++ NOTE_TRIGGER = 0x1000000 ++ NOTE_USECONDS = 0x2 ++ NOTE_VM_ERROR = 0x10000000 ++ NOTE_VM_PRESSURE = 0x80000000 ++ NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000 ++ NOTE_VM_PRESSURE_TERMINATE = 0x40000000 ++ NOTE_WRITE = 0x2 ++ OCRNL = 0x10 ++ OFDEL = 0x20000 ++ OFILL = 0x80 ++ ONLCR = 0x2 ++ ONLRET = 0x40 ++ ONOCR = 0x20 ++ ONOEOT = 0x8 ++ OPOST = 0x1 ++ O_ACCMODE = 0x3 ++ O_ALERT = 0x20000000 ++ O_APPEND = 0x8 ++ O_ASYNC = 0x40 ++ O_CLOEXEC = 0x1000000 ++ O_CREAT = 0x200 ++ O_DIRECTORY = 0x100000 ++ O_DP_GETRAWENCRYPTED = 0x1 ++ O_DSYNC = 0x400000 ++ O_EVTONLY = 0x8000 ++ O_EXCL = 0x800 ++ O_EXLOCK = 0x20 ++ O_FSYNC = 0x80 ++ O_NDELAY = 0x4 ++ O_NOCTTY = 0x20000 ++ O_NOFOLLOW = 0x100 ++ O_NONBLOCK = 0x4 ++ O_POPUP = 0x80000000 ++ O_RDONLY = 0x0 ++ O_RDWR = 0x2 ++ O_SHLOCK = 0x10 ++ O_SYMLINK = 0x200000 ++ O_SYNC = 0x80 ++ O_TRUNC = 0x400 ++ O_WRONLY = 0x1 ++ PARENB = 0x1000 ++ PARMRK = 0x8 ++ PARODD = 0x2000 ++ PENDIN = 0x20000000 ++ PRIO_PGRP = 0x1 ++ PRIO_PROCESS = 0x0 ++ PRIO_USER = 0x2 ++ PROT_EXEC = 0x4 ++ PROT_NONE = 0x0 ++ PROT_READ = 0x1 ++ PROT_WRITE = 0x2 ++ PT_ATTACH = 0xa ++ PT_ATTACHEXC = 0xe ++ PT_CONTINUE = 0x7 ++ PT_DENY_ATTACH = 0x1f ++ PT_DETACH = 0xb ++ PT_FIRSTMACH = 0x20 ++ PT_FORCEQUOTA = 0x1e ++ PT_KILL = 0x8 ++ PT_READ_D = 0x2 ++ PT_READ_I = 0x1 ++ PT_READ_U = 0x3 ++ PT_SIGEXC = 0xc ++ PT_STEP = 0x9 ++ PT_THUPDATE = 0xd ++ PT_TRACE_ME = 0x0 ++ PT_WRITE_D = 0x5 ++ PT_WRITE_I = 0x4 ++ PT_WRITE_U = 0x6 ++ RLIMIT_AS = 0x5 ++ RLIMIT_CORE = 0x4 ++ RLIMIT_CPU = 0x0 ++ RLIMIT_CPU_USAGE_MONITOR = 0x2 ++ RLIMIT_DATA = 0x2 ++ RLIMIT_FSIZE = 0x1 ++ RLIMIT_NOFILE = 0x8 ++ RLIMIT_STACK = 0x3 ++ RLIM_INFINITY = 0x7fffffffffffffff ++ RTAX_AUTHOR = 0x6 ++ RTAX_BRD = 0x7 ++ RTAX_DST = 0x0 ++ RTAX_GATEWAY = 0x1 ++ RTAX_GENMASK = 0x3 ++ RTAX_IFA = 0x5 ++ RTAX_IFP = 0x4 ++ RTAX_MAX = 0x8 ++ RTAX_NETMASK = 0x2 ++ RTA_AUTHOR = 0x40 ++ RTA_BRD = 0x80 ++ RTA_DST = 0x1 ++ RTA_GATEWAY = 0x2 ++ RTA_GENMASK = 0x8 ++ RTA_IFA = 0x20 ++ RTA_IFP = 0x10 ++ RTA_NETMASK = 0x4 ++ RTF_BLACKHOLE = 0x1000 ++ RTF_BROADCAST = 0x400000 ++ RTF_CLONING = 0x100 ++ RTF_CONDEMNED = 0x2000000 ++ RTF_DELCLONE = 0x80 ++ RTF_DONE = 0x40 ++ RTF_DYNAMIC = 0x10 ++ RTF_GATEWAY = 0x2 ++ RTF_HOST = 0x4 ++ RTF_IFREF = 0x4000000 ++ RTF_IFSCOPE = 0x1000000 ++ RTF_LLINFO = 0x400 ++ RTF_LOCAL = 0x200000 ++ RTF_MODIFIED = 0x20 ++ RTF_MULTICAST = 0x800000 ++ RTF_PINNED = 0x100000 ++ RTF_PRCLONING = 0x10000 ++ RTF_PROTO1 = 0x8000 ++ RTF_PROTO2 = 0x4000 ++ RTF_PROTO3 = 0x40000 ++ RTF_PROXY = 0x8000000 ++ RTF_REJECT = 0x8 ++ RTF_ROUTER = 0x10000000 ++ RTF_STATIC = 0x800 ++ RTF_UP = 0x1 ++ RTF_WASCLONED = 0x20000 ++ RTF_XRESOLVE = 0x200 ++ RTM_ADD = 0x1 ++ RTM_CHANGE = 0x3 ++ RTM_DELADDR = 0xd ++ RTM_DELETE = 0x2 ++ RTM_DELMADDR = 0x10 ++ RTM_GET = 0x4 ++ RTM_GET2 = 0x14 ++ RTM_IFINFO = 0xe ++ RTM_IFINFO2 = 0x12 ++ RTM_LOCK = 0x8 ++ RTM_LOSING = 0x5 ++ RTM_MISS = 0x7 ++ RTM_NEWADDR = 0xc ++ RTM_NEWMADDR = 0xf ++ RTM_NEWMADDR2 = 0x13 ++ RTM_OLDADD = 0x9 ++ RTM_OLDDEL = 0xa ++ RTM_REDIRECT = 0x6 ++ RTM_RESOLVE = 0xb ++ RTM_RTTUNIT = 0xf4240 ++ RTM_VERSION = 0x5 ++ RTV_EXPIRE = 0x4 ++ RTV_HOPCOUNT = 0x2 ++ RTV_MTU = 0x1 ++ RTV_RPIPE = 0x8 ++ RTV_RTT = 0x40 ++ RTV_RTTVAR = 0x80 ++ RTV_SPIPE = 0x10 ++ RTV_SSTHRESH = 0x20 ++ RUSAGE_CHILDREN = -0x1 ++ RUSAGE_SELF = 0x0 ++ SCM_CREDS = 0x3 ++ SCM_RIGHTS = 0x1 ++ SCM_TIMESTAMP = 0x2 ++ SCM_TIMESTAMP_MONOTONIC = 0x4 ++ SHUT_RD = 0x0 ++ SHUT_RDWR = 0x2 ++ SHUT_WR = 0x1 ++ SIOCADDMULTI = 0x80206931 ++ SIOCAIFADDR = 0x8040691a ++ SIOCARPIPLL = 0xc0206928 ++ SIOCATMARK = 0x40047307 ++ SIOCAUTOADDR = 0xc0206926 ++ SIOCAUTONETMASK = 0x80206927 ++ SIOCDELMULTI = 0x80206932 ++ SIOCDIFADDR = 0x80206919 ++ SIOCDIFPHYADDR = 0x80206941 ++ SIOCGDRVSPEC = 0xc028697b ++ SIOCGETVLAN = 0xc020697f ++ SIOCGHIWAT = 0x40047301 ++ SIOCGIFADDR = 0xc0206921 ++ SIOCGIFALTMTU = 0xc0206948 ++ SIOCGIFASYNCMAP = 0xc020697c ++ SIOCGIFBOND = 0xc0206947 ++ SIOCGIFBRDADDR = 0xc0206923 ++ SIOCGIFCAP = 0xc020695b ++ SIOCGIFCONF = 0xc00c6924 ++ SIOCGIFDEVMTU = 0xc0206944 ++ SIOCGIFDSTADDR = 0xc0206922 ++ SIOCGIFFLAGS = 0xc0206911 ++ SIOCGIFGENERIC = 0xc020693a ++ SIOCGIFKPI = 0xc0206987 ++ SIOCGIFMAC = 0xc0206982 ++ SIOCGIFMEDIA = 0xc02c6938 ++ SIOCGIFMETRIC = 0xc0206917 ++ SIOCGIFMTU = 0xc0206933 ++ SIOCGIFNETMASK = 0xc0206925 ++ SIOCGIFPDSTADDR = 0xc0206940 ++ SIOCGIFPHYS = 0xc0206935 ++ SIOCGIFPSRCADDR = 0xc020693f ++ SIOCGIFSTATUS = 0xc331693d ++ SIOCGIFVLAN = 0xc020697f ++ SIOCGIFWAKEFLAGS = 0xc0206988 ++ SIOCGLOWAT = 0x40047303 ++ SIOCGPGRP = 0x40047309 ++ SIOCIFCREATE = 0xc0206978 ++ SIOCIFCREATE2 = 0xc020697a ++ SIOCIFDESTROY = 0x80206979 ++ SIOCIFGCLONERS = 0xc0106981 ++ SIOCRSLVMULTI = 0xc010693b ++ SIOCSDRVSPEC = 0x8028697b ++ SIOCSETVLAN = 0x8020697e ++ SIOCSHIWAT = 0x80047300 ++ SIOCSIFADDR = 0x8020690c ++ SIOCSIFALTMTU = 0x80206945 ++ SIOCSIFASYNCMAP = 0x8020697d ++ SIOCSIFBOND = 0x80206946 ++ SIOCSIFBRDADDR = 0x80206913 ++ SIOCSIFCAP = 0x8020695a ++ SIOCSIFDSTADDR = 0x8020690e ++ SIOCSIFFLAGS = 0x80206910 ++ SIOCSIFGENERIC = 0x80206939 ++ SIOCSIFKPI = 0x80206986 ++ SIOCSIFLLADDR = 0x8020693c ++ SIOCSIFMAC = 0x80206983 ++ SIOCSIFMEDIA = 0xc0206937 ++ SIOCSIFMETRIC = 0x80206918 ++ SIOCSIFMTU = 0x80206934 ++ SIOCSIFNETMASK = 0x80206916 ++ SIOCSIFPHYADDR = 0x8040693e ++ SIOCSIFPHYS = 0x80206936 ++ SIOCSIFVLAN = 0x8020697e ++ SIOCSLOWAT = 0x80047302 ++ SIOCSPGRP = 0x80047308 ++ SOCK_DGRAM = 0x2 ++ SOCK_MAXADDRLEN = 0xff ++ SOCK_RAW = 0x3 ++ SOCK_RDM = 0x4 ++ SOCK_SEQPACKET = 0x5 ++ SOCK_STREAM = 0x1 ++ SOL_SOCKET = 0xffff ++ SOMAXCONN = 0x80 ++ SO_ACCEPTCONN = 0x2 ++ SO_BROADCAST = 0x20 ++ SO_DEBUG = 0x1 ++ SO_DONTROUTE = 0x10 ++ SO_DONTTRUNC = 0x2000 ++ SO_ERROR = 0x1007 ++ SO_KEEPALIVE = 0x8 ++ SO_LABEL = 0x1010 ++ SO_LINGER = 0x80 ++ SO_LINGER_SEC = 0x1080 ++ SO_NKE = 0x1021 ++ SO_NOADDRERR = 0x1023 ++ SO_NOSIGPIPE = 0x1022 ++ SO_NOTIFYCONFLICT = 0x1026 ++ SO_NP_EXTENSIONS = 0x1083 ++ SO_NREAD = 0x1020 ++ SO_NUMRCVPKT = 0x1112 ++ SO_NWRITE = 0x1024 ++ SO_OOBINLINE = 0x100 ++ SO_PEERLABEL = 0x1011 ++ SO_RANDOMPORT = 0x1082 ++ SO_RCVBUF = 0x1002 ++ SO_RCVLOWAT = 0x1004 ++ SO_RCVTIMEO = 0x1006 ++ SO_REUSEADDR = 0x4 ++ SO_REUSEPORT = 0x200 ++ SO_REUSESHAREUID = 0x1025 ++ SO_SNDBUF = 0x1001 ++ SO_SNDLOWAT = 0x1003 ++ SO_SNDTIMEO = 0x1005 ++ SO_TIMESTAMP = 0x400 ++ SO_TIMESTAMP_MONOTONIC = 0x800 ++ SO_TYPE = 0x1008 ++ SO_UPCALLCLOSEWAIT = 0x1027 ++ SO_USELOOPBACK = 0x40 ++ SO_WANTMORE = 0x4000 ++ SO_WANTOOBFLAG = 0x8000 ++ S_IEXEC = 0x40 ++ S_IFBLK = 0x6000 ++ S_IFCHR = 0x2000 ++ S_IFDIR = 0x4000 ++ S_IFIFO = 0x1000 ++ S_IFLNK = 0xa000 ++ S_IFMT = 0xf000 ++ S_IFREG = 0x8000 ++ S_IFSOCK = 0xc000 ++ S_IFWHT = 0xe000 ++ S_IREAD = 0x100 ++ S_IRGRP = 0x20 ++ S_IROTH = 0x4 ++ S_IRUSR = 0x100 ++ S_IRWXG = 0x38 ++ S_IRWXO = 0x7 ++ S_IRWXU = 0x1c0 ++ S_ISGID = 0x400 ++ S_ISTXT = 0x200 ++ S_ISUID = 0x800 ++ S_ISVTX = 0x200 ++ S_IWGRP = 0x10 ++ S_IWOTH = 0x2 ++ S_IWRITE = 0x80 ++ S_IWUSR = 0x80 ++ S_IXGRP = 0x8 ++ S_IXOTH = 0x1 ++ S_IXUSR = 0x40 ++ TCIFLUSH = 0x1 ++ TCIOFLUSH = 0x3 ++ TCOFLUSH = 0x2 ++ TCP_CONNECTIONTIMEOUT = 0x20 ++ TCP_ENABLE_ECN = 0x104 ++ TCP_KEEPALIVE = 0x10 ++ TCP_KEEPCNT = 0x102 ++ TCP_KEEPINTVL = 0x101 ++ TCP_MAXHLEN = 0x3c ++ TCP_MAXOLEN = 0x28 ++ TCP_MAXSEG = 0x2 ++ TCP_MAXWIN = 0xffff ++ TCP_MAX_SACK = 0x4 ++ TCP_MAX_WINSHIFT = 0xe ++ TCP_MINMSS = 0xd8 ++ TCP_MSS = 0x200 ++ TCP_NODELAY = 0x1 ++ TCP_NOOPT = 0x8 ++ TCP_NOPUSH = 0x4 ++ TCP_NOTSENT_LOWAT = 0x201 ++ TCP_RXT_CONNDROPTIME = 0x80 ++ TCP_RXT_FINDROP = 0x100 ++ TCP_SENDMOREACKS = 0x103 ++ TCSAFLUSH = 0x2 ++ TIOCCBRK = 0x2000747a ++ TIOCCDTR = 0x20007478 ++ TIOCCONS = 0x80047462 ++ TIOCDCDTIMESTAMP = 0x40107458 ++ TIOCDRAIN = 0x2000745e ++ TIOCDSIMICROCODE = 0x20007455 ++ TIOCEXCL = 0x2000740d ++ TIOCEXT = 0x80047460 ++ TIOCFLUSH = 0x80047410 ++ TIOCGDRAINWAIT = 0x40047456 ++ TIOCGETA = 0x40487413 ++ TIOCGETD = 0x4004741a ++ TIOCGPGRP = 0x40047477 ++ TIOCGWINSZ = 0x40087468 ++ TIOCIXOFF = 0x20007480 ++ TIOCIXON = 0x20007481 ++ TIOCMBIC = 0x8004746b ++ TIOCMBIS = 0x8004746c ++ TIOCMGDTRWAIT = 0x4004745a ++ TIOCMGET = 0x4004746a ++ TIOCMODG = 0x40047403 ++ TIOCMODS = 0x80047404 ++ TIOCMSDTRWAIT = 0x8004745b ++ TIOCMSET = 0x8004746d ++ TIOCM_CAR = 0x40 ++ TIOCM_CD = 0x40 ++ TIOCM_CTS = 0x20 ++ TIOCM_DSR = 0x100 ++ TIOCM_DTR = 0x2 ++ TIOCM_LE = 0x1 ++ TIOCM_RI = 0x80 ++ TIOCM_RNG = 0x80 ++ TIOCM_RTS = 0x4 ++ TIOCM_SR = 0x10 ++ TIOCM_ST = 0x8 ++ TIOCNOTTY = 0x20007471 ++ TIOCNXCL = 0x2000740e ++ TIOCOUTQ = 0x40047473 ++ TIOCPKT = 0x80047470 ++ TIOCPKT_DATA = 0x0 ++ TIOCPKT_DOSTOP = 0x20 ++ TIOCPKT_FLUSHREAD = 0x1 ++ TIOCPKT_FLUSHWRITE = 0x2 ++ TIOCPKT_IOCTL = 0x40 ++ TIOCPKT_NOSTOP = 0x10 ++ TIOCPKT_START = 0x8 ++ TIOCPKT_STOP = 0x4 ++ TIOCPTYGNAME = 0x40807453 ++ TIOCPTYGRANT = 0x20007454 ++ TIOCPTYUNLK = 0x20007452 ++ TIOCREMOTE = 0x80047469 ++ TIOCSBRK = 0x2000747b ++ TIOCSCONS = 0x20007463 ++ TIOCSCTTY = 0x20007461 ++ TIOCSDRAINWAIT = 0x80047457 ++ TIOCSDTR = 0x20007479 ++ TIOCSETA = 0x80487414 ++ TIOCSETAF = 0x80487416 ++ TIOCSETAW = 0x80487415 ++ TIOCSETD = 0x8004741b ++ TIOCSIG = 0x2000745f ++ TIOCSPGRP = 0x80047476 ++ TIOCSTART = 0x2000746e ++ TIOCSTAT = 0x20007465 ++ TIOCSTI = 0x80017472 ++ TIOCSTOP = 0x2000746f ++ TIOCSWINSZ = 0x80087467 ++ TIOCTIMESTAMP = 0x40107459 ++ TIOCUCNTL = 0x80047466 ++ TOSTOP = 0x400000 ++ VDISCARD = 0xf ++ VDSUSP = 0xb ++ VEOF = 0x0 ++ VEOL = 0x1 ++ VEOL2 = 0x2 ++ VERASE = 0x3 ++ VINTR = 0x8 ++ VKILL = 0x5 ++ VLNEXT = 0xe ++ VMIN = 0x10 ++ VQUIT = 0x9 ++ VREPRINT = 0x6 ++ VSTART = 0xc ++ VSTATUS = 0x12 ++ VSTOP = 0xd ++ VSUSP = 0xa ++ VT0 = 0x0 ++ VT1 = 0x10000 ++ VTDLY = 0x10000 ++ VTIME = 0x11 ++ VWERASE = 0x4 ++ WCONTINUED = 0x10 ++ WCOREFLAG = 0x80 ++ WEXITED = 0x4 ++ WNOHANG = 0x1 ++ WNOWAIT = 0x20 ++ WORDSIZE = 0x40 ++ WSTOPPED = 0x8 ++ WUNTRACED = 0x2 ++) ++ ++// Errors ++const ( ++ E2BIG = syscall.Errno(0x7) ++ EACCES = syscall.Errno(0xd) ++ EADDRINUSE = syscall.Errno(0x30) ++ EADDRNOTAVAIL = syscall.Errno(0x31) ++ EAFNOSUPPORT = syscall.Errno(0x2f) ++ EAGAIN = syscall.Errno(0x23) ++ EALREADY = syscall.Errno(0x25) ++ EAUTH = syscall.Errno(0x50) ++ EBADARCH = syscall.Errno(0x56) ++ EBADEXEC = syscall.Errno(0x55) ++ EBADF = syscall.Errno(0x9) ++ EBADMACHO = syscall.Errno(0x58) ++ EBADMSG = syscall.Errno(0x5e) ++ EBADRPC = syscall.Errno(0x48) ++ EBUSY = syscall.Errno(0x10) ++ ECANCELED = syscall.Errno(0x59) ++ ECHILD = syscall.Errno(0xa) ++ ECONNABORTED = syscall.Errno(0x35) ++ ECONNREFUSED = syscall.Errno(0x3d) ++ ECONNRESET = syscall.Errno(0x36) ++ EDEADLK = syscall.Errno(0xb) ++ EDESTADDRREQ = syscall.Errno(0x27) ++ EDEVERR = syscall.Errno(0x53) ++ EDOM = syscall.Errno(0x21) ++ EDQUOT = syscall.Errno(0x45) ++ EEXIST = syscall.Errno(0x11) ++ EFAULT = syscall.Errno(0xe) ++ EFBIG = syscall.Errno(0x1b) ++ EFTYPE = syscall.Errno(0x4f) ++ EHOSTDOWN = syscall.Errno(0x40) ++ EHOSTUNREACH = syscall.Errno(0x41) ++ EIDRM = syscall.Errno(0x5a) ++ EILSEQ = syscall.Errno(0x5c) ++ EINPROGRESS = syscall.Errno(0x24) ++ EINTR = syscall.Errno(0x4) ++ EINVAL = syscall.Errno(0x16) ++ EIO = syscall.Errno(0x5) ++ EISCONN = syscall.Errno(0x38) ++ EISDIR = syscall.Errno(0x15) ++ ELAST = syscall.Errno(0x6a) ++ ELOOP = syscall.Errno(0x3e) ++ EMFILE = syscall.Errno(0x18) ++ EMLINK = syscall.Errno(0x1f) ++ EMSGSIZE = syscall.Errno(0x28) ++ EMULTIHOP = syscall.Errno(0x5f) ++ ENAMETOOLONG = syscall.Errno(0x3f) ++ ENEEDAUTH = syscall.Errno(0x51) ++ ENETDOWN = syscall.Errno(0x32) ++ ENETRESET = syscall.Errno(0x34) ++ ENETUNREACH = syscall.Errno(0x33) ++ ENFILE = syscall.Errno(0x17) ++ ENOATTR = syscall.Errno(0x5d) ++ ENOBUFS = syscall.Errno(0x37) ++ ENODATA = syscall.Errno(0x60) ++ ENODEV = syscall.Errno(0x13) ++ ENOENT = syscall.Errno(0x2) ++ ENOEXEC = syscall.Errno(0x8) ++ ENOLCK = syscall.Errno(0x4d) ++ ENOLINK = syscall.Errno(0x61) ++ ENOMEM = syscall.Errno(0xc) ++ ENOMSG = syscall.Errno(0x5b) ++ ENOPOLICY = syscall.Errno(0x67) ++ ENOPROTOOPT = syscall.Errno(0x2a) ++ ENOSPC = syscall.Errno(0x1c) ++ ENOSR = syscall.Errno(0x62) ++ ENOSTR = syscall.Errno(0x63) ++ ENOSYS = syscall.Errno(0x4e) ++ ENOTBLK = syscall.Errno(0xf) ++ ENOTCONN = syscall.Errno(0x39) ++ ENOTDIR = syscall.Errno(0x14) ++ ENOTEMPTY = syscall.Errno(0x42) ++ ENOTRECOVERABLE = syscall.Errno(0x68) ++ ENOTSOCK = syscall.Errno(0x26) ++ ENOTSUP = syscall.Errno(0x2d) ++ ENOTTY = syscall.Errno(0x19) ++ ENXIO = syscall.Errno(0x6) ++ EOPNOTSUPP = syscall.Errno(0x66) ++ EOVERFLOW = syscall.Errno(0x54) ++ EOWNERDEAD = syscall.Errno(0x69) ++ EPERM = syscall.Errno(0x1) ++ EPFNOSUPPORT = syscall.Errno(0x2e) ++ EPIPE = syscall.Errno(0x20) ++ EPROCLIM = syscall.Errno(0x43) ++ EPROCUNAVAIL = syscall.Errno(0x4c) ++ EPROGMISMATCH = syscall.Errno(0x4b) ++ EPROGUNAVAIL = syscall.Errno(0x4a) ++ EPROTO = syscall.Errno(0x64) ++ EPROTONOSUPPORT = syscall.Errno(0x2b) ++ EPROTOTYPE = syscall.Errno(0x29) ++ EPWROFF = syscall.Errno(0x52) ++ EQFULL = syscall.Errno(0x6a) ++ ERANGE = syscall.Errno(0x22) ++ EREMOTE = syscall.Errno(0x47) ++ EROFS = syscall.Errno(0x1e) ++ ERPCMISMATCH = syscall.Errno(0x49) ++ ESHLIBVERS = syscall.Errno(0x57) ++ ESHUTDOWN = syscall.Errno(0x3a) ++ ESOCKTNOSUPPORT = syscall.Errno(0x2c) ++ ESPIPE = syscall.Errno(0x1d) ++ ESRCH = syscall.Errno(0x3) ++ ESTALE = syscall.Errno(0x46) ++ ETIME = syscall.Errno(0x65) ++ ETIMEDOUT = syscall.Errno(0x3c) ++ ETOOMANYREFS = syscall.Errno(0x3b) ++ ETXTBSY = syscall.Errno(0x1a) ++ EUSERS = syscall.Errno(0x44) ++ EWOULDBLOCK = syscall.Errno(0x23) ++ EXDEV = syscall.Errno(0x12) ++) ++ ++// Signals ++const ( ++ SIGABRT = syscall.Signal(0x6) ++ SIGALRM = syscall.Signal(0xe) ++ SIGBUS = syscall.Signal(0xa) ++ SIGCHLD = syscall.Signal(0x14) ++ SIGCONT = syscall.Signal(0x13) ++ SIGEMT = syscall.Signal(0x7) ++ SIGFPE = syscall.Signal(0x8) ++ SIGHUP = syscall.Signal(0x1) ++ SIGILL = syscall.Signal(0x4) ++ SIGINFO = syscall.Signal(0x1d) ++ SIGINT = syscall.Signal(0x2) ++ SIGIO = syscall.Signal(0x17) ++ SIGIOT = syscall.Signal(0x6) ++ SIGKILL = syscall.Signal(0x9) ++ SIGPIPE = syscall.Signal(0xd) ++ SIGPROF = syscall.Signal(0x1b) ++ SIGQUIT = syscall.Signal(0x3) ++ SIGSEGV = syscall.Signal(0xb) ++ SIGSTOP = syscall.Signal(0x11) ++ SIGSYS = syscall.Signal(0xc) ++ SIGTERM = syscall.Signal(0xf) ++ SIGTRAP = syscall.Signal(0x5) ++ SIGTSTP = syscall.Signal(0x12) ++ SIGTTIN = syscall.Signal(0x15) ++ SIGTTOU = syscall.Signal(0x16) ++ SIGURG = syscall.Signal(0x10) ++ SIGUSR1 = syscall.Signal(0x1e) ++ SIGUSR2 = syscall.Signal(0x1f) ++ SIGVTALRM = syscall.Signal(0x1a) ++ SIGWINCH = syscall.Signal(0x1c) ++ SIGXCPU = syscall.Signal(0x18) ++ SIGXFSZ = syscall.Signal(0x19) ++) +diff --git a/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go +new file mode 100644 +index 0000000..3189c6b +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go +@@ -0,0 +1,1576 @@ ++// mkerrors.sh -m64 ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build arm64,darwin ++ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- -m64 _const.go ++ ++package unix ++ ++import "syscall" ++ ++const ( ++ AF_APPLETALK = 0x10 ++ AF_CCITT = 0xa ++ AF_CHAOS = 0x5 ++ AF_CNT = 0x15 ++ AF_COIP = 0x14 ++ AF_DATAKIT = 0x9 ++ AF_DECnet = 0xc ++ AF_DLI = 0xd ++ AF_E164 = 0x1c ++ AF_ECMA = 0x8 ++ AF_HYLINK = 0xf ++ AF_IEEE80211 = 0x25 ++ AF_IMPLINK = 0x3 ++ AF_INET = 0x2 ++ AF_INET6 = 0x1e ++ AF_IPX = 0x17 ++ AF_ISDN = 0x1c ++ AF_ISO = 0x7 ++ AF_LAT = 0xe ++ AF_LINK = 0x12 ++ AF_LOCAL = 0x1 ++ AF_MAX = 0x28 ++ AF_NATM = 0x1f ++ AF_NDRV = 0x1b ++ AF_NETBIOS = 0x21 ++ AF_NS = 0x6 ++ AF_OSI = 0x7 ++ AF_PPP = 0x22 ++ AF_PUP = 0x4 ++ AF_RESERVED_36 = 0x24 ++ AF_ROUTE = 0x11 ++ AF_SIP = 0x18 ++ AF_SNA = 0xb ++ AF_SYSTEM = 0x20 ++ AF_UNIX = 0x1 ++ AF_UNSPEC = 0x0 ++ AF_UTUN = 0x26 ++ B0 = 0x0 ++ B110 = 0x6e ++ B115200 = 0x1c200 ++ B1200 = 0x4b0 ++ B134 = 0x86 ++ B14400 = 0x3840 ++ B150 = 0x96 ++ B1800 = 0x708 ++ B19200 = 0x4b00 ++ B200 = 0xc8 ++ B230400 = 0x38400 ++ B2400 = 0x960 ++ B28800 = 0x7080 ++ B300 = 0x12c ++ B38400 = 0x9600 ++ B4800 = 0x12c0 ++ B50 = 0x32 ++ B57600 = 0xe100 ++ B600 = 0x258 ++ B7200 = 0x1c20 ++ B75 = 0x4b ++ B76800 = 0x12c00 ++ B9600 = 0x2580 ++ BIOCFLUSH = 0x20004268 ++ BIOCGBLEN = 0x40044266 ++ BIOCGDLT = 0x4004426a ++ BIOCGDLTLIST = 0xc00c4279 ++ BIOCGETIF = 0x4020426b ++ BIOCGHDRCMPLT = 0x40044274 ++ BIOCGRSIG = 0x40044272 ++ BIOCGRTIMEOUT = 0x4010426e ++ BIOCGSEESENT = 0x40044276 ++ BIOCGSTATS = 0x4008426f ++ BIOCIMMEDIATE = 0x80044270 ++ BIOCPROMISC = 0x20004269 ++ BIOCSBLEN = 0xc0044266 ++ BIOCSDLT = 0x80044278 ++ BIOCSETF = 0x80104267 ++ BIOCSETFNR = 0x8010427e ++ BIOCSETIF = 0x8020426c ++ BIOCSHDRCMPLT = 0x80044275 ++ BIOCSRSIG = 0x80044273 ++ BIOCSRTIMEOUT = 0x8010426d ++ BIOCSSEESENT = 0x80044277 ++ BIOCVERSION = 0x40044271 ++ BPF_A = 0x10 ++ BPF_ABS = 0x20 ++ BPF_ADD = 0x0 ++ BPF_ALIGNMENT = 0x4 ++ BPF_ALU = 0x4 ++ BPF_AND = 0x50 ++ BPF_B = 0x10 ++ BPF_DIV = 0x30 ++ BPF_H = 0x8 ++ BPF_IMM = 0x0 ++ BPF_IND = 0x40 ++ BPF_JA = 0x0 ++ BPF_JEQ = 0x10 ++ BPF_JGE = 0x30 ++ BPF_JGT = 0x20 ++ BPF_JMP = 0x5 ++ BPF_JSET = 0x40 ++ BPF_K = 0x0 ++ BPF_LD = 0x0 ++ BPF_LDX = 0x1 ++ BPF_LEN = 0x80 ++ BPF_LSH = 0x60 ++ BPF_MAJOR_VERSION = 0x1 ++ BPF_MAXBUFSIZE = 0x80000 ++ BPF_MAXINSNS = 0x200 ++ BPF_MEM = 0x60 ++ BPF_MEMWORDS = 0x10 ++ BPF_MINBUFSIZE = 0x20 ++ BPF_MINOR_VERSION = 0x1 ++ BPF_MISC = 0x7 ++ BPF_MSH = 0xa0 ++ BPF_MUL = 0x20 ++ BPF_NEG = 0x80 ++ BPF_OR = 0x40 ++ BPF_RELEASE = 0x30bb6 ++ BPF_RET = 0x6 ++ BPF_RSH = 0x70 ++ BPF_ST = 0x2 ++ BPF_STX = 0x3 ++ BPF_SUB = 0x10 ++ BPF_TAX = 0x0 ++ BPF_TXA = 0x80 ++ BPF_W = 0x0 ++ BPF_X = 0x8 ++ BRKINT = 0x2 ++ CFLUSH = 0xf ++ CLOCAL = 0x8000 ++ CREAD = 0x800 ++ CS5 = 0x0 ++ CS6 = 0x100 ++ CS7 = 0x200 ++ CS8 = 0x300 ++ CSIZE = 0x300 ++ CSTART = 0x11 ++ CSTATUS = 0x14 ++ CSTOP = 0x13 ++ CSTOPB = 0x400 ++ CSUSP = 0x1a ++ CTL_MAXNAME = 0xc ++ CTL_NET = 0x4 ++ DLT_A429 = 0xb8 ++ DLT_A653_ICM = 0xb9 ++ DLT_AIRONET_HEADER = 0x78 ++ DLT_AOS = 0xde ++ DLT_APPLE_IP_OVER_IEEE1394 = 0x8a ++ DLT_ARCNET = 0x7 ++ DLT_ARCNET_LINUX = 0x81 ++ DLT_ATM_CLIP = 0x13 ++ DLT_ATM_RFC1483 = 0xb ++ DLT_AURORA = 0x7e ++ DLT_AX25 = 0x3 ++ DLT_AX25_KISS = 0xca ++ DLT_BACNET_MS_TP = 0xa5 ++ DLT_BLUETOOTH_HCI_H4 = 0xbb ++ DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 ++ DLT_CAN20B = 0xbe ++ DLT_CAN_SOCKETCAN = 0xe3 ++ DLT_CHAOS = 0x5 ++ DLT_CHDLC = 0x68 ++ DLT_CISCO_IOS = 0x76 ++ DLT_C_HDLC = 0x68 ++ DLT_C_HDLC_WITH_DIR = 0xcd ++ DLT_DBUS = 0xe7 ++ DLT_DECT = 0xdd ++ DLT_DOCSIS = 0x8f ++ DLT_DVB_CI = 0xeb ++ DLT_ECONET = 0x73 ++ DLT_EN10MB = 0x1 ++ DLT_EN3MB = 0x2 ++ DLT_ENC = 0x6d ++ DLT_ERF = 0xc5 ++ DLT_ERF_ETH = 0xaf ++ DLT_ERF_POS = 0xb0 ++ DLT_FC_2 = 0xe0 ++ DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 ++ DLT_FDDI = 0xa ++ DLT_FLEXRAY = 0xd2 ++ DLT_FRELAY = 0x6b ++ DLT_FRELAY_WITH_DIR = 0xce ++ DLT_GCOM_SERIAL = 0xad ++ DLT_GCOM_T1E1 = 0xac ++ DLT_GPF_F = 0xab ++ DLT_GPF_T = 0xaa ++ DLT_GPRS_LLC = 0xa9 ++ DLT_GSMTAP_ABIS = 0xda ++ DLT_GSMTAP_UM = 0xd9 ++ DLT_HHDLC = 0x79 ++ DLT_IBM_SN = 0x92 ++ DLT_IBM_SP = 0x91 ++ DLT_IEEE802 = 0x6 ++ DLT_IEEE802_11 = 0x69 ++ DLT_IEEE802_11_RADIO = 0x7f ++ DLT_IEEE802_11_RADIO_AVS = 0xa3 ++ DLT_IEEE802_15_4 = 0xc3 ++ DLT_IEEE802_15_4_LINUX = 0xbf ++ DLT_IEEE802_15_4_NOFCS = 0xe6 ++ DLT_IEEE802_15_4_NONASK_PHY = 0xd7 ++ DLT_IEEE802_16_MAC_CPS = 0xbc ++ DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 ++ DLT_IPFILTER = 0x74 ++ DLT_IPMB = 0xc7 ++ DLT_IPMB_LINUX = 0xd1 ++ DLT_IPNET = 0xe2 ++ DLT_IPOIB = 0xf2 ++ DLT_IPV4 = 0xe4 ++ DLT_IPV6 = 0xe5 ++ DLT_IP_OVER_FC = 0x7a ++ DLT_JUNIPER_ATM1 = 0x89 ++ DLT_JUNIPER_ATM2 = 0x87 ++ DLT_JUNIPER_ATM_CEMIC = 0xee ++ DLT_JUNIPER_CHDLC = 0xb5 ++ DLT_JUNIPER_ES = 0x84 ++ DLT_JUNIPER_ETHER = 0xb2 ++ DLT_JUNIPER_FIBRECHANNEL = 0xea ++ DLT_JUNIPER_FRELAY = 0xb4 ++ DLT_JUNIPER_GGSN = 0x85 ++ DLT_JUNIPER_ISM = 0xc2 ++ DLT_JUNIPER_MFR = 0x86 ++ DLT_JUNIPER_MLFR = 0x83 ++ DLT_JUNIPER_MLPPP = 0x82 ++ DLT_JUNIPER_MONITOR = 0xa4 ++ DLT_JUNIPER_PIC_PEER = 0xae ++ DLT_JUNIPER_PPP = 0xb3 ++ DLT_JUNIPER_PPPOE = 0xa7 ++ DLT_JUNIPER_PPPOE_ATM = 0xa8 ++ DLT_JUNIPER_SERVICES = 0x88 ++ DLT_JUNIPER_SRX_E2E = 0xe9 ++ DLT_JUNIPER_ST = 0xc8 ++ DLT_JUNIPER_VP = 0xb7 ++ DLT_JUNIPER_VS = 0xe8 ++ DLT_LAPB_WITH_DIR = 0xcf ++ DLT_LAPD = 0xcb ++ DLT_LIN = 0xd4 ++ DLT_LINUX_EVDEV = 0xd8 ++ DLT_LINUX_IRDA = 0x90 ++ DLT_LINUX_LAPD = 0xb1 ++ DLT_LINUX_PPP_WITHDIRECTION = 0xa6 ++ DLT_LINUX_SLL = 0x71 ++ DLT_LOOP = 0x6c ++ DLT_LTALK = 0x72 ++ DLT_MATCHING_MAX = 0xf5 ++ DLT_MATCHING_MIN = 0x68 ++ DLT_MFR = 0xb6 ++ DLT_MOST = 0xd3 ++ DLT_MPEG_2_TS = 0xf3 ++ DLT_MPLS = 0xdb ++ DLT_MTP2 = 0x8c ++ DLT_MTP2_WITH_PHDR = 0x8b ++ DLT_MTP3 = 0x8d ++ DLT_MUX27010 = 0xec ++ DLT_NETANALYZER = 0xf0 ++ DLT_NETANALYZER_TRANSPARENT = 0xf1 ++ DLT_NFC_LLCP = 0xf5 ++ DLT_NFLOG = 0xef ++ DLT_NG40 = 0xf4 ++ DLT_NULL = 0x0 ++ DLT_PCI_EXP = 0x7d ++ DLT_PFLOG = 0x75 ++ DLT_PFSYNC = 0x12 ++ DLT_PPI = 0xc0 ++ DLT_PPP = 0x9 ++ DLT_PPP_BSDOS = 0x10 ++ DLT_PPP_ETHER = 0x33 ++ DLT_PPP_PPPD = 0xa6 ++ DLT_PPP_SERIAL = 0x32 ++ DLT_PPP_WITH_DIR = 0xcc ++ DLT_PPP_WITH_DIRECTION = 0xa6 ++ DLT_PRISM_HEADER = 0x77 ++ DLT_PRONET = 0x4 ++ DLT_RAIF1 = 0xc6 ++ DLT_RAW = 0xc ++ DLT_RIO = 0x7c ++ DLT_SCCP = 0x8e ++ DLT_SITA = 0xc4 ++ DLT_SLIP = 0x8 ++ DLT_SLIP_BSDOS = 0xf ++ DLT_STANAG_5066_D_PDU = 0xed ++ DLT_SUNATM = 0x7b ++ DLT_SYMANTEC_FIREWALL = 0x63 ++ DLT_TZSP = 0x80 ++ DLT_USB = 0xba ++ DLT_USB_LINUX = 0xbd ++ DLT_USB_LINUX_MMAPPED = 0xdc ++ DLT_USER0 = 0x93 ++ DLT_USER1 = 0x94 ++ DLT_USER10 = 0x9d ++ DLT_USER11 = 0x9e ++ DLT_USER12 = 0x9f ++ DLT_USER13 = 0xa0 ++ DLT_USER14 = 0xa1 ++ DLT_USER15 = 0xa2 ++ DLT_USER2 = 0x95 ++ DLT_USER3 = 0x96 ++ DLT_USER4 = 0x97 ++ DLT_USER5 = 0x98 ++ DLT_USER6 = 0x99 ++ DLT_USER7 = 0x9a ++ DLT_USER8 = 0x9b ++ DLT_USER9 = 0x9c ++ DLT_WIHART = 0xdf ++ DLT_X2E_SERIAL = 0xd5 ++ DLT_X2E_XORAYA = 0xd6 ++ DT_BLK = 0x6 ++ DT_CHR = 0x2 ++ DT_DIR = 0x4 ++ DT_FIFO = 0x1 ++ DT_LNK = 0xa ++ DT_REG = 0x8 ++ DT_SOCK = 0xc ++ DT_UNKNOWN = 0x0 ++ DT_WHT = 0xe ++ ECHO = 0x8 ++ ECHOCTL = 0x40 ++ ECHOE = 0x2 ++ ECHOK = 0x4 ++ ECHOKE = 0x1 ++ ECHONL = 0x10 ++ ECHOPRT = 0x20 ++ EVFILT_AIO = -0x3 ++ EVFILT_FS = -0x9 ++ EVFILT_MACHPORT = -0x8 ++ EVFILT_PROC = -0x5 ++ EVFILT_READ = -0x1 ++ EVFILT_SIGNAL = -0x6 ++ EVFILT_SYSCOUNT = 0xe ++ EVFILT_THREADMARKER = 0xe ++ EVFILT_TIMER = -0x7 ++ EVFILT_USER = -0xa ++ EVFILT_VM = -0xc ++ EVFILT_VNODE = -0x4 ++ EVFILT_WRITE = -0x2 ++ EV_ADD = 0x1 ++ EV_CLEAR = 0x20 ++ EV_DELETE = 0x2 ++ EV_DISABLE = 0x8 ++ EV_DISPATCH = 0x80 ++ EV_ENABLE = 0x4 ++ EV_EOF = 0x8000 ++ EV_ERROR = 0x4000 ++ EV_FLAG0 = 0x1000 ++ EV_FLAG1 = 0x2000 ++ EV_ONESHOT = 0x10 ++ EV_OOBAND = 0x2000 ++ EV_POLL = 0x1000 ++ EV_RECEIPT = 0x40 ++ EV_SYSFLAGS = 0xf000 ++ EXTA = 0x4b00 ++ EXTB = 0x9600 ++ EXTPROC = 0x800 ++ FD_CLOEXEC = 0x1 ++ FD_SETSIZE = 0x400 ++ FLUSHO = 0x800000 ++ F_ADDFILESIGS = 0x3d ++ F_ADDSIGS = 0x3b ++ F_ALLOCATEALL = 0x4 ++ F_ALLOCATECONTIG = 0x2 ++ F_CHKCLEAN = 0x29 ++ F_DUPFD = 0x0 ++ F_DUPFD_CLOEXEC = 0x43 ++ F_FINDSIGS = 0x4e ++ F_FLUSH_DATA = 0x28 ++ F_FREEZE_FS = 0x35 ++ F_FULLFSYNC = 0x33 ++ F_GETCODEDIR = 0x48 ++ F_GETFD = 0x1 ++ F_GETFL = 0x3 ++ F_GETLK = 0x7 ++ F_GETLKPID = 0x42 ++ F_GETNOSIGPIPE = 0x4a ++ F_GETOWN = 0x5 ++ F_GETPATH = 0x32 ++ F_GETPATH_MTMINFO = 0x47 ++ F_GETPROTECTIONCLASS = 0x3f ++ F_GETPROTECTIONLEVEL = 0x4d ++ F_GLOBAL_NOCACHE = 0x37 ++ F_LOG2PHYS = 0x31 ++ F_LOG2PHYS_EXT = 0x41 ++ F_NOCACHE = 0x30 ++ F_NODIRECT = 0x3e ++ F_OK = 0x0 ++ F_PATHPKG_CHECK = 0x34 ++ F_PEOFPOSMODE = 0x3 ++ F_PREALLOCATE = 0x2a ++ F_RDADVISE = 0x2c ++ F_RDAHEAD = 0x2d ++ F_RDLCK = 0x1 ++ F_SETBACKINGSTORE = 0x46 ++ F_SETFD = 0x2 ++ F_SETFL = 0x4 ++ F_SETLK = 0x8 ++ F_SETLKW = 0x9 ++ F_SETLKWTIMEOUT = 0xa ++ F_SETNOSIGPIPE = 0x49 ++ F_SETOWN = 0x6 ++ F_SETPROTECTIONCLASS = 0x40 ++ F_SETSIZE = 0x2b ++ F_SINGLE_WRITER = 0x4c ++ F_THAW_FS = 0x36 ++ F_TRANSCODEKEY = 0x4b ++ F_UNLCK = 0x2 ++ F_VOLPOSMODE = 0x4 ++ F_WRLCK = 0x3 ++ HUPCL = 0x4000 ++ ICANON = 0x100 ++ ICMP6_FILTER = 0x12 ++ ICRNL = 0x100 ++ IEXTEN = 0x400 ++ IFF_ALLMULTI = 0x200 ++ IFF_ALTPHYS = 0x4000 ++ IFF_BROADCAST = 0x2 ++ IFF_DEBUG = 0x4 ++ IFF_LINK0 = 0x1000 ++ IFF_LINK1 = 0x2000 ++ IFF_LINK2 = 0x4000 ++ IFF_LOOPBACK = 0x8 ++ IFF_MULTICAST = 0x8000 ++ IFF_NOARP = 0x80 ++ IFF_NOTRAILERS = 0x20 ++ IFF_OACTIVE = 0x400 ++ IFF_POINTOPOINT = 0x10 ++ IFF_PROMISC = 0x100 ++ IFF_RUNNING = 0x40 ++ IFF_SIMPLEX = 0x800 ++ IFF_UP = 0x1 ++ IFNAMSIZ = 0x10 ++ IFT_1822 = 0x2 ++ IFT_AAL5 = 0x31 ++ IFT_ARCNET = 0x23 ++ IFT_ARCNETPLUS = 0x24 ++ IFT_ATM = 0x25 ++ IFT_BRIDGE = 0xd1 ++ IFT_CARP = 0xf8 ++ IFT_CELLULAR = 0xff ++ IFT_CEPT = 0x13 ++ IFT_DS3 = 0x1e ++ IFT_ENC = 0xf4 ++ IFT_EON = 0x19 ++ IFT_ETHER = 0x6 ++ IFT_FAITH = 0x38 ++ IFT_FDDI = 0xf ++ IFT_FRELAY = 0x20 ++ IFT_FRELAYDCE = 0x2c ++ IFT_GIF = 0x37 ++ IFT_HDH1822 = 0x3 ++ IFT_HIPPI = 0x2f ++ IFT_HSSI = 0x2e ++ IFT_HY = 0xe ++ IFT_IEEE1394 = 0x90 ++ IFT_IEEE8023ADLAG = 0x88 ++ IFT_ISDNBASIC = 0x14 ++ IFT_ISDNPRIMARY = 0x15 ++ IFT_ISO88022LLC = 0x29 ++ IFT_ISO88023 = 0x7 ++ IFT_ISO88024 = 0x8 ++ IFT_ISO88025 = 0x9 ++ IFT_ISO88026 = 0xa ++ IFT_L2VLAN = 0x87 ++ IFT_LAPB = 0x10 ++ IFT_LOCALTALK = 0x2a ++ IFT_LOOP = 0x18 ++ IFT_MIOX25 = 0x26 ++ IFT_MODEM = 0x30 ++ IFT_NSIP = 0x1b ++ IFT_OTHER = 0x1 ++ IFT_P10 = 0xc ++ IFT_P80 = 0xd ++ IFT_PARA = 0x22 ++ IFT_PDP = 0xff ++ IFT_PFLOG = 0xf5 ++ IFT_PFSYNC = 0xf6 ++ IFT_PKTAP = 0xfe ++ IFT_PPP = 0x17 ++ IFT_PROPMUX = 0x36 ++ IFT_PROPVIRTUAL = 0x35 ++ IFT_PTPSERIAL = 0x16 ++ IFT_RS232 = 0x21 ++ IFT_SDLC = 0x11 ++ IFT_SIP = 0x1f ++ IFT_SLIP = 0x1c ++ IFT_SMDSDXI = 0x2b ++ IFT_SMDSICIP = 0x34 ++ IFT_SONET = 0x27 ++ IFT_SONETPATH = 0x32 ++ IFT_SONETVT = 0x33 ++ IFT_STARLAN = 0xb ++ IFT_STF = 0x39 ++ IFT_T1 = 0x12 ++ IFT_ULTRA = 0x1d ++ IFT_V35 = 0x2d ++ IFT_X25 = 0x5 ++ IFT_X25DDN = 0x4 ++ IFT_X25PLE = 0x28 ++ IFT_XETHER = 0x1a ++ IGNBRK = 0x1 ++ IGNCR = 0x80 ++ IGNPAR = 0x4 ++ IMAXBEL = 0x2000 ++ INLCR = 0x40 ++ INPCK = 0x10 ++ IN_CLASSA_HOST = 0xffffff ++ IN_CLASSA_MAX = 0x80 ++ IN_CLASSA_NET = 0xff000000 ++ IN_CLASSA_NSHIFT = 0x18 ++ IN_CLASSB_HOST = 0xffff ++ IN_CLASSB_MAX = 0x10000 ++ IN_CLASSB_NET = 0xffff0000 ++ IN_CLASSB_NSHIFT = 0x10 ++ IN_CLASSC_HOST = 0xff ++ IN_CLASSC_NET = 0xffffff00 ++ IN_CLASSC_NSHIFT = 0x8 ++ IN_CLASSD_HOST = 0xfffffff ++ IN_CLASSD_NET = 0xf0000000 ++ IN_CLASSD_NSHIFT = 0x1c ++ IN_LINKLOCALNETNUM = 0xa9fe0000 ++ IN_LOOPBACKNET = 0x7f ++ IPPROTO_3PC = 0x22 ++ IPPROTO_ADFS = 0x44 ++ IPPROTO_AH = 0x33 ++ IPPROTO_AHIP = 0x3d ++ IPPROTO_APES = 0x63 ++ IPPROTO_ARGUS = 0xd ++ IPPROTO_AX25 = 0x5d ++ IPPROTO_BHA = 0x31 ++ IPPROTO_BLT = 0x1e ++ IPPROTO_BRSATMON = 0x4c ++ IPPROTO_CFTP = 0x3e ++ IPPROTO_CHAOS = 0x10 ++ IPPROTO_CMTP = 0x26 ++ IPPROTO_CPHB = 0x49 ++ IPPROTO_CPNX = 0x48 ++ IPPROTO_DDP = 0x25 ++ IPPROTO_DGP = 0x56 ++ IPPROTO_DIVERT = 0xfe ++ IPPROTO_DONE = 0x101 ++ IPPROTO_DSTOPTS = 0x3c ++ IPPROTO_EGP = 0x8 ++ IPPROTO_EMCON = 0xe ++ IPPROTO_ENCAP = 0x62 ++ IPPROTO_EON = 0x50 ++ IPPROTO_ESP = 0x32 ++ IPPROTO_ETHERIP = 0x61 ++ IPPROTO_FRAGMENT = 0x2c ++ IPPROTO_GGP = 0x3 ++ IPPROTO_GMTP = 0x64 ++ IPPROTO_GRE = 0x2f ++ IPPROTO_HELLO = 0x3f ++ IPPROTO_HMP = 0x14 ++ IPPROTO_HOPOPTS = 0x0 ++ IPPROTO_ICMP = 0x1 ++ IPPROTO_ICMPV6 = 0x3a ++ IPPROTO_IDP = 0x16 ++ IPPROTO_IDPR = 0x23 ++ IPPROTO_IDRP = 0x2d ++ IPPROTO_IGMP = 0x2 ++ IPPROTO_IGP = 0x55 ++ IPPROTO_IGRP = 0x58 ++ IPPROTO_IL = 0x28 ++ IPPROTO_INLSP = 0x34 ++ IPPROTO_INP = 0x20 ++ IPPROTO_IP = 0x0 ++ IPPROTO_IPCOMP = 0x6c ++ IPPROTO_IPCV = 0x47 ++ IPPROTO_IPEIP = 0x5e ++ IPPROTO_IPIP = 0x4 ++ IPPROTO_IPPC = 0x43 ++ IPPROTO_IPV4 = 0x4 ++ IPPROTO_IPV6 = 0x29 ++ IPPROTO_IRTP = 0x1c ++ IPPROTO_KRYPTOLAN = 0x41 ++ IPPROTO_LARP = 0x5b ++ IPPROTO_LEAF1 = 0x19 ++ IPPROTO_LEAF2 = 0x1a ++ IPPROTO_MAX = 0x100 ++ IPPROTO_MAXID = 0x34 ++ IPPROTO_MEAS = 0x13 ++ IPPROTO_MHRP = 0x30 ++ IPPROTO_MICP = 0x5f ++ IPPROTO_MTP = 0x5c ++ IPPROTO_MUX = 0x12 ++ IPPROTO_ND = 0x4d ++ IPPROTO_NHRP = 0x36 ++ IPPROTO_NONE = 0x3b ++ IPPROTO_NSP = 0x1f ++ IPPROTO_NVPII = 0xb ++ IPPROTO_OSPFIGP = 0x59 ++ IPPROTO_PGM = 0x71 ++ IPPROTO_PIGP = 0x9 ++ IPPROTO_PIM = 0x67 ++ IPPROTO_PRM = 0x15 ++ IPPROTO_PUP = 0xc ++ IPPROTO_PVP = 0x4b ++ IPPROTO_RAW = 0xff ++ IPPROTO_RCCMON = 0xa ++ IPPROTO_RDP = 0x1b ++ IPPROTO_ROUTING = 0x2b ++ IPPROTO_RSVP = 0x2e ++ IPPROTO_RVD = 0x42 ++ IPPROTO_SATEXPAK = 0x40 ++ IPPROTO_SATMON = 0x45 ++ IPPROTO_SCCSP = 0x60 ++ IPPROTO_SCTP = 0x84 ++ IPPROTO_SDRP = 0x2a ++ IPPROTO_SEP = 0x21 ++ IPPROTO_SRPC = 0x5a ++ IPPROTO_ST = 0x7 ++ IPPROTO_SVMTP = 0x52 ++ IPPROTO_SWIPE = 0x35 ++ IPPROTO_TCF = 0x57 ++ IPPROTO_TCP = 0x6 ++ IPPROTO_TP = 0x1d ++ IPPROTO_TPXX = 0x27 ++ IPPROTO_TRUNK1 = 0x17 ++ IPPROTO_TRUNK2 = 0x18 ++ IPPROTO_TTP = 0x54 ++ IPPROTO_UDP = 0x11 ++ IPPROTO_VINES = 0x53 ++ IPPROTO_VISA = 0x46 ++ IPPROTO_VMTP = 0x51 ++ IPPROTO_WBEXPAK = 0x4f ++ IPPROTO_WBMON = 0x4e ++ IPPROTO_WSN = 0x4a ++ IPPROTO_XNET = 0xf ++ IPPROTO_XTP = 0x24 ++ IPV6_2292DSTOPTS = 0x17 ++ IPV6_2292HOPLIMIT = 0x14 ++ IPV6_2292HOPOPTS = 0x16 ++ IPV6_2292NEXTHOP = 0x15 ++ IPV6_2292PKTINFO = 0x13 ++ IPV6_2292PKTOPTIONS = 0x19 ++ IPV6_2292RTHDR = 0x18 ++ IPV6_BINDV6ONLY = 0x1b ++ IPV6_BOUND_IF = 0x7d ++ IPV6_CHECKSUM = 0x1a ++ IPV6_DEFAULT_MULTICAST_HOPS = 0x1 ++ IPV6_DEFAULT_MULTICAST_LOOP = 0x1 ++ IPV6_DEFHLIM = 0x40 ++ IPV6_FAITH = 0x1d ++ IPV6_FLOWINFO_MASK = 0xffffff0f ++ IPV6_FLOWLABEL_MASK = 0xffff0f00 ++ IPV6_FRAGTTL = 0x3c ++ IPV6_FW_ADD = 0x1e ++ IPV6_FW_DEL = 0x1f ++ IPV6_FW_FLUSH = 0x20 ++ IPV6_FW_GET = 0x22 ++ IPV6_FW_ZERO = 0x21 ++ IPV6_HLIMDEC = 0x1 ++ IPV6_IPSEC_POLICY = 0x1c ++ IPV6_JOIN_GROUP = 0xc ++ IPV6_LEAVE_GROUP = 0xd ++ IPV6_MAXHLIM = 0xff ++ IPV6_MAXOPTHDR = 0x800 ++ IPV6_MAXPACKET = 0xffff ++ IPV6_MAX_GROUP_SRC_FILTER = 0x200 ++ IPV6_MAX_MEMBERSHIPS = 0xfff ++ IPV6_MAX_SOCK_SRC_FILTER = 0x80 ++ IPV6_MIN_MEMBERSHIPS = 0x1f ++ IPV6_MMTU = 0x500 ++ IPV6_MULTICAST_HOPS = 0xa ++ IPV6_MULTICAST_IF = 0x9 ++ IPV6_MULTICAST_LOOP = 0xb ++ IPV6_PORTRANGE = 0xe ++ IPV6_PORTRANGE_DEFAULT = 0x0 ++ IPV6_PORTRANGE_HIGH = 0x1 ++ IPV6_PORTRANGE_LOW = 0x2 ++ IPV6_RECVTCLASS = 0x23 ++ IPV6_RTHDR_LOOSE = 0x0 ++ IPV6_RTHDR_STRICT = 0x1 ++ IPV6_RTHDR_TYPE_0 = 0x0 ++ IPV6_SOCKOPT_RESERVED1 = 0x3 ++ IPV6_TCLASS = 0x24 ++ IPV6_UNICAST_HOPS = 0x4 ++ IPV6_V6ONLY = 0x1b ++ IPV6_VERSION = 0x60 ++ IPV6_VERSION_MASK = 0xf0 ++ IP_ADD_MEMBERSHIP = 0xc ++ IP_ADD_SOURCE_MEMBERSHIP = 0x46 ++ IP_BLOCK_SOURCE = 0x48 ++ IP_BOUND_IF = 0x19 ++ IP_DEFAULT_MULTICAST_LOOP = 0x1 ++ IP_DEFAULT_MULTICAST_TTL = 0x1 ++ IP_DF = 0x4000 ++ IP_DROP_MEMBERSHIP = 0xd ++ IP_DROP_SOURCE_MEMBERSHIP = 0x47 ++ IP_DUMMYNET_CONFIGURE = 0x3c ++ IP_DUMMYNET_DEL = 0x3d ++ IP_DUMMYNET_FLUSH = 0x3e ++ IP_DUMMYNET_GET = 0x40 ++ IP_FAITH = 0x16 ++ IP_FW_ADD = 0x28 ++ IP_FW_DEL = 0x29 ++ IP_FW_FLUSH = 0x2a ++ IP_FW_GET = 0x2c ++ IP_FW_RESETLOG = 0x2d ++ IP_FW_ZERO = 0x2b ++ IP_HDRINCL = 0x2 ++ IP_IPSEC_POLICY = 0x15 ++ IP_MAXPACKET = 0xffff ++ IP_MAX_GROUP_SRC_FILTER = 0x200 ++ IP_MAX_MEMBERSHIPS = 0xfff ++ IP_MAX_SOCK_MUTE_FILTER = 0x80 ++ IP_MAX_SOCK_SRC_FILTER = 0x80 ++ IP_MF = 0x2000 ++ IP_MIN_MEMBERSHIPS = 0x1f ++ IP_MSFILTER = 0x4a ++ IP_MSS = 0x240 ++ IP_MULTICAST_IF = 0x9 ++ IP_MULTICAST_IFINDEX = 0x42 ++ IP_MULTICAST_LOOP = 0xb ++ IP_MULTICAST_TTL = 0xa ++ IP_MULTICAST_VIF = 0xe ++ IP_NAT__XXX = 0x37 ++ IP_OFFMASK = 0x1fff ++ IP_OLD_FW_ADD = 0x32 ++ IP_OLD_FW_DEL = 0x33 ++ IP_OLD_FW_FLUSH = 0x34 ++ IP_OLD_FW_GET = 0x36 ++ IP_OLD_FW_RESETLOG = 0x38 ++ IP_OLD_FW_ZERO = 0x35 ++ IP_OPTIONS = 0x1 ++ IP_PKTINFO = 0x1a ++ IP_PORTRANGE = 0x13 ++ IP_PORTRANGE_DEFAULT = 0x0 ++ IP_PORTRANGE_HIGH = 0x1 ++ IP_PORTRANGE_LOW = 0x2 ++ IP_RECVDSTADDR = 0x7 ++ IP_RECVIF = 0x14 ++ IP_RECVOPTS = 0x5 ++ IP_RECVPKTINFO = 0x1a ++ IP_RECVRETOPTS = 0x6 ++ IP_RECVTTL = 0x18 ++ IP_RETOPTS = 0x8 ++ IP_RF = 0x8000 ++ IP_RSVP_OFF = 0x10 ++ IP_RSVP_ON = 0xf ++ IP_RSVP_VIF_OFF = 0x12 ++ IP_RSVP_VIF_ON = 0x11 ++ IP_STRIPHDR = 0x17 ++ IP_TOS = 0x3 ++ IP_TRAFFIC_MGT_BACKGROUND = 0x41 ++ IP_TTL = 0x4 ++ IP_UNBLOCK_SOURCE = 0x49 ++ ISIG = 0x80 ++ ISTRIP = 0x20 ++ IUTF8 = 0x4000 ++ IXANY = 0x800 ++ IXOFF = 0x400 ++ IXON = 0x200 ++ LOCK_EX = 0x2 ++ LOCK_NB = 0x4 ++ LOCK_SH = 0x1 ++ LOCK_UN = 0x8 ++ MADV_CAN_REUSE = 0x9 ++ MADV_DONTNEED = 0x4 ++ MADV_FREE = 0x5 ++ MADV_FREE_REUSABLE = 0x7 ++ MADV_FREE_REUSE = 0x8 ++ MADV_NORMAL = 0x0 ++ MADV_RANDOM = 0x1 ++ MADV_SEQUENTIAL = 0x2 ++ MADV_WILLNEED = 0x3 ++ MADV_ZERO_WIRED_PAGES = 0x6 ++ MAP_ANON = 0x1000 ++ MAP_COPY = 0x2 ++ MAP_FILE = 0x0 ++ MAP_FIXED = 0x10 ++ MAP_HASSEMAPHORE = 0x200 ++ MAP_JIT = 0x800 ++ MAP_NOCACHE = 0x400 ++ MAP_NOEXTEND = 0x100 ++ MAP_NORESERVE = 0x40 ++ MAP_PRIVATE = 0x2 ++ MAP_RENAME = 0x20 ++ MAP_RESERVED0080 = 0x80 ++ MAP_SHARED = 0x1 ++ MCL_CURRENT = 0x1 ++ MCL_FUTURE = 0x2 ++ MSG_CTRUNC = 0x20 ++ MSG_DONTROUTE = 0x4 ++ MSG_DONTWAIT = 0x80 ++ MSG_EOF = 0x100 ++ MSG_EOR = 0x8 ++ MSG_FLUSH = 0x400 ++ MSG_HAVEMORE = 0x2000 ++ MSG_HOLD = 0x800 ++ MSG_NEEDSA = 0x10000 ++ MSG_OOB = 0x1 ++ MSG_PEEK = 0x2 ++ MSG_RCVMORE = 0x4000 ++ MSG_SEND = 0x1000 ++ MSG_TRUNC = 0x10 ++ MSG_WAITALL = 0x40 ++ MSG_WAITSTREAM = 0x200 ++ MS_ASYNC = 0x1 ++ MS_DEACTIVATE = 0x8 ++ MS_INVALIDATE = 0x2 ++ MS_KILLPAGES = 0x4 ++ MS_SYNC = 0x10 ++ NAME_MAX = 0xff ++ NET_RT_DUMP = 0x1 ++ NET_RT_DUMP2 = 0x7 ++ NET_RT_FLAGS = 0x2 ++ NET_RT_IFLIST = 0x3 ++ NET_RT_IFLIST2 = 0x6 ++ NET_RT_MAXID = 0xa ++ NET_RT_STAT = 0x4 ++ NET_RT_TRASH = 0x5 ++ NOFLSH = 0x80000000 ++ NOTE_ABSOLUTE = 0x8 ++ NOTE_ATTRIB = 0x8 ++ NOTE_BACKGROUND = 0x40 ++ NOTE_CHILD = 0x4 ++ NOTE_CRITICAL = 0x20 ++ NOTE_DELETE = 0x1 ++ NOTE_EXEC = 0x20000000 ++ NOTE_EXIT = 0x80000000 ++ NOTE_EXITSTATUS = 0x4000000 ++ NOTE_EXIT_CSERROR = 0x40000 ++ NOTE_EXIT_DECRYPTFAIL = 0x10000 ++ NOTE_EXIT_DETAIL = 0x2000000 ++ NOTE_EXIT_DETAIL_MASK = 0x70000 ++ NOTE_EXIT_MEMORY = 0x20000 ++ NOTE_EXIT_REPARENTED = 0x80000 ++ NOTE_EXTEND = 0x4 ++ NOTE_FFAND = 0x40000000 ++ NOTE_FFCOPY = 0xc0000000 ++ NOTE_FFCTRLMASK = 0xc0000000 ++ NOTE_FFLAGSMASK = 0xffffff ++ NOTE_FFNOP = 0x0 ++ NOTE_FFOR = 0x80000000 ++ NOTE_FORK = 0x40000000 ++ NOTE_LEEWAY = 0x10 ++ NOTE_LINK = 0x10 ++ NOTE_LOWAT = 0x1 ++ NOTE_NONE = 0x80 ++ NOTE_NSECONDS = 0x4 ++ NOTE_PCTRLMASK = -0x100000 ++ NOTE_PDATAMASK = 0xfffff ++ NOTE_REAP = 0x10000000 ++ NOTE_RENAME = 0x20 ++ NOTE_REVOKE = 0x40 ++ NOTE_SECONDS = 0x1 ++ NOTE_SIGNAL = 0x8000000 ++ NOTE_TRACK = 0x1 ++ NOTE_TRACKERR = 0x2 ++ NOTE_TRIGGER = 0x1000000 ++ NOTE_USECONDS = 0x2 ++ NOTE_VM_ERROR = 0x10000000 ++ NOTE_VM_PRESSURE = 0x80000000 ++ NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000 ++ NOTE_VM_PRESSURE_TERMINATE = 0x40000000 ++ NOTE_WRITE = 0x2 ++ OCRNL = 0x10 ++ OFDEL = 0x20000 ++ OFILL = 0x80 ++ ONLCR = 0x2 ++ ONLRET = 0x40 ++ ONOCR = 0x20 ++ ONOEOT = 0x8 ++ OPOST = 0x1 ++ O_ACCMODE = 0x3 ++ O_ALERT = 0x20000000 ++ O_APPEND = 0x8 ++ O_ASYNC = 0x40 ++ O_CLOEXEC = 0x1000000 ++ O_CREAT = 0x200 ++ O_DIRECTORY = 0x100000 ++ O_DP_GETRAWENCRYPTED = 0x1 ++ O_DSYNC = 0x400000 ++ O_EVTONLY = 0x8000 ++ O_EXCL = 0x800 ++ O_EXLOCK = 0x20 ++ O_FSYNC = 0x80 ++ O_NDELAY = 0x4 ++ O_NOCTTY = 0x20000 ++ O_NOFOLLOW = 0x100 ++ O_NONBLOCK = 0x4 ++ O_POPUP = 0x80000000 ++ O_RDONLY = 0x0 ++ O_RDWR = 0x2 ++ O_SHLOCK = 0x10 ++ O_SYMLINK = 0x200000 ++ O_SYNC = 0x80 ++ O_TRUNC = 0x400 ++ O_WRONLY = 0x1 ++ PARENB = 0x1000 ++ PARMRK = 0x8 ++ PARODD = 0x2000 ++ PENDIN = 0x20000000 ++ PRIO_PGRP = 0x1 ++ PRIO_PROCESS = 0x0 ++ PRIO_USER = 0x2 ++ PROT_EXEC = 0x4 ++ PROT_NONE = 0x0 ++ PROT_READ = 0x1 ++ PROT_WRITE = 0x2 ++ PT_ATTACH = 0xa ++ PT_ATTACHEXC = 0xe ++ PT_CONTINUE = 0x7 ++ PT_DENY_ATTACH = 0x1f ++ PT_DETACH = 0xb ++ PT_FIRSTMACH = 0x20 ++ PT_FORCEQUOTA = 0x1e ++ PT_KILL = 0x8 ++ PT_READ_D = 0x2 ++ PT_READ_I = 0x1 ++ PT_READ_U = 0x3 ++ PT_SIGEXC = 0xc ++ PT_STEP = 0x9 ++ PT_THUPDATE = 0xd ++ PT_TRACE_ME = 0x0 ++ PT_WRITE_D = 0x5 ++ PT_WRITE_I = 0x4 ++ PT_WRITE_U = 0x6 ++ RLIMIT_AS = 0x5 ++ RLIMIT_CORE = 0x4 ++ RLIMIT_CPU = 0x0 ++ RLIMIT_CPU_USAGE_MONITOR = 0x2 ++ RLIMIT_DATA = 0x2 ++ RLIMIT_FSIZE = 0x1 ++ RLIMIT_NOFILE = 0x8 ++ RLIMIT_STACK = 0x3 ++ RLIM_INFINITY = 0x7fffffffffffffff ++ RTAX_AUTHOR = 0x6 ++ RTAX_BRD = 0x7 ++ RTAX_DST = 0x0 ++ RTAX_GATEWAY = 0x1 ++ RTAX_GENMASK = 0x3 ++ RTAX_IFA = 0x5 ++ RTAX_IFP = 0x4 ++ RTAX_MAX = 0x8 ++ RTAX_NETMASK = 0x2 ++ RTA_AUTHOR = 0x40 ++ RTA_BRD = 0x80 ++ RTA_DST = 0x1 ++ RTA_GATEWAY = 0x2 ++ RTA_GENMASK = 0x8 ++ RTA_IFA = 0x20 ++ RTA_IFP = 0x10 ++ RTA_NETMASK = 0x4 ++ RTF_BLACKHOLE = 0x1000 ++ RTF_BROADCAST = 0x400000 ++ RTF_CLONING = 0x100 ++ RTF_CONDEMNED = 0x2000000 ++ RTF_DELCLONE = 0x80 ++ RTF_DONE = 0x40 ++ RTF_DYNAMIC = 0x10 ++ RTF_GATEWAY = 0x2 ++ RTF_HOST = 0x4 ++ RTF_IFREF = 0x4000000 ++ RTF_IFSCOPE = 0x1000000 ++ RTF_LLINFO = 0x400 ++ RTF_LOCAL = 0x200000 ++ RTF_MODIFIED = 0x20 ++ RTF_MULTICAST = 0x800000 ++ RTF_NOIFREF = 0x2000 ++ RTF_PINNED = 0x100000 ++ RTF_PRCLONING = 0x10000 ++ RTF_PROTO1 = 0x8000 ++ RTF_PROTO2 = 0x4000 ++ RTF_PROTO3 = 0x40000 ++ RTF_PROXY = 0x8000000 ++ RTF_REJECT = 0x8 ++ RTF_ROUTER = 0x10000000 ++ RTF_STATIC = 0x800 ++ RTF_UP = 0x1 ++ RTF_WASCLONED = 0x20000 ++ RTF_XRESOLVE = 0x200 ++ RTM_ADD = 0x1 ++ RTM_CHANGE = 0x3 ++ RTM_DELADDR = 0xd ++ RTM_DELETE = 0x2 ++ RTM_DELMADDR = 0x10 ++ RTM_GET = 0x4 ++ RTM_GET2 = 0x14 ++ RTM_IFINFO = 0xe ++ RTM_IFINFO2 = 0x12 ++ RTM_LOCK = 0x8 ++ RTM_LOSING = 0x5 ++ RTM_MISS = 0x7 ++ RTM_NEWADDR = 0xc ++ RTM_NEWMADDR = 0xf ++ RTM_NEWMADDR2 = 0x13 ++ RTM_OLDADD = 0x9 ++ RTM_OLDDEL = 0xa ++ RTM_REDIRECT = 0x6 ++ RTM_RESOLVE = 0xb ++ RTM_RTTUNIT = 0xf4240 ++ RTM_VERSION = 0x5 ++ RTV_EXPIRE = 0x4 ++ RTV_HOPCOUNT = 0x2 ++ RTV_MTU = 0x1 ++ RTV_RPIPE = 0x8 ++ RTV_RTT = 0x40 ++ RTV_RTTVAR = 0x80 ++ RTV_SPIPE = 0x10 ++ RTV_SSTHRESH = 0x20 ++ RUSAGE_CHILDREN = -0x1 ++ RUSAGE_SELF = 0x0 ++ SCM_CREDS = 0x3 ++ SCM_RIGHTS = 0x1 ++ SCM_TIMESTAMP = 0x2 ++ SCM_TIMESTAMP_MONOTONIC = 0x4 ++ SHUT_RD = 0x0 ++ SHUT_RDWR = 0x2 ++ SHUT_WR = 0x1 ++ SIOCADDMULTI = 0x80206931 ++ SIOCAIFADDR = 0x8040691a ++ SIOCARPIPLL = 0xc0206928 ++ SIOCATMARK = 0x40047307 ++ SIOCAUTOADDR = 0xc0206926 ++ SIOCAUTONETMASK = 0x80206927 ++ SIOCDELMULTI = 0x80206932 ++ SIOCDIFADDR = 0x80206919 ++ SIOCDIFPHYADDR = 0x80206941 ++ SIOCGDRVSPEC = 0xc028697b ++ SIOCGETVLAN = 0xc020697f ++ SIOCGHIWAT = 0x40047301 ++ SIOCGIFADDR = 0xc0206921 ++ SIOCGIFALTMTU = 0xc0206948 ++ SIOCGIFASYNCMAP = 0xc020697c ++ SIOCGIFBOND = 0xc0206947 ++ SIOCGIFBRDADDR = 0xc0206923 ++ SIOCGIFCAP = 0xc020695b ++ SIOCGIFCONF = 0xc00c6924 ++ SIOCGIFDEVMTU = 0xc0206944 ++ SIOCGIFDSTADDR = 0xc0206922 ++ SIOCGIFFLAGS = 0xc0206911 ++ SIOCGIFGENERIC = 0xc020693a ++ SIOCGIFKPI = 0xc0206987 ++ SIOCGIFMAC = 0xc0206982 ++ SIOCGIFMEDIA = 0xc02c6938 ++ SIOCGIFMETRIC = 0xc0206917 ++ SIOCGIFMTU = 0xc0206933 ++ SIOCGIFNETMASK = 0xc0206925 ++ SIOCGIFPDSTADDR = 0xc0206940 ++ SIOCGIFPHYS = 0xc0206935 ++ SIOCGIFPSRCADDR = 0xc020693f ++ SIOCGIFSTATUS = 0xc331693d ++ SIOCGIFVLAN = 0xc020697f ++ SIOCGIFWAKEFLAGS = 0xc0206988 ++ SIOCGLOWAT = 0x40047303 ++ SIOCGPGRP = 0x40047309 ++ SIOCIFCREATE = 0xc0206978 ++ SIOCIFCREATE2 = 0xc020697a ++ SIOCIFDESTROY = 0x80206979 ++ SIOCIFGCLONERS = 0xc0106981 ++ SIOCRSLVMULTI = 0xc010693b ++ SIOCSDRVSPEC = 0x8028697b ++ SIOCSETVLAN = 0x8020697e ++ SIOCSHIWAT = 0x80047300 ++ SIOCSIFADDR = 0x8020690c ++ SIOCSIFALTMTU = 0x80206945 ++ SIOCSIFASYNCMAP = 0x8020697d ++ SIOCSIFBOND = 0x80206946 ++ SIOCSIFBRDADDR = 0x80206913 ++ SIOCSIFCAP = 0x8020695a ++ SIOCSIFDSTADDR = 0x8020690e ++ SIOCSIFFLAGS = 0x80206910 ++ SIOCSIFGENERIC = 0x80206939 ++ SIOCSIFKPI = 0x80206986 ++ SIOCSIFLLADDR = 0x8020693c ++ SIOCSIFMAC = 0x80206983 ++ SIOCSIFMEDIA = 0xc0206937 ++ SIOCSIFMETRIC = 0x80206918 ++ SIOCSIFMTU = 0x80206934 ++ SIOCSIFNETMASK = 0x80206916 ++ SIOCSIFPHYADDR = 0x8040693e ++ SIOCSIFPHYS = 0x80206936 ++ SIOCSIFVLAN = 0x8020697e ++ SIOCSLOWAT = 0x80047302 ++ SIOCSPGRP = 0x80047308 ++ SOCK_DGRAM = 0x2 ++ SOCK_MAXADDRLEN = 0xff ++ SOCK_RAW = 0x3 ++ SOCK_RDM = 0x4 ++ SOCK_SEQPACKET = 0x5 ++ SOCK_STREAM = 0x1 ++ SOL_SOCKET = 0xffff ++ SOMAXCONN = 0x80 ++ SO_ACCEPTCONN = 0x2 ++ SO_BROADCAST = 0x20 ++ SO_DEBUG = 0x1 ++ SO_DONTROUTE = 0x10 ++ SO_DONTTRUNC = 0x2000 ++ SO_ERROR = 0x1007 ++ SO_KEEPALIVE = 0x8 ++ SO_LABEL = 0x1010 ++ SO_LINGER = 0x80 ++ SO_LINGER_SEC = 0x1080 ++ SO_NKE = 0x1021 ++ SO_NOADDRERR = 0x1023 ++ SO_NOSIGPIPE = 0x1022 ++ SO_NOTIFYCONFLICT = 0x1026 ++ SO_NP_EXTENSIONS = 0x1083 ++ SO_NREAD = 0x1020 ++ SO_NUMRCVPKT = 0x1112 ++ SO_NWRITE = 0x1024 ++ SO_OOBINLINE = 0x100 ++ SO_PEERLABEL = 0x1011 ++ SO_RANDOMPORT = 0x1082 ++ SO_RCVBUF = 0x1002 ++ SO_RCVLOWAT = 0x1004 ++ SO_RCVTIMEO = 0x1006 ++ SO_REUSEADDR = 0x4 ++ SO_REUSEPORT = 0x200 ++ SO_REUSESHAREUID = 0x1025 ++ SO_SNDBUF = 0x1001 ++ SO_SNDLOWAT = 0x1003 ++ SO_SNDTIMEO = 0x1005 ++ SO_TIMESTAMP = 0x400 ++ SO_TIMESTAMP_MONOTONIC = 0x800 ++ SO_TYPE = 0x1008 ++ SO_UPCALLCLOSEWAIT = 0x1027 ++ SO_USELOOPBACK = 0x40 ++ SO_WANTMORE = 0x4000 ++ SO_WANTOOBFLAG = 0x8000 ++ S_IEXEC = 0x40 ++ S_IFBLK = 0x6000 ++ S_IFCHR = 0x2000 ++ S_IFDIR = 0x4000 ++ S_IFIFO = 0x1000 ++ S_IFLNK = 0xa000 ++ S_IFMT = 0xf000 ++ S_IFREG = 0x8000 ++ S_IFSOCK = 0xc000 ++ S_IFWHT = 0xe000 ++ S_IREAD = 0x100 ++ S_IRGRP = 0x20 ++ S_IROTH = 0x4 ++ S_IRUSR = 0x100 ++ S_IRWXG = 0x38 ++ S_IRWXO = 0x7 ++ S_IRWXU = 0x1c0 ++ S_ISGID = 0x400 ++ S_ISTXT = 0x200 ++ S_ISUID = 0x800 ++ S_ISVTX = 0x200 ++ S_IWGRP = 0x10 ++ S_IWOTH = 0x2 ++ S_IWRITE = 0x80 ++ S_IWUSR = 0x80 ++ S_IXGRP = 0x8 ++ S_IXOTH = 0x1 ++ S_IXUSR = 0x40 ++ TCIFLUSH = 0x1 ++ TCIOFLUSH = 0x3 ++ TCOFLUSH = 0x2 ++ TCP_CONNECTIONTIMEOUT = 0x20 ++ TCP_ENABLE_ECN = 0x104 ++ TCP_KEEPALIVE = 0x10 ++ TCP_KEEPCNT = 0x102 ++ TCP_KEEPINTVL = 0x101 ++ TCP_MAXHLEN = 0x3c ++ TCP_MAXOLEN = 0x28 ++ TCP_MAXSEG = 0x2 ++ TCP_MAXWIN = 0xffff ++ TCP_MAX_SACK = 0x4 ++ TCP_MAX_WINSHIFT = 0xe ++ TCP_MINMSS = 0xd8 ++ TCP_MSS = 0x200 ++ TCP_NODELAY = 0x1 ++ TCP_NOOPT = 0x8 ++ TCP_NOPUSH = 0x4 ++ TCP_NOTSENT_LOWAT = 0x201 ++ TCP_RXT_CONNDROPTIME = 0x80 ++ TCP_RXT_FINDROP = 0x100 ++ TCP_SENDMOREACKS = 0x103 ++ TCSAFLUSH = 0x2 ++ TIOCCBRK = 0x2000747a ++ TIOCCDTR = 0x20007478 ++ TIOCCONS = 0x80047462 ++ TIOCDCDTIMESTAMP = 0x40107458 ++ TIOCDRAIN = 0x2000745e ++ TIOCDSIMICROCODE = 0x20007455 ++ TIOCEXCL = 0x2000740d ++ TIOCEXT = 0x80047460 ++ TIOCFLUSH = 0x80047410 ++ TIOCGDRAINWAIT = 0x40047456 ++ TIOCGETA = 0x40487413 ++ TIOCGETD = 0x4004741a ++ TIOCGPGRP = 0x40047477 ++ TIOCGWINSZ = 0x40087468 ++ TIOCIXOFF = 0x20007480 ++ TIOCIXON = 0x20007481 ++ TIOCMBIC = 0x8004746b ++ TIOCMBIS = 0x8004746c ++ TIOCMGDTRWAIT = 0x4004745a ++ TIOCMGET = 0x4004746a ++ TIOCMODG = 0x40047403 ++ TIOCMODS = 0x80047404 ++ TIOCMSDTRWAIT = 0x8004745b ++ TIOCMSET = 0x8004746d ++ TIOCM_CAR = 0x40 ++ TIOCM_CD = 0x40 ++ TIOCM_CTS = 0x20 ++ TIOCM_DSR = 0x100 ++ TIOCM_DTR = 0x2 ++ TIOCM_LE = 0x1 ++ TIOCM_RI = 0x80 ++ TIOCM_RNG = 0x80 ++ TIOCM_RTS = 0x4 ++ TIOCM_SR = 0x10 ++ TIOCM_ST = 0x8 ++ TIOCNOTTY = 0x20007471 ++ TIOCNXCL = 0x2000740e ++ TIOCOUTQ = 0x40047473 ++ TIOCPKT = 0x80047470 ++ TIOCPKT_DATA = 0x0 ++ TIOCPKT_DOSTOP = 0x20 ++ TIOCPKT_FLUSHREAD = 0x1 ++ TIOCPKT_FLUSHWRITE = 0x2 ++ TIOCPKT_IOCTL = 0x40 ++ TIOCPKT_NOSTOP = 0x10 ++ TIOCPKT_START = 0x8 ++ TIOCPKT_STOP = 0x4 ++ TIOCPTYGNAME = 0x40807453 ++ TIOCPTYGRANT = 0x20007454 ++ TIOCPTYUNLK = 0x20007452 ++ TIOCREMOTE = 0x80047469 ++ TIOCSBRK = 0x2000747b ++ TIOCSCONS = 0x20007463 ++ TIOCSCTTY = 0x20007461 ++ TIOCSDRAINWAIT = 0x80047457 ++ TIOCSDTR = 0x20007479 ++ TIOCSETA = 0x80487414 ++ TIOCSETAF = 0x80487416 ++ TIOCSETAW = 0x80487415 ++ TIOCSETD = 0x8004741b ++ TIOCSIG = 0x2000745f ++ TIOCSPGRP = 0x80047476 ++ TIOCSTART = 0x2000746e ++ TIOCSTAT = 0x20007465 ++ TIOCSTI = 0x80017472 ++ TIOCSTOP = 0x2000746f ++ TIOCSWINSZ = 0x80087467 ++ TIOCTIMESTAMP = 0x40107459 ++ TIOCUCNTL = 0x80047466 ++ TOSTOP = 0x400000 ++ VDISCARD = 0xf ++ VDSUSP = 0xb ++ VEOF = 0x0 ++ VEOL = 0x1 ++ VEOL2 = 0x2 ++ VERASE = 0x3 ++ VINTR = 0x8 ++ VKILL = 0x5 ++ VLNEXT = 0xe ++ VMIN = 0x10 ++ VQUIT = 0x9 ++ VREPRINT = 0x6 ++ VSTART = 0xc ++ VSTATUS = 0x12 ++ VSTOP = 0xd ++ VSUSP = 0xa ++ VT0 = 0x0 ++ VT1 = 0x10000 ++ VTDLY = 0x10000 ++ VTIME = 0x11 ++ VWERASE = 0x4 ++ WCONTINUED = 0x10 ++ WCOREFLAG = 0x80 ++ WEXITED = 0x4 ++ WNOHANG = 0x1 ++ WNOWAIT = 0x20 ++ WORDSIZE = 0x40 ++ WSTOPPED = 0x8 ++ WUNTRACED = 0x2 ++) ++ ++// Errors ++const ( ++ E2BIG = syscall.Errno(0x7) ++ EACCES = syscall.Errno(0xd) ++ EADDRINUSE = syscall.Errno(0x30) ++ EADDRNOTAVAIL = syscall.Errno(0x31) ++ EAFNOSUPPORT = syscall.Errno(0x2f) ++ EAGAIN = syscall.Errno(0x23) ++ EALREADY = syscall.Errno(0x25) ++ EAUTH = syscall.Errno(0x50) ++ EBADARCH = syscall.Errno(0x56) ++ EBADEXEC = syscall.Errno(0x55) ++ EBADF = syscall.Errno(0x9) ++ EBADMACHO = syscall.Errno(0x58) ++ EBADMSG = syscall.Errno(0x5e) ++ EBADRPC = syscall.Errno(0x48) ++ EBUSY = syscall.Errno(0x10) ++ ECANCELED = syscall.Errno(0x59) ++ ECHILD = syscall.Errno(0xa) ++ ECONNABORTED = syscall.Errno(0x35) ++ ECONNREFUSED = syscall.Errno(0x3d) ++ ECONNRESET = syscall.Errno(0x36) ++ EDEADLK = syscall.Errno(0xb) ++ EDESTADDRREQ = syscall.Errno(0x27) ++ EDEVERR = syscall.Errno(0x53) ++ EDOM = syscall.Errno(0x21) ++ EDQUOT = syscall.Errno(0x45) ++ EEXIST = syscall.Errno(0x11) ++ EFAULT = syscall.Errno(0xe) ++ EFBIG = syscall.Errno(0x1b) ++ EFTYPE = syscall.Errno(0x4f) ++ EHOSTDOWN = syscall.Errno(0x40) ++ EHOSTUNREACH = syscall.Errno(0x41) ++ EIDRM = syscall.Errno(0x5a) ++ EILSEQ = syscall.Errno(0x5c) ++ EINPROGRESS = syscall.Errno(0x24) ++ EINTR = syscall.Errno(0x4) ++ EINVAL = syscall.Errno(0x16) ++ EIO = syscall.Errno(0x5) ++ EISCONN = syscall.Errno(0x38) ++ EISDIR = syscall.Errno(0x15) ++ ELAST = syscall.Errno(0x6a) ++ ELOOP = syscall.Errno(0x3e) ++ EMFILE = syscall.Errno(0x18) ++ EMLINK = syscall.Errno(0x1f) ++ EMSGSIZE = syscall.Errno(0x28) ++ EMULTIHOP = syscall.Errno(0x5f) ++ ENAMETOOLONG = syscall.Errno(0x3f) ++ ENEEDAUTH = syscall.Errno(0x51) ++ ENETDOWN = syscall.Errno(0x32) ++ ENETRESET = syscall.Errno(0x34) ++ ENETUNREACH = syscall.Errno(0x33) ++ ENFILE = syscall.Errno(0x17) ++ ENOATTR = syscall.Errno(0x5d) ++ ENOBUFS = syscall.Errno(0x37) ++ ENODATA = syscall.Errno(0x60) ++ ENODEV = syscall.Errno(0x13) ++ ENOENT = syscall.Errno(0x2) ++ ENOEXEC = syscall.Errno(0x8) ++ ENOLCK = syscall.Errno(0x4d) ++ ENOLINK = syscall.Errno(0x61) ++ ENOMEM = syscall.Errno(0xc) ++ ENOMSG = syscall.Errno(0x5b) ++ ENOPOLICY = syscall.Errno(0x67) ++ ENOPROTOOPT = syscall.Errno(0x2a) ++ ENOSPC = syscall.Errno(0x1c) ++ ENOSR = syscall.Errno(0x62) ++ ENOSTR = syscall.Errno(0x63) ++ ENOSYS = syscall.Errno(0x4e) ++ ENOTBLK = syscall.Errno(0xf) ++ ENOTCONN = syscall.Errno(0x39) ++ ENOTDIR = syscall.Errno(0x14) ++ ENOTEMPTY = syscall.Errno(0x42) ++ ENOTRECOVERABLE = syscall.Errno(0x68) ++ ENOTSOCK = syscall.Errno(0x26) ++ ENOTSUP = syscall.Errno(0x2d) ++ ENOTTY = syscall.Errno(0x19) ++ ENXIO = syscall.Errno(0x6) ++ EOPNOTSUPP = syscall.Errno(0x66) ++ EOVERFLOW = syscall.Errno(0x54) ++ EOWNERDEAD = syscall.Errno(0x69) ++ EPERM = syscall.Errno(0x1) ++ EPFNOSUPPORT = syscall.Errno(0x2e) ++ EPIPE = syscall.Errno(0x20) ++ EPROCLIM = syscall.Errno(0x43) ++ EPROCUNAVAIL = syscall.Errno(0x4c) ++ EPROGMISMATCH = syscall.Errno(0x4b) ++ EPROGUNAVAIL = syscall.Errno(0x4a) ++ EPROTO = syscall.Errno(0x64) ++ EPROTONOSUPPORT = syscall.Errno(0x2b) ++ EPROTOTYPE = syscall.Errno(0x29) ++ EPWROFF = syscall.Errno(0x52) ++ EQFULL = syscall.Errno(0x6a) ++ ERANGE = syscall.Errno(0x22) ++ EREMOTE = syscall.Errno(0x47) ++ EROFS = syscall.Errno(0x1e) ++ ERPCMISMATCH = syscall.Errno(0x49) ++ ESHLIBVERS = syscall.Errno(0x57) ++ ESHUTDOWN = syscall.Errno(0x3a) ++ ESOCKTNOSUPPORT = syscall.Errno(0x2c) ++ ESPIPE = syscall.Errno(0x1d) ++ ESRCH = syscall.Errno(0x3) ++ ESTALE = syscall.Errno(0x46) ++ ETIME = syscall.Errno(0x65) ++ ETIMEDOUT = syscall.Errno(0x3c) ++ ETOOMANYREFS = syscall.Errno(0x3b) ++ ETXTBSY = syscall.Errno(0x1a) ++ EUSERS = syscall.Errno(0x44) ++ EWOULDBLOCK = syscall.Errno(0x23) ++ EXDEV = syscall.Errno(0x12) ++) ++ ++// Signals ++const ( ++ SIGABRT = syscall.Signal(0x6) ++ SIGALRM = syscall.Signal(0xe) ++ SIGBUS = syscall.Signal(0xa) ++ SIGCHLD = syscall.Signal(0x14) ++ SIGCONT = syscall.Signal(0x13) ++ SIGEMT = syscall.Signal(0x7) ++ SIGFPE = syscall.Signal(0x8) ++ SIGHUP = syscall.Signal(0x1) ++ SIGILL = syscall.Signal(0x4) ++ SIGINFO = syscall.Signal(0x1d) ++ SIGINT = syscall.Signal(0x2) ++ SIGIO = syscall.Signal(0x17) ++ SIGIOT = syscall.Signal(0x6) ++ SIGKILL = syscall.Signal(0x9) ++ SIGPIPE = syscall.Signal(0xd) ++ SIGPROF = syscall.Signal(0x1b) ++ SIGQUIT = syscall.Signal(0x3) ++ SIGSEGV = syscall.Signal(0xb) ++ SIGSTOP = syscall.Signal(0x11) ++ SIGSYS = syscall.Signal(0xc) ++ SIGTERM = syscall.Signal(0xf) ++ SIGTRAP = syscall.Signal(0x5) ++ SIGTSTP = syscall.Signal(0x12) ++ SIGTTIN = syscall.Signal(0x15) ++ SIGTTOU = syscall.Signal(0x16) ++ SIGURG = syscall.Signal(0x10) ++ SIGUSR1 = syscall.Signal(0x1e) ++ SIGUSR2 = syscall.Signal(0x1f) ++ SIGVTALRM = syscall.Signal(0x1a) ++ SIGWINCH = syscall.Signal(0x1c) ++ SIGXCPU = syscall.Signal(0x18) ++ SIGXFSZ = syscall.Signal(0x19) ++) ++ ++// Error table ++var errors = [...]string{ ++ 1: "operation not permitted", ++ 2: "no such file or directory", ++ 3: "no such process", ++ 4: "interrupted system call", ++ 5: "input/output error", ++ 6: "device not configured", ++ 7: "argument list too long", ++ 8: "exec format error", ++ 9: "bad file descriptor", ++ 10: "no child processes", ++ 11: "resource deadlock avoided", ++ 12: "cannot allocate memory", ++ 13: "permission denied", ++ 14: "bad address", ++ 15: "block device required", ++ 16: "resource busy", ++ 17: "file exists", ++ 18: "cross-device link", ++ 19: "operation not supported by device", ++ 20: "not a directory", ++ 21: "is a directory", ++ 22: "invalid argument", ++ 23: "too many open files in system", ++ 24: "too many open files", ++ 25: "inappropriate ioctl for device", ++ 26: "text file busy", ++ 27: "file too large", ++ 28: "no space left on device", ++ 29: "illegal seek", ++ 30: "read-only file system", ++ 31: "too many links", ++ 32: "broken pipe", ++ 33: "numerical argument out of domain", ++ 34: "result too large", ++ 35: "resource temporarily unavailable", ++ 36: "operation now in progress", ++ 37: "operation already in progress", ++ 38: "socket operation on non-socket", ++ 39: "destination address required", ++ 40: "message too long", ++ 41: "protocol wrong type for socket", ++ 42: "protocol not available", ++ 43: "protocol not supported", ++ 44: "socket type not supported", ++ 45: "operation not supported", ++ 46: "protocol family not supported", ++ 47: "address family not supported by protocol family", ++ 48: "address already in use", ++ 49: "can't assign requested address", ++ 50: "network is down", ++ 51: "network is unreachable", ++ 52: "network dropped connection on reset", ++ 53: "software caused connection abort", ++ 54: "connection reset by peer", ++ 55: "no buffer space available", ++ 56: "socket is already connected", ++ 57: "socket is not connected", ++ 58: "can't send after socket shutdown", ++ 59: "too many references: can't splice", ++ 60: "operation timed out", ++ 61: "connection refused", ++ 62: "too many levels of symbolic links", ++ 63: "file name too long", ++ 64: "host is down", ++ 65: "no route to host", ++ 66: "directory not empty", ++ 67: "too many processes", ++ 68: "too many users", ++ 69: "disc quota exceeded", ++ 70: "stale NFS file handle", ++ 71: "too many levels of remote in path", ++ 72: "RPC struct is bad", ++ 73: "RPC version wrong", ++ 74: "RPC prog. not avail", ++ 75: "program version wrong", ++ 76: "bad procedure for program", ++ 77: "no locks available", ++ 78: "function not implemented", ++ 79: "inappropriate file type or format", ++ 80: "authentication error", ++ 81: "need authenticator", ++ 82: "device power is off", ++ 83: "device error", ++ 84: "value too large to be stored in data type", ++ 85: "bad executable (or shared library)", ++ 86: "bad CPU type in executable", ++ 87: "shared library version mismatch", ++ 88: "malformed Mach-o file", ++ 89: "operation canceled", ++ 90: "identifier removed", ++ 91: "no message of desired type", ++ 92: "illegal byte sequence", ++ 93: "attribute not found", ++ 94: "bad message", ++ 95: "EMULTIHOP (Reserved)", ++ 96: "no message available on STREAM", ++ 97: "ENOLINK (Reserved)", ++ 98: "no STREAM resources", ++ 99: "not a STREAM", ++ 100: "protocol error", ++ 101: "STREAM ioctl timeout", ++ 102: "operation not supported on socket", ++ 103: "policy not found", ++ 104: "state not recoverable", ++ 105: "previous owner died", ++ 106: "interface output queue is full", ++} ++ ++// Signal table ++var signals = [...]string{ ++ 1: "hangup", ++ 2: "interrupt", ++ 3: "quit", ++ 4: "illegal instruction", ++ 5: "trace/BPT trap", ++ 6: "abort trap", ++ 7: "EMT trap", ++ 8: "floating point exception", ++ 9: "killed", ++ 10: "bus error", ++ 11: "segmentation fault", ++ 12: "bad system call", ++ 13: "broken pipe", ++ 14: "alarm clock", ++ 15: "terminated", ++ 16: "urgent I/O condition", ++ 17: "suspended (signal)", ++ 18: "suspended", ++ 19: "continued", ++ 20: "child exited", ++ 21: "stopped (tty input)", ++ 22: "stopped (tty output)", ++ 23: "I/O possible", ++ 24: "cputime limit exceeded", ++ 25: "filesize limit exceeded", ++ 26: "virtual timer expired", ++ 27: "profiling timer expired", ++ 28: "window size changes", ++ 29: "information request", ++ 30: "user defined signal 1", ++ 31: "user defined signal 2", ++} +diff --git a/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go +new file mode 100644 +index 0000000..0feceee +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go +@@ -0,0 +1,1530 @@ ++// mkerrors.sh -m64 ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build amd64,dragonfly ++ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- -m64 _const.go ++ ++package unix ++ ++import "syscall" ++ ++const ( ++ AF_APPLETALK = 0x10 ++ AF_ATM = 0x1e ++ AF_BLUETOOTH = 0x21 ++ AF_CCITT = 0xa ++ AF_CHAOS = 0x5 ++ AF_CNT = 0x15 ++ AF_COIP = 0x14 ++ AF_DATAKIT = 0x9 ++ AF_DECnet = 0xc ++ AF_DLI = 0xd ++ AF_E164 = 0x1a ++ AF_ECMA = 0x8 ++ AF_HYLINK = 0xf ++ AF_IEEE80211 = 0x23 ++ AF_IMPLINK = 0x3 ++ AF_INET = 0x2 ++ AF_INET6 = 0x1c ++ AF_IPX = 0x17 ++ AF_ISDN = 0x1a ++ AF_ISO = 0x7 ++ AF_LAT = 0xe ++ AF_LINK = 0x12 ++ AF_LOCAL = 0x1 ++ AF_MAX = 0x24 ++ AF_MPLS = 0x22 ++ AF_NATM = 0x1d ++ AF_NETGRAPH = 0x20 ++ AF_NS = 0x6 ++ AF_OSI = 0x7 ++ AF_PUP = 0x4 ++ AF_ROUTE = 0x11 ++ AF_SIP = 0x18 ++ AF_SNA = 0xb ++ AF_UNIX = 0x1 ++ AF_UNSPEC = 0x0 ++ B0 = 0x0 ++ B110 = 0x6e ++ B115200 = 0x1c200 ++ B1200 = 0x4b0 ++ B134 = 0x86 ++ B14400 = 0x3840 ++ B150 = 0x96 ++ B1800 = 0x708 ++ B19200 = 0x4b00 ++ B200 = 0xc8 ++ B230400 = 0x38400 ++ B2400 = 0x960 ++ B28800 = 0x7080 ++ B300 = 0x12c ++ B38400 = 0x9600 ++ B4800 = 0x12c0 ++ B50 = 0x32 ++ B57600 = 0xe100 ++ B600 = 0x258 ++ B7200 = 0x1c20 ++ B75 = 0x4b ++ B76800 = 0x12c00 ++ B9600 = 0x2580 ++ BIOCFLUSH = 0x20004268 ++ BIOCGBLEN = 0x40044266 ++ BIOCGDLT = 0x4004426a ++ BIOCGDLTLIST = 0xc0104279 ++ BIOCGETIF = 0x4020426b ++ BIOCGHDRCMPLT = 0x40044274 ++ BIOCGRSIG = 0x40044272 ++ BIOCGRTIMEOUT = 0x4010426e ++ BIOCGSEESENT = 0x40044276 ++ BIOCGSTATS = 0x4008426f ++ BIOCIMMEDIATE = 0x80044270 ++ BIOCLOCK = 0x2000427a ++ BIOCPROMISC = 0x20004269 ++ BIOCSBLEN = 0xc0044266 ++ BIOCSDLT = 0x80044278 ++ BIOCSETF = 0x80104267 ++ BIOCSETIF = 0x8020426c ++ BIOCSETWF = 0x8010427b ++ BIOCSHDRCMPLT = 0x80044275 ++ BIOCSRSIG = 0x80044273 ++ BIOCSRTIMEOUT = 0x8010426d ++ BIOCSSEESENT = 0x80044277 ++ BIOCVERSION = 0x40044271 ++ BPF_A = 0x10 ++ BPF_ABS = 0x20 ++ BPF_ADD = 0x0 ++ BPF_ALIGNMENT = 0x8 ++ BPF_ALU = 0x4 ++ BPF_AND = 0x50 ++ BPF_B = 0x10 ++ BPF_DEFAULTBUFSIZE = 0x1000 ++ BPF_DIV = 0x30 ++ BPF_H = 0x8 ++ BPF_IMM = 0x0 ++ BPF_IND = 0x40 ++ BPF_JA = 0x0 ++ BPF_JEQ = 0x10 ++ BPF_JGE = 0x30 ++ BPF_JGT = 0x20 ++ BPF_JMP = 0x5 ++ BPF_JSET = 0x40 ++ BPF_K = 0x0 ++ BPF_LD = 0x0 ++ BPF_LDX = 0x1 ++ BPF_LEN = 0x80 ++ BPF_LSH = 0x60 ++ BPF_MAJOR_VERSION = 0x1 ++ BPF_MAXBUFSIZE = 0x80000 ++ BPF_MAXINSNS = 0x200 ++ BPF_MAX_CLONES = 0x80 ++ BPF_MEM = 0x60 ++ BPF_MEMWORDS = 0x10 ++ BPF_MINBUFSIZE = 0x20 ++ BPF_MINOR_VERSION = 0x1 ++ BPF_MISC = 0x7 ++ BPF_MSH = 0xa0 ++ BPF_MUL = 0x20 ++ BPF_NEG = 0x80 ++ BPF_OR = 0x40 ++ BPF_RELEASE = 0x30bb6 ++ BPF_RET = 0x6 ++ BPF_RSH = 0x70 ++ BPF_ST = 0x2 ++ BPF_STX = 0x3 ++ BPF_SUB = 0x10 ++ BPF_TAX = 0x0 ++ BPF_TXA = 0x80 ++ BPF_W = 0x0 ++ BPF_X = 0x8 ++ BRKINT = 0x2 ++ CFLUSH = 0xf ++ CLOCAL = 0x8000 ++ CREAD = 0x800 ++ CS5 = 0x0 ++ CS6 = 0x100 ++ CS7 = 0x200 ++ CS8 = 0x300 ++ CSIZE = 0x300 ++ CSTART = 0x11 ++ CSTATUS = 0x14 ++ CSTOP = 0x13 ++ CSTOPB = 0x400 ++ CSUSP = 0x1a ++ CTL_MAXNAME = 0xc ++ CTL_NET = 0x4 ++ DLT_A429 = 0xb8 ++ DLT_A653_ICM = 0xb9 ++ DLT_AIRONET_HEADER = 0x78 ++ DLT_APPLE_IP_OVER_IEEE1394 = 0x8a ++ DLT_ARCNET = 0x7 ++ DLT_ARCNET_LINUX = 0x81 ++ DLT_ATM_CLIP = 0x13 ++ DLT_ATM_RFC1483 = 0xb ++ DLT_AURORA = 0x7e ++ DLT_AX25 = 0x3 ++ DLT_AX25_KISS = 0xca ++ DLT_BACNET_MS_TP = 0xa5 ++ DLT_BLUETOOTH_HCI_H4 = 0xbb ++ DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 ++ DLT_CAN20B = 0xbe ++ DLT_CHAOS = 0x5 ++ DLT_CHDLC = 0x68 ++ DLT_CISCO_IOS = 0x76 ++ DLT_C_HDLC = 0x68 ++ DLT_C_HDLC_WITH_DIR = 0xcd ++ DLT_DOCSIS = 0x8f ++ DLT_ECONET = 0x73 ++ DLT_EN10MB = 0x1 ++ DLT_EN3MB = 0x2 ++ DLT_ENC = 0x6d ++ DLT_ERF = 0xc5 ++ DLT_ERF_ETH = 0xaf ++ DLT_ERF_POS = 0xb0 ++ DLT_FDDI = 0xa ++ DLT_FLEXRAY = 0xd2 ++ DLT_FRELAY = 0x6b ++ DLT_FRELAY_WITH_DIR = 0xce ++ DLT_GCOM_SERIAL = 0xad ++ DLT_GCOM_T1E1 = 0xac ++ DLT_GPF_F = 0xab ++ DLT_GPF_T = 0xaa ++ DLT_GPRS_LLC = 0xa9 ++ DLT_HHDLC = 0x79 ++ DLT_IBM_SN = 0x92 ++ DLT_IBM_SP = 0x91 ++ DLT_IEEE802 = 0x6 ++ DLT_IEEE802_11 = 0x69 ++ DLT_IEEE802_11_RADIO = 0x7f ++ DLT_IEEE802_11_RADIO_AVS = 0xa3 ++ DLT_IEEE802_15_4 = 0xc3 ++ DLT_IEEE802_15_4_LINUX = 0xbf ++ DLT_IEEE802_15_4_NONASK_PHY = 0xd7 ++ DLT_IEEE802_16_MAC_CPS = 0xbc ++ DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 ++ DLT_IPFILTER = 0x74 ++ DLT_IPMB = 0xc7 ++ DLT_IPMB_LINUX = 0xd1 ++ DLT_IP_OVER_FC = 0x7a ++ DLT_JUNIPER_ATM1 = 0x89 ++ DLT_JUNIPER_ATM2 = 0x87 ++ DLT_JUNIPER_CHDLC = 0xb5 ++ DLT_JUNIPER_ES = 0x84 ++ DLT_JUNIPER_ETHER = 0xb2 ++ DLT_JUNIPER_FRELAY = 0xb4 ++ DLT_JUNIPER_GGSN = 0x85 ++ DLT_JUNIPER_ISM = 0xc2 ++ DLT_JUNIPER_MFR = 0x86 ++ DLT_JUNIPER_MLFR = 0x83 ++ DLT_JUNIPER_MLPPP = 0x82 ++ DLT_JUNIPER_MONITOR = 0xa4 ++ DLT_JUNIPER_PIC_PEER = 0xae ++ DLT_JUNIPER_PPP = 0xb3 ++ DLT_JUNIPER_PPPOE = 0xa7 ++ DLT_JUNIPER_PPPOE_ATM = 0xa8 ++ DLT_JUNIPER_SERVICES = 0x88 ++ DLT_JUNIPER_ST = 0xc8 ++ DLT_JUNIPER_VP = 0xb7 ++ DLT_LAPB_WITH_DIR = 0xcf ++ DLT_LAPD = 0xcb ++ DLT_LIN = 0xd4 ++ DLT_LINUX_IRDA = 0x90 ++ DLT_LINUX_LAPD = 0xb1 ++ DLT_LINUX_SLL = 0x71 ++ DLT_LOOP = 0x6c ++ DLT_LTALK = 0x72 ++ DLT_MFR = 0xb6 ++ DLT_MOST = 0xd3 ++ DLT_MTP2 = 0x8c ++ DLT_MTP2_WITH_PHDR = 0x8b ++ DLT_MTP3 = 0x8d ++ DLT_NULL = 0x0 ++ DLT_PCI_EXP = 0x7d ++ DLT_PFLOG = 0x75 ++ DLT_PFSYNC = 0x12 ++ DLT_PPI = 0xc0 ++ DLT_PPP = 0x9 ++ DLT_PPP_BSDOS = 0x10 ++ DLT_PPP_ETHER = 0x33 ++ DLT_PPP_PPPD = 0xa6 ++ DLT_PPP_SERIAL = 0x32 ++ DLT_PPP_WITH_DIR = 0xcc ++ DLT_PRISM_HEADER = 0x77 ++ DLT_PRONET = 0x4 ++ DLT_RAIF1 = 0xc6 ++ DLT_RAW = 0xc ++ DLT_REDBACK_SMARTEDGE = 0x20 ++ DLT_RIO = 0x7c ++ DLT_SCCP = 0x8e ++ DLT_SITA = 0xc4 ++ DLT_SLIP = 0x8 ++ DLT_SLIP_BSDOS = 0xf ++ DLT_SUNATM = 0x7b ++ DLT_SYMANTEC_FIREWALL = 0x63 ++ DLT_TZSP = 0x80 ++ DLT_USB = 0xba ++ DLT_USB_LINUX = 0xbd ++ DLT_X2E_SERIAL = 0xd5 ++ DLT_X2E_XORAYA = 0xd6 ++ DT_BLK = 0x6 ++ DT_CHR = 0x2 ++ DT_DBF = 0xf ++ DT_DIR = 0x4 ++ DT_FIFO = 0x1 ++ DT_LNK = 0xa ++ DT_REG = 0x8 ++ DT_SOCK = 0xc ++ DT_UNKNOWN = 0x0 ++ DT_WHT = 0xe ++ ECHO = 0x8 ++ ECHOCTL = 0x40 ++ ECHOE = 0x2 ++ ECHOK = 0x4 ++ ECHOKE = 0x1 ++ ECHONL = 0x10 ++ ECHOPRT = 0x20 ++ EVFILT_AIO = -0x3 ++ EVFILT_EXCEPT = -0x8 ++ EVFILT_MARKER = 0xf ++ EVFILT_PROC = -0x5 ++ EVFILT_READ = -0x1 ++ EVFILT_SIGNAL = -0x6 ++ EVFILT_SYSCOUNT = 0x8 ++ EVFILT_TIMER = -0x7 ++ EVFILT_VNODE = -0x4 ++ EVFILT_WRITE = -0x2 ++ EV_ADD = 0x1 ++ EV_CLEAR = 0x20 ++ EV_DELETE = 0x2 ++ EV_DISABLE = 0x8 ++ EV_ENABLE = 0x4 ++ EV_EOF = 0x8000 ++ EV_ERROR = 0x4000 ++ EV_FLAG1 = 0x2000 ++ EV_NODATA = 0x1000 ++ EV_ONESHOT = 0x10 ++ EV_SYSFLAGS = 0xf000 ++ EXTA = 0x4b00 ++ EXTB = 0x9600 ++ EXTEXIT_LWP = 0x10000 ++ EXTEXIT_PROC = 0x0 ++ EXTEXIT_SETINT = 0x1 ++ EXTEXIT_SIMPLE = 0x0 ++ EXTPROC = 0x800 ++ FD_CLOEXEC = 0x1 ++ FD_SETSIZE = 0x400 ++ FLUSHO = 0x800000 ++ F_DUP2FD = 0xa ++ F_DUP2FD_CLOEXEC = 0x12 ++ F_DUPFD = 0x0 ++ F_DUPFD_CLOEXEC = 0x11 ++ F_GETFD = 0x1 ++ F_GETFL = 0x3 ++ F_GETLK = 0x7 ++ F_GETOWN = 0x5 ++ F_OK = 0x0 ++ F_RDLCK = 0x1 ++ F_SETFD = 0x2 ++ F_SETFL = 0x4 ++ F_SETLK = 0x8 ++ F_SETLKW = 0x9 ++ F_SETOWN = 0x6 ++ F_UNLCK = 0x2 ++ F_WRLCK = 0x3 ++ HUPCL = 0x4000 ++ ICANON = 0x100 ++ ICMP6_FILTER = 0x12 ++ ICRNL = 0x100 ++ IEXTEN = 0x400 ++ IFAN_ARRIVAL = 0x0 ++ IFAN_DEPARTURE = 0x1 ++ IFF_ALLMULTI = 0x200 ++ IFF_ALTPHYS = 0x4000 ++ IFF_BROADCAST = 0x2 ++ IFF_CANTCHANGE = 0x118e72 ++ IFF_DEBUG = 0x4 ++ IFF_LINK0 = 0x1000 ++ IFF_LINK1 = 0x2000 ++ IFF_LINK2 = 0x4000 ++ IFF_LOOPBACK = 0x8 ++ IFF_MONITOR = 0x40000 ++ IFF_MULTICAST = 0x8000 ++ IFF_NOARP = 0x80 ++ IFF_NPOLLING = 0x100000 ++ IFF_OACTIVE = 0x400 ++ IFF_OACTIVE_COMPAT = 0x400 ++ IFF_POINTOPOINT = 0x10 ++ IFF_POLLING = 0x10000 ++ IFF_POLLING_COMPAT = 0x10000 ++ IFF_PPROMISC = 0x20000 ++ IFF_PROMISC = 0x100 ++ IFF_RUNNING = 0x40 ++ IFF_SIMPLEX = 0x800 ++ IFF_SMART = 0x20 ++ IFF_STATICARP = 0x80000 ++ IFF_UP = 0x1 ++ IFNAMSIZ = 0x10 ++ IFT_1822 = 0x2 ++ IFT_A12MPPSWITCH = 0x82 ++ IFT_AAL2 = 0xbb ++ IFT_AAL5 = 0x31 ++ IFT_ADSL = 0x5e ++ IFT_AFLANE8023 = 0x3b ++ IFT_AFLANE8025 = 0x3c ++ IFT_ARAP = 0x58 ++ IFT_ARCNET = 0x23 ++ IFT_ARCNETPLUS = 0x24 ++ IFT_ASYNC = 0x54 ++ IFT_ATM = 0x25 ++ IFT_ATMDXI = 0x69 ++ IFT_ATMFUNI = 0x6a ++ IFT_ATMIMA = 0x6b ++ IFT_ATMLOGICAL = 0x50 ++ IFT_ATMRADIO = 0xbd ++ IFT_ATMSUBINTERFACE = 0x86 ++ IFT_ATMVCIENDPT = 0xc2 ++ IFT_ATMVIRTUAL = 0x95 ++ IFT_BGPPOLICYACCOUNTING = 0xa2 ++ IFT_BRIDGE = 0xd1 ++ IFT_BSC = 0x53 ++ IFT_CARP = 0xf8 ++ IFT_CCTEMUL = 0x3d ++ IFT_CEPT = 0x13 ++ IFT_CES = 0x85 ++ IFT_CHANNEL = 0x46 ++ IFT_CNR = 0x55 ++ IFT_COFFEE = 0x84 ++ IFT_COMPOSITELINK = 0x9b ++ IFT_DCN = 0x8d ++ IFT_DIGITALPOWERLINE = 0x8a ++ IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba ++ IFT_DLSW = 0x4a ++ IFT_DOCSCABLEDOWNSTREAM = 0x80 ++ IFT_DOCSCABLEMACLAYER = 0x7f ++ IFT_DOCSCABLEUPSTREAM = 0x81 ++ IFT_DS0 = 0x51 ++ IFT_DS0BUNDLE = 0x52 ++ IFT_DS1FDL = 0xaa ++ IFT_DS3 = 0x1e ++ IFT_DTM = 0x8c ++ IFT_DVBASILN = 0xac ++ IFT_DVBASIOUT = 0xad ++ IFT_DVBRCCDOWNSTREAM = 0x93 ++ IFT_DVBRCCMACLAYER = 0x92 ++ IFT_DVBRCCUPSTREAM = 0x94 ++ IFT_ENC = 0xf4 ++ IFT_EON = 0x19 ++ IFT_EPLRS = 0x57 ++ IFT_ESCON = 0x49 ++ IFT_ETHER = 0x6 ++ IFT_FAITH = 0xf2 ++ IFT_FAST = 0x7d ++ IFT_FASTETHER = 0x3e ++ IFT_FASTETHERFX = 0x45 ++ IFT_FDDI = 0xf ++ IFT_FIBRECHANNEL = 0x38 ++ IFT_FRAMERELAYINTERCONNECT = 0x3a ++ IFT_FRAMERELAYMPI = 0x5c ++ IFT_FRDLCIENDPT = 0xc1 ++ IFT_FRELAY = 0x20 ++ IFT_FRELAYDCE = 0x2c ++ IFT_FRF16MFRBUNDLE = 0xa3 ++ IFT_FRFORWARD = 0x9e ++ IFT_G703AT2MB = 0x43 ++ IFT_G703AT64K = 0x42 ++ IFT_GIF = 0xf0 ++ IFT_GIGABITETHERNET = 0x75 ++ IFT_GR303IDT = 0xb2 ++ IFT_GR303RDT = 0xb1 ++ IFT_H323GATEKEEPER = 0xa4 ++ IFT_H323PROXY = 0xa5 ++ IFT_HDH1822 = 0x3 ++ IFT_HDLC = 0x76 ++ IFT_HDSL2 = 0xa8 ++ IFT_HIPERLAN2 = 0xb7 ++ IFT_HIPPI = 0x2f ++ IFT_HIPPIINTERFACE = 0x39 ++ IFT_HOSTPAD = 0x5a ++ IFT_HSSI = 0x2e ++ IFT_HY = 0xe ++ IFT_IBM370PARCHAN = 0x48 ++ IFT_IDSL = 0x9a ++ IFT_IEEE1394 = 0x90 ++ IFT_IEEE80211 = 0x47 ++ IFT_IEEE80212 = 0x37 ++ IFT_IEEE8023ADLAG = 0xa1 ++ IFT_IFGSN = 0x91 ++ IFT_IMT = 0xbe ++ IFT_INTERLEAVE = 0x7c ++ IFT_IP = 0x7e ++ IFT_IPFORWARD = 0x8e ++ IFT_IPOVERATM = 0x72 ++ IFT_IPOVERCDLC = 0x6d ++ IFT_IPOVERCLAW = 0x6e ++ IFT_IPSWITCH = 0x4e ++ IFT_ISDN = 0x3f ++ IFT_ISDNBASIC = 0x14 ++ IFT_ISDNPRIMARY = 0x15 ++ IFT_ISDNS = 0x4b ++ IFT_ISDNU = 0x4c ++ IFT_ISO88022LLC = 0x29 ++ IFT_ISO88023 = 0x7 ++ IFT_ISO88024 = 0x8 ++ IFT_ISO88025 = 0x9 ++ IFT_ISO88025CRFPINT = 0x62 ++ IFT_ISO88025DTR = 0x56 ++ IFT_ISO88025FIBER = 0x73 ++ IFT_ISO88026 = 0xa ++ IFT_ISUP = 0xb3 ++ IFT_L2VLAN = 0x87 ++ IFT_L3IPVLAN = 0x88 ++ IFT_L3IPXVLAN = 0x89 ++ IFT_LAPB = 0x10 ++ IFT_LAPD = 0x4d ++ IFT_LAPF = 0x77 ++ IFT_LOCALTALK = 0x2a ++ IFT_LOOP = 0x18 ++ IFT_MEDIAMAILOVERIP = 0x8b ++ IFT_MFSIGLINK = 0xa7 ++ IFT_MIOX25 = 0x26 ++ IFT_MODEM = 0x30 ++ IFT_MPC = 0x71 ++ IFT_MPLS = 0xa6 ++ IFT_MPLSTUNNEL = 0x96 ++ IFT_MSDSL = 0x8f ++ IFT_MVL = 0xbf ++ IFT_MYRINET = 0x63 ++ IFT_NFAS = 0xaf ++ IFT_NSIP = 0x1b ++ IFT_OPTICALCHANNEL = 0xc3 ++ IFT_OPTICALTRANSPORT = 0xc4 ++ IFT_OTHER = 0x1 ++ IFT_P10 = 0xc ++ IFT_P80 = 0xd ++ IFT_PARA = 0x22 ++ IFT_PFLOG = 0xf5 ++ IFT_PFSYNC = 0xf6 ++ IFT_PLC = 0xae ++ IFT_POS = 0xab ++ IFT_PPP = 0x17 ++ IFT_PPPMULTILINKBUNDLE = 0x6c ++ IFT_PROPBWAP2MP = 0xb8 ++ IFT_PROPCNLS = 0x59 ++ IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 ++ IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 ++ IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 ++ IFT_PROPMUX = 0x36 ++ IFT_PROPVIRTUAL = 0x35 ++ IFT_PROPWIRELESSP2P = 0x9d ++ IFT_PTPSERIAL = 0x16 ++ IFT_PVC = 0xf1 ++ IFT_QLLC = 0x44 ++ IFT_RADIOMAC = 0xbc ++ IFT_RADSL = 0x5f ++ IFT_REACHDSL = 0xc0 ++ IFT_RFC1483 = 0x9f ++ IFT_RS232 = 0x21 ++ IFT_RSRB = 0x4f ++ IFT_SDLC = 0x11 ++ IFT_SDSL = 0x60 ++ IFT_SHDSL = 0xa9 ++ IFT_SIP = 0x1f ++ IFT_SLIP = 0x1c ++ IFT_SMDSDXI = 0x2b ++ IFT_SMDSICIP = 0x34 ++ IFT_SONET = 0x27 ++ IFT_SONETOVERHEADCHANNEL = 0xb9 ++ IFT_SONETPATH = 0x32 ++ IFT_SONETVT = 0x33 ++ IFT_SRP = 0x97 ++ IFT_SS7SIGLINK = 0x9c ++ IFT_STACKTOSTACK = 0x6f ++ IFT_STARLAN = 0xb ++ IFT_STF = 0xf3 ++ IFT_T1 = 0x12 ++ IFT_TDLC = 0x74 ++ IFT_TERMPAD = 0x5b ++ IFT_TR008 = 0xb0 ++ IFT_TRANSPHDLC = 0x7b ++ IFT_TUNNEL = 0x83 ++ IFT_ULTRA = 0x1d ++ IFT_USB = 0xa0 ++ IFT_V11 = 0x40 ++ IFT_V35 = 0x2d ++ IFT_V36 = 0x41 ++ IFT_V37 = 0x78 ++ IFT_VDSL = 0x61 ++ IFT_VIRTUALIPADDRESS = 0x70 ++ IFT_VOICEEM = 0x64 ++ IFT_VOICEENCAP = 0x67 ++ IFT_VOICEFXO = 0x65 ++ IFT_VOICEFXS = 0x66 ++ IFT_VOICEOVERATM = 0x98 ++ IFT_VOICEOVERFRAMERELAY = 0x99 ++ IFT_VOICEOVERIP = 0x68 ++ IFT_X213 = 0x5d ++ IFT_X25 = 0x5 ++ IFT_X25DDN = 0x4 ++ IFT_X25HUNTGROUP = 0x7a ++ IFT_X25MLP = 0x79 ++ IFT_X25PLE = 0x28 ++ IFT_XETHER = 0x1a ++ IGNBRK = 0x1 ++ IGNCR = 0x80 ++ IGNPAR = 0x4 ++ IMAXBEL = 0x2000 ++ INLCR = 0x40 ++ INPCK = 0x10 ++ IN_CLASSA_HOST = 0xffffff ++ IN_CLASSA_MAX = 0x80 ++ IN_CLASSA_NET = 0xff000000 ++ IN_CLASSA_NSHIFT = 0x18 ++ IN_CLASSB_HOST = 0xffff ++ IN_CLASSB_MAX = 0x10000 ++ IN_CLASSB_NET = 0xffff0000 ++ IN_CLASSB_NSHIFT = 0x10 ++ IN_CLASSC_HOST = 0xff ++ IN_CLASSC_NET = 0xffffff00 ++ IN_CLASSC_NSHIFT = 0x8 ++ IN_CLASSD_HOST = 0xfffffff ++ IN_CLASSD_NET = 0xf0000000 ++ IN_CLASSD_NSHIFT = 0x1c ++ IN_LOOPBACKNET = 0x7f ++ IPPROTO_3PC = 0x22 ++ IPPROTO_ADFS = 0x44 ++ IPPROTO_AH = 0x33 ++ IPPROTO_AHIP = 0x3d ++ IPPROTO_APES = 0x63 ++ IPPROTO_ARGUS = 0xd ++ IPPROTO_AX25 = 0x5d ++ IPPROTO_BHA = 0x31 ++ IPPROTO_BLT = 0x1e ++ IPPROTO_BRSATMON = 0x4c ++ IPPROTO_CARP = 0x70 ++ IPPROTO_CFTP = 0x3e ++ IPPROTO_CHAOS = 0x10 ++ IPPROTO_CMTP = 0x26 ++ IPPROTO_CPHB = 0x49 ++ IPPROTO_CPNX = 0x48 ++ IPPROTO_DDP = 0x25 ++ IPPROTO_DGP = 0x56 ++ IPPROTO_DIVERT = 0xfe ++ IPPROTO_DONE = 0x101 ++ IPPROTO_DSTOPTS = 0x3c ++ IPPROTO_EGP = 0x8 ++ IPPROTO_EMCON = 0xe ++ IPPROTO_ENCAP = 0x62 ++ IPPROTO_EON = 0x50 ++ IPPROTO_ESP = 0x32 ++ IPPROTO_ETHERIP = 0x61 ++ IPPROTO_FRAGMENT = 0x2c ++ IPPROTO_GGP = 0x3 ++ IPPROTO_GMTP = 0x64 ++ IPPROTO_GRE = 0x2f ++ IPPROTO_HELLO = 0x3f ++ IPPROTO_HMP = 0x14 ++ IPPROTO_HOPOPTS = 0x0 ++ IPPROTO_ICMP = 0x1 ++ IPPROTO_ICMPV6 = 0x3a ++ IPPROTO_IDP = 0x16 ++ IPPROTO_IDPR = 0x23 ++ IPPROTO_IDRP = 0x2d ++ IPPROTO_IGMP = 0x2 ++ IPPROTO_IGP = 0x55 ++ IPPROTO_IGRP = 0x58 ++ IPPROTO_IL = 0x28 ++ IPPROTO_INLSP = 0x34 ++ IPPROTO_INP = 0x20 ++ IPPROTO_IP = 0x0 ++ IPPROTO_IPCOMP = 0x6c ++ IPPROTO_IPCV = 0x47 ++ IPPROTO_IPEIP = 0x5e ++ IPPROTO_IPIP = 0x4 ++ IPPROTO_IPPC = 0x43 ++ IPPROTO_IPV4 = 0x4 ++ IPPROTO_IPV6 = 0x29 ++ IPPROTO_IRTP = 0x1c ++ IPPROTO_KRYPTOLAN = 0x41 ++ IPPROTO_LARP = 0x5b ++ IPPROTO_LEAF1 = 0x19 ++ IPPROTO_LEAF2 = 0x1a ++ IPPROTO_MAX = 0x100 ++ IPPROTO_MAXID = 0x34 ++ IPPROTO_MEAS = 0x13 ++ IPPROTO_MHRP = 0x30 ++ IPPROTO_MICP = 0x5f ++ IPPROTO_MOBILE = 0x37 ++ IPPROTO_MTP = 0x5c ++ IPPROTO_MUX = 0x12 ++ IPPROTO_ND = 0x4d ++ IPPROTO_NHRP = 0x36 ++ IPPROTO_NONE = 0x3b ++ IPPROTO_NSP = 0x1f ++ IPPROTO_NVPII = 0xb ++ IPPROTO_OSPFIGP = 0x59 ++ IPPROTO_PFSYNC = 0xf0 ++ IPPROTO_PGM = 0x71 ++ IPPROTO_PIGP = 0x9 ++ IPPROTO_PIM = 0x67 ++ IPPROTO_PRM = 0x15 ++ IPPROTO_PUP = 0xc ++ IPPROTO_PVP = 0x4b ++ IPPROTO_RAW = 0xff ++ IPPROTO_RCCMON = 0xa ++ IPPROTO_RDP = 0x1b ++ IPPROTO_ROUTING = 0x2b ++ IPPROTO_RSVP = 0x2e ++ IPPROTO_RVD = 0x42 ++ IPPROTO_SATEXPAK = 0x40 ++ IPPROTO_SATMON = 0x45 ++ IPPROTO_SCCSP = 0x60 ++ IPPROTO_SCTP = 0x84 ++ IPPROTO_SDRP = 0x2a ++ IPPROTO_SEP = 0x21 ++ IPPROTO_SKIP = 0x39 ++ IPPROTO_SRPC = 0x5a ++ IPPROTO_ST = 0x7 ++ IPPROTO_SVMTP = 0x52 ++ IPPROTO_SWIPE = 0x35 ++ IPPROTO_TCF = 0x57 ++ IPPROTO_TCP = 0x6 ++ IPPROTO_TLSP = 0x38 ++ IPPROTO_TP = 0x1d ++ IPPROTO_TPXX = 0x27 ++ IPPROTO_TRUNK1 = 0x17 ++ IPPROTO_TRUNK2 = 0x18 ++ IPPROTO_TTP = 0x54 ++ IPPROTO_UDP = 0x11 ++ IPPROTO_UNKNOWN = 0x102 ++ IPPROTO_VINES = 0x53 ++ IPPROTO_VISA = 0x46 ++ IPPROTO_VMTP = 0x51 ++ IPPROTO_WBEXPAK = 0x4f ++ IPPROTO_WBMON = 0x4e ++ IPPROTO_WSN = 0x4a ++ IPPROTO_XNET = 0xf ++ IPPROTO_XTP = 0x24 ++ IPV6_AUTOFLOWLABEL = 0x3b ++ IPV6_BINDV6ONLY = 0x1b ++ IPV6_CHECKSUM = 0x1a ++ IPV6_DEFAULT_MULTICAST_HOPS = 0x1 ++ IPV6_DEFAULT_MULTICAST_LOOP = 0x1 ++ IPV6_DEFHLIM = 0x40 ++ IPV6_DONTFRAG = 0x3e ++ IPV6_DSTOPTS = 0x32 ++ IPV6_FAITH = 0x1d ++ IPV6_FLOWINFO_MASK = 0xffffff0f ++ IPV6_FLOWLABEL_MASK = 0xffff0f00 ++ IPV6_FRAGTTL = 0x78 ++ IPV6_FW_ADD = 0x1e ++ IPV6_FW_DEL = 0x1f ++ IPV6_FW_FLUSH = 0x20 ++ IPV6_FW_GET = 0x22 ++ IPV6_FW_ZERO = 0x21 ++ IPV6_HLIMDEC = 0x1 ++ IPV6_HOPLIMIT = 0x2f ++ IPV6_HOPOPTS = 0x31 ++ IPV6_IPSEC_POLICY = 0x1c ++ IPV6_JOIN_GROUP = 0xc ++ IPV6_LEAVE_GROUP = 0xd ++ IPV6_MAXHLIM = 0xff ++ IPV6_MAXPACKET = 0xffff ++ IPV6_MMTU = 0x500 ++ IPV6_MSFILTER = 0x4a ++ IPV6_MULTICAST_HOPS = 0xa ++ IPV6_MULTICAST_IF = 0x9 ++ IPV6_MULTICAST_LOOP = 0xb ++ IPV6_NEXTHOP = 0x30 ++ IPV6_PATHMTU = 0x2c ++ IPV6_PKTINFO = 0x2e ++ IPV6_PKTOPTIONS = 0x34 ++ IPV6_PORTRANGE = 0xe ++ IPV6_PORTRANGE_DEFAULT = 0x0 ++ IPV6_PORTRANGE_HIGH = 0x1 ++ IPV6_PORTRANGE_LOW = 0x2 ++ IPV6_PREFER_TEMPADDR = 0x3f ++ IPV6_RECVDSTOPTS = 0x28 ++ IPV6_RECVHOPLIMIT = 0x25 ++ IPV6_RECVHOPOPTS = 0x27 ++ IPV6_RECVPATHMTU = 0x2b ++ IPV6_RECVPKTINFO = 0x24 ++ IPV6_RECVRTHDR = 0x26 ++ IPV6_RECVTCLASS = 0x39 ++ IPV6_RTHDR = 0x33 ++ IPV6_RTHDRDSTOPTS = 0x23 ++ IPV6_RTHDR_LOOSE = 0x0 ++ IPV6_RTHDR_STRICT = 0x1 ++ IPV6_RTHDR_TYPE_0 = 0x0 ++ IPV6_SOCKOPT_RESERVED1 = 0x3 ++ IPV6_TCLASS = 0x3d ++ IPV6_UNICAST_HOPS = 0x4 ++ IPV6_USE_MIN_MTU = 0x2a ++ IPV6_V6ONLY = 0x1b ++ IPV6_VERSION = 0x60 ++ IPV6_VERSION_MASK = 0xf0 ++ IP_ADD_MEMBERSHIP = 0xc ++ IP_DEFAULT_MULTICAST_LOOP = 0x1 ++ IP_DEFAULT_MULTICAST_TTL = 0x1 ++ IP_DF = 0x4000 ++ IP_DROP_MEMBERSHIP = 0xd ++ IP_DUMMYNET_CONFIGURE = 0x3c ++ IP_DUMMYNET_DEL = 0x3d ++ IP_DUMMYNET_FLUSH = 0x3e ++ IP_DUMMYNET_GET = 0x40 ++ IP_FAITH = 0x16 ++ IP_FW_ADD = 0x32 ++ IP_FW_DEL = 0x33 ++ IP_FW_FLUSH = 0x34 ++ IP_FW_GET = 0x36 ++ IP_FW_RESETLOG = 0x37 ++ IP_FW_ZERO = 0x35 ++ IP_HDRINCL = 0x2 ++ IP_IPSEC_POLICY = 0x15 ++ IP_MAXPACKET = 0xffff ++ IP_MAX_MEMBERSHIPS = 0x14 ++ IP_MF = 0x2000 ++ IP_MINTTL = 0x42 ++ IP_MSS = 0x240 ++ IP_MULTICAST_IF = 0x9 ++ IP_MULTICAST_LOOP = 0xb ++ IP_MULTICAST_TTL = 0xa ++ IP_MULTICAST_VIF = 0xe ++ IP_OFFMASK = 0x1fff ++ IP_OPTIONS = 0x1 ++ IP_PORTRANGE = 0x13 ++ IP_PORTRANGE_DEFAULT = 0x0 ++ IP_PORTRANGE_HIGH = 0x1 ++ IP_PORTRANGE_LOW = 0x2 ++ IP_RECVDSTADDR = 0x7 ++ IP_RECVIF = 0x14 ++ IP_RECVOPTS = 0x5 ++ IP_RECVRETOPTS = 0x6 ++ IP_RECVTTL = 0x41 ++ IP_RETOPTS = 0x8 ++ IP_RF = 0x8000 ++ IP_RSVP_OFF = 0x10 ++ IP_RSVP_ON = 0xf ++ IP_RSVP_VIF_OFF = 0x12 ++ IP_RSVP_VIF_ON = 0x11 ++ IP_TOS = 0x3 ++ IP_TTL = 0x4 ++ ISIG = 0x80 ++ ISTRIP = 0x20 ++ IXANY = 0x800 ++ IXOFF = 0x400 ++ IXON = 0x200 ++ LOCK_EX = 0x2 ++ LOCK_NB = 0x4 ++ LOCK_SH = 0x1 ++ LOCK_UN = 0x8 ++ MADV_AUTOSYNC = 0x7 ++ MADV_CONTROL_END = 0xb ++ MADV_CONTROL_START = 0xa ++ MADV_CORE = 0x9 ++ MADV_DONTNEED = 0x4 ++ MADV_FREE = 0x5 ++ MADV_INVAL = 0xa ++ MADV_NOCORE = 0x8 ++ MADV_NORMAL = 0x0 ++ MADV_NOSYNC = 0x6 ++ MADV_RANDOM = 0x1 ++ MADV_SEQUENTIAL = 0x2 ++ MADV_SETMAP = 0xb ++ MADV_WILLNEED = 0x3 ++ MAP_ANON = 0x1000 ++ MAP_COPY = 0x2 ++ MAP_FILE = 0x0 ++ MAP_FIXED = 0x10 ++ MAP_HASSEMAPHORE = 0x200 ++ MAP_INHERIT = 0x80 ++ MAP_NOCORE = 0x20000 ++ MAP_NOEXTEND = 0x100 ++ MAP_NORESERVE = 0x40 ++ MAP_NOSYNC = 0x800 ++ MAP_PRIVATE = 0x2 ++ MAP_RENAME = 0x20 ++ MAP_SHARED = 0x1 ++ MAP_SIZEALIGN = 0x40000 ++ MAP_STACK = 0x400 ++ MAP_TRYFIXED = 0x10000 ++ MAP_VPAGETABLE = 0x2000 ++ MCL_CURRENT = 0x1 ++ MCL_FUTURE = 0x2 ++ MSG_CTRUNC = 0x20 ++ MSG_DONTROUTE = 0x4 ++ MSG_DONTWAIT = 0x80 ++ MSG_EOF = 0x100 ++ MSG_EOR = 0x8 ++ MSG_FBLOCKING = 0x10000 ++ MSG_FMASK = 0xffff0000 ++ MSG_FNONBLOCKING = 0x20000 ++ MSG_NOSIGNAL = 0x400 ++ MSG_NOTIFICATION = 0x200 ++ MSG_OOB = 0x1 ++ MSG_PEEK = 0x2 ++ MSG_SYNC = 0x800 ++ MSG_TRUNC = 0x10 ++ MSG_WAITALL = 0x40 ++ MS_ASYNC = 0x1 ++ MS_INVALIDATE = 0x2 ++ MS_SYNC = 0x0 ++ NAME_MAX = 0xff ++ NET_RT_DUMP = 0x1 ++ NET_RT_FLAGS = 0x2 ++ NET_RT_IFLIST = 0x3 ++ NET_RT_MAXID = 0x4 ++ NOFLSH = 0x80000000 ++ NOTE_ATTRIB = 0x8 ++ NOTE_CHILD = 0x4 ++ NOTE_DELETE = 0x1 ++ NOTE_EXEC = 0x20000000 ++ NOTE_EXIT = 0x80000000 ++ NOTE_EXTEND = 0x4 ++ NOTE_FORK = 0x40000000 ++ NOTE_LINK = 0x10 ++ NOTE_LOWAT = 0x1 ++ NOTE_OOB = 0x2 ++ NOTE_PCTRLMASK = 0xf0000000 ++ NOTE_PDATAMASK = 0xfffff ++ NOTE_RENAME = 0x20 ++ NOTE_REVOKE = 0x40 ++ NOTE_TRACK = 0x1 ++ NOTE_TRACKERR = 0x2 ++ NOTE_WRITE = 0x2 ++ OCRNL = 0x10 ++ ONLCR = 0x2 ++ ONLRET = 0x40 ++ ONOCR = 0x20 ++ ONOEOT = 0x8 ++ OPOST = 0x1 ++ O_ACCMODE = 0x3 ++ O_APPEND = 0x8 ++ O_ASYNC = 0x40 ++ O_CLOEXEC = 0x20000 ++ O_CREAT = 0x200 ++ O_DIRECT = 0x10000 ++ O_DIRECTORY = 0x8000000 ++ O_EXCL = 0x800 ++ O_EXLOCK = 0x20 ++ O_FAPPEND = 0x100000 ++ O_FASYNCWRITE = 0x800000 ++ O_FBLOCKING = 0x40000 ++ O_FBUFFERED = 0x2000000 ++ O_FMASK = 0x7fc0000 ++ O_FNONBLOCKING = 0x80000 ++ O_FOFFSET = 0x200000 ++ O_FSYNC = 0x80 ++ O_FSYNCWRITE = 0x400000 ++ O_FUNBUFFERED = 0x1000000 ++ O_MAPONREAD = 0x4000000 ++ O_NDELAY = 0x4 ++ O_NOCTTY = 0x8000 ++ O_NOFOLLOW = 0x100 ++ O_NONBLOCK = 0x4 ++ O_RDONLY = 0x0 ++ O_RDWR = 0x2 ++ O_SHLOCK = 0x10 ++ O_SYNC = 0x80 ++ O_TRUNC = 0x400 ++ O_WRONLY = 0x1 ++ PARENB = 0x1000 ++ PARMRK = 0x8 ++ PARODD = 0x2000 ++ PENDIN = 0x20000000 ++ PRIO_PGRP = 0x1 ++ PRIO_PROCESS = 0x0 ++ PRIO_USER = 0x2 ++ PROT_EXEC = 0x4 ++ PROT_NONE = 0x0 ++ PROT_READ = 0x1 ++ PROT_WRITE = 0x2 ++ RLIMIT_AS = 0xa ++ RLIMIT_CORE = 0x4 ++ RLIMIT_CPU = 0x0 ++ RLIMIT_DATA = 0x2 ++ RLIMIT_FSIZE = 0x1 ++ RLIMIT_NOFILE = 0x8 ++ RLIMIT_STACK = 0x3 ++ RLIM_INFINITY = 0x7fffffffffffffff ++ RTAX_AUTHOR = 0x6 ++ RTAX_BRD = 0x7 ++ RTAX_DST = 0x0 ++ RTAX_GATEWAY = 0x1 ++ RTAX_GENMASK = 0x3 ++ RTAX_IFA = 0x5 ++ RTAX_IFP = 0x4 ++ RTAX_MAX = 0xb ++ RTAX_MPLS1 = 0x8 ++ RTAX_MPLS2 = 0x9 ++ RTAX_MPLS3 = 0xa ++ RTAX_NETMASK = 0x2 ++ RTA_AUTHOR = 0x40 ++ RTA_BRD = 0x80 ++ RTA_DST = 0x1 ++ RTA_GATEWAY = 0x2 ++ RTA_GENMASK = 0x8 ++ RTA_IFA = 0x20 ++ RTA_IFP = 0x10 ++ RTA_MPLS1 = 0x100 ++ RTA_MPLS2 = 0x200 ++ RTA_MPLS3 = 0x400 ++ RTA_NETMASK = 0x4 ++ RTF_BLACKHOLE = 0x1000 ++ RTF_BROADCAST = 0x400000 ++ RTF_CLONING = 0x100 ++ RTF_DONE = 0x40 ++ RTF_DYNAMIC = 0x10 ++ RTF_GATEWAY = 0x2 ++ RTF_HOST = 0x4 ++ RTF_LLINFO = 0x400 ++ RTF_LOCAL = 0x200000 ++ RTF_MODIFIED = 0x20 ++ RTF_MPLSOPS = 0x1000000 ++ RTF_MULTICAST = 0x800000 ++ RTF_PINNED = 0x100000 ++ RTF_PRCLONING = 0x10000 ++ RTF_PROTO1 = 0x8000 ++ RTF_PROTO2 = 0x4000 ++ RTF_PROTO3 = 0x40000 ++ RTF_REJECT = 0x8 ++ RTF_STATIC = 0x800 ++ RTF_UP = 0x1 ++ RTF_WASCLONED = 0x20000 ++ RTF_XRESOLVE = 0x200 ++ RTM_ADD = 0x1 ++ RTM_CHANGE = 0x3 ++ RTM_DELADDR = 0xd ++ RTM_DELETE = 0x2 ++ RTM_DELMADDR = 0x10 ++ RTM_GET = 0x4 ++ RTM_IEEE80211 = 0x12 ++ RTM_IFANNOUNCE = 0x11 ++ RTM_IFINFO = 0xe ++ RTM_LOCK = 0x8 ++ RTM_LOSING = 0x5 ++ RTM_MISS = 0x7 ++ RTM_NEWADDR = 0xc ++ RTM_NEWMADDR = 0xf ++ RTM_OLDADD = 0x9 ++ RTM_OLDDEL = 0xa ++ RTM_REDIRECT = 0x6 ++ RTM_RESOLVE = 0xb ++ RTM_RTTUNIT = 0xf4240 ++ RTM_VERSION = 0x6 ++ RTV_EXPIRE = 0x4 ++ RTV_HOPCOUNT = 0x2 ++ RTV_IWCAPSEGS = 0x400 ++ RTV_IWMAXSEGS = 0x200 ++ RTV_MSL = 0x100 ++ RTV_MTU = 0x1 ++ RTV_RPIPE = 0x8 ++ RTV_RTT = 0x40 ++ RTV_RTTVAR = 0x80 ++ RTV_SPIPE = 0x10 ++ RTV_SSTHRESH = 0x20 ++ RUSAGE_CHILDREN = -0x1 ++ RUSAGE_SELF = 0x0 ++ SCM_CREDS = 0x3 ++ SCM_RIGHTS = 0x1 ++ SCM_TIMESTAMP = 0x2 ++ SHUT_RD = 0x0 ++ SHUT_RDWR = 0x2 ++ SHUT_WR = 0x1 ++ SIOCADDMULTI = 0x80206931 ++ SIOCADDRT = 0x8040720a ++ SIOCAIFADDR = 0x8040691a ++ SIOCALIFADDR = 0x8118691b ++ SIOCATMARK = 0x40047307 ++ SIOCDELMULTI = 0x80206932 ++ SIOCDELRT = 0x8040720b ++ SIOCDIFADDR = 0x80206919 ++ SIOCDIFPHYADDR = 0x80206949 ++ SIOCDLIFADDR = 0x8118691d ++ SIOCGDRVSPEC = 0xc028697b ++ SIOCGETSGCNT = 0xc0207210 ++ SIOCGETVIFCNT = 0xc028720f ++ SIOCGHIWAT = 0x40047301 ++ SIOCGIFADDR = 0xc0206921 ++ SIOCGIFBRDADDR = 0xc0206923 ++ SIOCGIFCAP = 0xc020691f ++ SIOCGIFCONF = 0xc0106924 ++ SIOCGIFDATA = 0xc0206926 ++ SIOCGIFDSTADDR = 0xc0206922 ++ SIOCGIFFLAGS = 0xc0206911 ++ SIOCGIFGENERIC = 0xc020693a ++ SIOCGIFGMEMB = 0xc028698a ++ SIOCGIFINDEX = 0xc0206920 ++ SIOCGIFMEDIA = 0xc0306938 ++ SIOCGIFMETRIC = 0xc0206917 ++ SIOCGIFMTU = 0xc0206933 ++ SIOCGIFNETMASK = 0xc0206925 ++ SIOCGIFPDSTADDR = 0xc0206948 ++ SIOCGIFPHYS = 0xc0206935 ++ SIOCGIFPOLLCPU = 0xc020697e ++ SIOCGIFPSRCADDR = 0xc0206947 ++ SIOCGIFSTATUS = 0xc331693b ++ SIOCGIFTSOLEN = 0xc0206980 ++ SIOCGLIFADDR = 0xc118691c ++ SIOCGLIFPHYADDR = 0xc118694b ++ SIOCGLOWAT = 0x40047303 ++ SIOCGPGRP = 0x40047309 ++ SIOCGPRIVATE_0 = 0xc0206950 ++ SIOCGPRIVATE_1 = 0xc0206951 ++ SIOCIFCREATE = 0xc020697a ++ SIOCIFCREATE2 = 0xc020697c ++ SIOCIFDESTROY = 0x80206979 ++ SIOCIFGCLONERS = 0xc0106978 ++ SIOCSDRVSPEC = 0x8028697b ++ SIOCSHIWAT = 0x80047300 ++ SIOCSIFADDR = 0x8020690c ++ SIOCSIFBRDADDR = 0x80206913 ++ SIOCSIFCAP = 0x8020691e ++ SIOCSIFDSTADDR = 0x8020690e ++ SIOCSIFFLAGS = 0x80206910 ++ SIOCSIFGENERIC = 0x80206939 ++ SIOCSIFLLADDR = 0x8020693c ++ SIOCSIFMEDIA = 0xc0206937 ++ SIOCSIFMETRIC = 0x80206918 ++ SIOCSIFMTU = 0x80206934 ++ SIOCSIFNAME = 0x80206928 ++ SIOCSIFNETMASK = 0x80206916 ++ SIOCSIFPHYADDR = 0x80406946 ++ SIOCSIFPHYS = 0x80206936 ++ SIOCSIFPOLLCPU = 0x8020697d ++ SIOCSIFTSOLEN = 0x8020697f ++ SIOCSLIFPHYADDR = 0x8118694a ++ SIOCSLOWAT = 0x80047302 ++ SIOCSPGRP = 0x80047308 ++ SOCK_DGRAM = 0x2 ++ SOCK_MAXADDRLEN = 0xff ++ SOCK_RAW = 0x3 ++ SOCK_RDM = 0x4 ++ SOCK_SEQPACKET = 0x5 ++ SOCK_STREAM = 0x1 ++ SOL_SOCKET = 0xffff ++ SOMAXCONN = 0x80 ++ SO_ACCEPTCONN = 0x2 ++ SO_ACCEPTFILTER = 0x1000 ++ SO_BROADCAST = 0x20 ++ SO_DEBUG = 0x1 ++ SO_DONTROUTE = 0x10 ++ SO_ERROR = 0x1007 ++ SO_KEEPALIVE = 0x8 ++ SO_LINGER = 0x80 ++ SO_NOSIGPIPE = 0x800 ++ SO_OOBINLINE = 0x100 ++ SO_RCVBUF = 0x1002 ++ SO_RCVLOWAT = 0x1004 ++ SO_RCVTIMEO = 0x1006 ++ SO_REUSEADDR = 0x4 ++ SO_REUSEPORT = 0x200 ++ SO_SNDBUF = 0x1001 ++ SO_SNDLOWAT = 0x1003 ++ SO_SNDSPACE = 0x100a ++ SO_SNDTIMEO = 0x1005 ++ SO_TIMESTAMP = 0x400 ++ SO_TYPE = 0x1008 ++ SO_USELOOPBACK = 0x40 ++ TCIFLUSH = 0x1 ++ TCIOFLUSH = 0x3 ++ TCOFLUSH = 0x2 ++ TCP_FASTKEEP = 0x80 ++ TCP_KEEPCNT = 0x400 ++ TCP_KEEPIDLE = 0x100 ++ TCP_KEEPINIT = 0x20 ++ TCP_KEEPINTVL = 0x200 ++ TCP_MAXBURST = 0x4 ++ TCP_MAXHLEN = 0x3c ++ TCP_MAXOLEN = 0x28 ++ TCP_MAXSEG = 0x2 ++ TCP_MAXWIN = 0xffff ++ TCP_MAX_WINSHIFT = 0xe ++ TCP_MINMSS = 0x100 ++ TCP_MIN_WINSHIFT = 0x5 ++ TCP_MSS = 0x200 ++ TCP_NODELAY = 0x1 ++ TCP_NOOPT = 0x8 ++ TCP_NOPUSH = 0x4 ++ TCP_SIGNATURE_ENABLE = 0x10 ++ TCSAFLUSH = 0x2 ++ TIOCCBRK = 0x2000747a ++ TIOCCDTR = 0x20007478 ++ TIOCCONS = 0x80047462 ++ TIOCDCDTIMESTAMP = 0x40107458 ++ TIOCDRAIN = 0x2000745e ++ TIOCEXCL = 0x2000740d ++ TIOCEXT = 0x80047460 ++ TIOCFLUSH = 0x80047410 ++ TIOCGDRAINWAIT = 0x40047456 ++ TIOCGETA = 0x402c7413 ++ TIOCGETD = 0x4004741a ++ TIOCGPGRP = 0x40047477 ++ TIOCGSID = 0x40047463 ++ TIOCGSIZE = 0x40087468 ++ TIOCGWINSZ = 0x40087468 ++ TIOCISPTMASTER = 0x20007455 ++ TIOCMBIC = 0x8004746b ++ TIOCMBIS = 0x8004746c ++ TIOCMGDTRWAIT = 0x4004745a ++ TIOCMGET = 0x4004746a ++ TIOCMODG = 0x40047403 ++ TIOCMODS = 0x80047404 ++ TIOCMSDTRWAIT = 0x8004745b ++ TIOCMSET = 0x8004746d ++ TIOCM_CAR = 0x40 ++ TIOCM_CD = 0x40 ++ TIOCM_CTS = 0x20 ++ TIOCM_DSR = 0x100 ++ TIOCM_DTR = 0x2 ++ TIOCM_LE = 0x1 ++ TIOCM_RI = 0x80 ++ TIOCM_RNG = 0x80 ++ TIOCM_RTS = 0x4 ++ TIOCM_SR = 0x10 ++ TIOCM_ST = 0x8 ++ TIOCNOTTY = 0x20007471 ++ TIOCNXCL = 0x2000740e ++ TIOCOUTQ = 0x40047473 ++ TIOCPKT = 0x80047470 ++ TIOCPKT_DATA = 0x0 ++ TIOCPKT_DOSTOP = 0x20 ++ TIOCPKT_FLUSHREAD = 0x1 ++ TIOCPKT_FLUSHWRITE = 0x2 ++ TIOCPKT_IOCTL = 0x40 ++ TIOCPKT_NOSTOP = 0x10 ++ TIOCPKT_START = 0x8 ++ TIOCPKT_STOP = 0x4 ++ TIOCREMOTE = 0x80047469 ++ TIOCSBRK = 0x2000747b ++ TIOCSCTTY = 0x20007461 ++ TIOCSDRAINWAIT = 0x80047457 ++ TIOCSDTR = 0x20007479 ++ TIOCSETA = 0x802c7414 ++ TIOCSETAF = 0x802c7416 ++ TIOCSETAW = 0x802c7415 ++ TIOCSETD = 0x8004741b ++ TIOCSIG = 0x2000745f ++ TIOCSPGRP = 0x80047476 ++ TIOCSSIZE = 0x80087467 ++ TIOCSTART = 0x2000746e ++ TIOCSTAT = 0x20007465 ++ TIOCSTI = 0x80017472 ++ TIOCSTOP = 0x2000746f ++ TIOCSWINSZ = 0x80087467 ++ TIOCTIMESTAMP = 0x40107459 ++ TIOCUCNTL = 0x80047466 ++ TOSTOP = 0x400000 ++ VCHECKPT = 0x13 ++ VDISCARD = 0xf ++ VDSUSP = 0xb ++ VEOF = 0x0 ++ VEOL = 0x1 ++ VEOL2 = 0x2 ++ VERASE = 0x3 ++ VERASE2 = 0x7 ++ VINTR = 0x8 ++ VKILL = 0x5 ++ VLNEXT = 0xe ++ VMIN = 0x10 ++ VQUIT = 0x9 ++ VREPRINT = 0x6 ++ VSTART = 0xc ++ VSTATUS = 0x12 ++ VSTOP = 0xd ++ VSUSP = 0xa ++ VTIME = 0x11 ++ VWERASE = 0x4 ++ WCONTINUED = 0x4 ++ WCOREFLAG = 0x80 ++ WLINUXCLONE = 0x80000000 ++ WNOHANG = 0x1 ++ WSTOPPED = 0x7f ++ WUNTRACED = 0x2 ++) ++ ++// Errors ++const ( ++ E2BIG = syscall.Errno(0x7) ++ EACCES = syscall.Errno(0xd) ++ EADDRINUSE = syscall.Errno(0x30) ++ EADDRNOTAVAIL = syscall.Errno(0x31) ++ EAFNOSUPPORT = syscall.Errno(0x2f) ++ EAGAIN = syscall.Errno(0x23) ++ EALREADY = syscall.Errno(0x25) ++ EASYNC = syscall.Errno(0x63) ++ EAUTH = syscall.Errno(0x50) ++ EBADF = syscall.Errno(0x9) ++ EBADMSG = syscall.Errno(0x59) ++ EBADRPC = syscall.Errno(0x48) ++ EBUSY = syscall.Errno(0x10) ++ ECANCELED = syscall.Errno(0x55) ++ ECHILD = syscall.Errno(0xa) ++ ECONNABORTED = syscall.Errno(0x35) ++ ECONNREFUSED = syscall.Errno(0x3d) ++ ECONNRESET = syscall.Errno(0x36) ++ EDEADLK = syscall.Errno(0xb) ++ EDESTADDRREQ = syscall.Errno(0x27) ++ EDOM = syscall.Errno(0x21) ++ EDOOFUS = syscall.Errno(0x58) ++ EDQUOT = syscall.Errno(0x45) ++ EEXIST = syscall.Errno(0x11) ++ EFAULT = syscall.Errno(0xe) ++ EFBIG = syscall.Errno(0x1b) ++ EFTYPE = syscall.Errno(0x4f) ++ EHOSTDOWN = syscall.Errno(0x40) ++ EHOSTUNREACH = syscall.Errno(0x41) ++ EIDRM = syscall.Errno(0x52) ++ EILSEQ = syscall.Errno(0x56) ++ EINPROGRESS = syscall.Errno(0x24) ++ EINTR = syscall.Errno(0x4) ++ EINVAL = syscall.Errno(0x16) ++ EIO = syscall.Errno(0x5) ++ EISCONN = syscall.Errno(0x38) ++ EISDIR = syscall.Errno(0x15) ++ ELAST = syscall.Errno(0x63) ++ ELOOP = syscall.Errno(0x3e) ++ EMFILE = syscall.Errno(0x18) ++ EMLINK = syscall.Errno(0x1f) ++ EMSGSIZE = syscall.Errno(0x28) ++ EMULTIHOP = syscall.Errno(0x5a) ++ ENAMETOOLONG = syscall.Errno(0x3f) ++ ENEEDAUTH = syscall.Errno(0x51) ++ ENETDOWN = syscall.Errno(0x32) ++ ENETRESET = syscall.Errno(0x34) ++ ENETUNREACH = syscall.Errno(0x33) ++ ENFILE = syscall.Errno(0x17) ++ ENOATTR = syscall.Errno(0x57) ++ ENOBUFS = syscall.Errno(0x37) ++ ENODEV = syscall.Errno(0x13) ++ ENOENT = syscall.Errno(0x2) ++ ENOEXEC = syscall.Errno(0x8) ++ ENOLCK = syscall.Errno(0x4d) ++ ENOLINK = syscall.Errno(0x5b) ++ ENOMEDIUM = syscall.Errno(0x5d) ++ ENOMEM = syscall.Errno(0xc) ++ ENOMSG = syscall.Errno(0x53) ++ ENOPROTOOPT = syscall.Errno(0x2a) ++ ENOSPC = syscall.Errno(0x1c) ++ ENOSYS = syscall.Errno(0x4e) ++ ENOTBLK = syscall.Errno(0xf) ++ ENOTCONN = syscall.Errno(0x39) ++ ENOTDIR = syscall.Errno(0x14) ++ ENOTEMPTY = syscall.Errno(0x42) ++ ENOTSOCK = syscall.Errno(0x26) ++ ENOTSUP = syscall.Errno(0x2d) ++ ENOTTY = syscall.Errno(0x19) ++ ENXIO = syscall.Errno(0x6) ++ EOPNOTSUPP = syscall.Errno(0x2d) ++ EOVERFLOW = syscall.Errno(0x54) ++ EPERM = syscall.Errno(0x1) ++ EPFNOSUPPORT = syscall.Errno(0x2e) ++ EPIPE = syscall.Errno(0x20) ++ EPROCLIM = syscall.Errno(0x43) ++ EPROCUNAVAIL = syscall.Errno(0x4c) ++ EPROGMISMATCH = syscall.Errno(0x4b) ++ EPROGUNAVAIL = syscall.Errno(0x4a) ++ EPROTO = syscall.Errno(0x5c) ++ EPROTONOSUPPORT = syscall.Errno(0x2b) ++ EPROTOTYPE = syscall.Errno(0x29) ++ ERANGE = syscall.Errno(0x22) ++ EREMOTE = syscall.Errno(0x47) ++ EROFS = syscall.Errno(0x1e) ++ ERPCMISMATCH = syscall.Errno(0x49) ++ ESHUTDOWN = syscall.Errno(0x3a) ++ ESOCKTNOSUPPORT = syscall.Errno(0x2c) ++ ESPIPE = syscall.Errno(0x1d) ++ ESRCH = syscall.Errno(0x3) ++ ESTALE = syscall.Errno(0x46) ++ ETIMEDOUT = syscall.Errno(0x3c) ++ ETOOMANYREFS = syscall.Errno(0x3b) ++ ETXTBSY = syscall.Errno(0x1a) ++ EUNUSED94 = syscall.Errno(0x5e) ++ EUNUSED95 = syscall.Errno(0x5f) ++ EUNUSED96 = syscall.Errno(0x60) ++ EUNUSED97 = syscall.Errno(0x61) ++ EUNUSED98 = syscall.Errno(0x62) ++ EUSERS = syscall.Errno(0x44) ++ EWOULDBLOCK = syscall.Errno(0x23) ++ EXDEV = syscall.Errno(0x12) ++) ++ ++// Signals ++const ( ++ SIGABRT = syscall.Signal(0x6) ++ SIGALRM = syscall.Signal(0xe) ++ SIGBUS = syscall.Signal(0xa) ++ SIGCHLD = syscall.Signal(0x14) ++ SIGCKPT = syscall.Signal(0x21) ++ SIGCKPTEXIT = syscall.Signal(0x22) ++ SIGCONT = syscall.Signal(0x13) ++ SIGEMT = syscall.Signal(0x7) ++ SIGFPE = syscall.Signal(0x8) ++ SIGHUP = syscall.Signal(0x1) ++ SIGILL = syscall.Signal(0x4) ++ SIGINFO = syscall.Signal(0x1d) ++ SIGINT = syscall.Signal(0x2) ++ SIGIO = syscall.Signal(0x17) ++ SIGIOT = syscall.Signal(0x6) ++ SIGKILL = syscall.Signal(0x9) ++ SIGPIPE = syscall.Signal(0xd) ++ SIGPROF = syscall.Signal(0x1b) ++ SIGQUIT = syscall.Signal(0x3) ++ SIGSEGV = syscall.Signal(0xb) ++ SIGSTOP = syscall.Signal(0x11) ++ SIGSYS = syscall.Signal(0xc) ++ SIGTERM = syscall.Signal(0xf) ++ SIGTHR = syscall.Signal(0x20) ++ SIGTRAP = syscall.Signal(0x5) ++ SIGTSTP = syscall.Signal(0x12) ++ SIGTTIN = syscall.Signal(0x15) ++ SIGTTOU = syscall.Signal(0x16) ++ SIGURG = syscall.Signal(0x10) ++ SIGUSR1 = syscall.Signal(0x1e) ++ SIGUSR2 = syscall.Signal(0x1f) ++ SIGVTALRM = syscall.Signal(0x1a) ++ SIGWINCH = syscall.Signal(0x1c) ++ SIGXCPU = syscall.Signal(0x18) ++ SIGXFSZ = syscall.Signal(0x19) ++) ++ ++// Error table ++var errors = [...]string{ ++ 1: "operation not permitted", ++ 2: "no such file or directory", ++ 3: "no such process", ++ 4: "interrupted system call", ++ 5: "input/output error", ++ 6: "device not configured", ++ 7: "argument list too long", ++ 8: "exec format error", ++ 9: "bad file descriptor", ++ 10: "no child processes", ++ 11: "resource deadlock avoided", ++ 12: "cannot allocate memory", ++ 13: "permission denied", ++ 14: "bad address", ++ 15: "block device required", ++ 16: "device busy", ++ 17: "file exists", ++ 18: "cross-device link", ++ 19: "operation not supported by device", ++ 20: "not a directory", ++ 21: "is a directory", ++ 22: "invalid argument", ++ 23: "too many open files in system", ++ 24: "too many open files", ++ 25: "inappropriate ioctl for device", ++ 26: "text file busy", ++ 27: "file too large", ++ 28: "no space left on device", ++ 29: "illegal seek", ++ 30: "read-only file system", ++ 31: "too many links", ++ 32: "broken pipe", ++ 33: "numerical argument out of domain", ++ 34: "result too large", ++ 35: "resource temporarily unavailable", ++ 36: "operation now in progress", ++ 37: "operation already in progress", ++ 38: "socket operation on non-socket", ++ 39: "destination address required", ++ 40: "message too long", ++ 41: "protocol wrong type for socket", ++ 42: "protocol not available", ++ 43: "protocol not supported", ++ 44: "socket type not supported", ++ 45: "operation not supported", ++ 46: "protocol family not supported", ++ 47: "address family not supported by protocol family", ++ 48: "address already in use", ++ 49: "can't assign requested address", ++ 50: "network is down", ++ 51: "network is unreachable", ++ 52: "network dropped connection on reset", ++ 53: "software caused connection abort", ++ 54: "connection reset by peer", ++ 55: "no buffer space available", ++ 56: "socket is already connected", ++ 57: "socket is not connected", ++ 58: "can't send after socket shutdown", ++ 59: "too many references: can't splice", ++ 60: "operation timed out", ++ 61: "connection refused", ++ 62: "too many levels of symbolic links", ++ 63: "file name too long", ++ 64: "host is down", ++ 65: "no route to host", ++ 66: "directory not empty", ++ 67: "too many processes", ++ 68: "too many users", ++ 69: "disc quota exceeded", ++ 70: "stale NFS file handle", ++ 71: "too many levels of remote in path", ++ 72: "RPC struct is bad", ++ 73: "RPC version wrong", ++ 74: "RPC prog. not avail", ++ 75: "program version wrong", ++ 76: "bad procedure for program", ++ 77: "no locks available", ++ 78: "function not implemented", ++ 79: "inappropriate file type or format", ++ 80: "authentication error", ++ 81: "need authenticator", ++ 82: "identifier removed", ++ 83: "no message of desired type", ++ 84: "value too large to be stored in data type", ++ 85: "operation canceled", ++ 86: "illegal byte sequence", ++ 87: "attribute not found", ++ 88: "programming error", ++ 89: "bad message", ++ 90: "multihop attempted", ++ 91: "link has been severed", ++ 92: "protocol error", ++ 93: "no medium found", ++ 94: "unknown error: 94", ++ 95: "unknown error: 95", ++ 96: "unknown error: 96", ++ 97: "unknown error: 97", ++ 98: "unknown error: 98", ++ 99: "unknown error: 99", ++} ++ ++// Signal table ++var signals = [...]string{ ++ 1: "hangup", ++ 2: "interrupt", ++ 3: "quit", ++ 4: "illegal instruction", ++ 5: "trace/BPT trap", ++ 6: "abort trap", ++ 7: "EMT trap", ++ 8: "floating point exception", ++ 9: "killed", ++ 10: "bus error", ++ 11: "segmentation fault", ++ 12: "bad system call", ++ 13: "broken pipe", ++ 14: "alarm clock", ++ 15: "terminated", ++ 16: "urgent I/O condition", ++ 17: "suspended (signal)", ++ 18: "suspended", ++ 19: "continued", ++ 20: "child exited", ++ 21: "stopped (tty input)", ++ 22: "stopped (tty output)", ++ 23: "I/O possible", ++ 24: "cputime limit exceeded", ++ 25: "filesize limit exceeded", ++ 26: "virtual timer expired", ++ 27: "profiling timer expired", ++ 28: "window size changes", ++ 29: "information request", ++ 30: "user defined signal 1", ++ 31: "user defined signal 2", ++ 32: "thread Scheduler", ++ 33: "checkPoint", ++ 34: "checkPointExit", ++} +diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go +new file mode 100644 +index 0000000..7b95751 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go +@@ -0,0 +1,1743 @@ ++// mkerrors.sh -m32 ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build 386,freebsd ++ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- -m32 _const.go ++ ++package unix ++ ++import "syscall" ++ ++const ( ++ AF_APPLETALK = 0x10 ++ AF_ARP = 0x23 ++ AF_ATM = 0x1e ++ AF_BLUETOOTH = 0x24 ++ AF_CCITT = 0xa ++ AF_CHAOS = 0x5 ++ AF_CNT = 0x15 ++ AF_COIP = 0x14 ++ AF_DATAKIT = 0x9 ++ AF_DECnet = 0xc ++ AF_DLI = 0xd ++ AF_E164 = 0x1a ++ AF_ECMA = 0x8 ++ AF_HYLINK = 0xf ++ AF_IEEE80211 = 0x25 ++ AF_IMPLINK = 0x3 ++ AF_INET = 0x2 ++ AF_INET6 = 0x1c ++ AF_INET6_SDP = 0x2a ++ AF_INET_SDP = 0x28 ++ AF_IPX = 0x17 ++ AF_ISDN = 0x1a ++ AF_ISO = 0x7 ++ AF_LAT = 0xe ++ AF_LINK = 0x12 ++ AF_LOCAL = 0x1 ++ AF_MAX = 0x2a ++ AF_NATM = 0x1d ++ AF_NETBIOS = 0x6 ++ AF_NETGRAPH = 0x20 ++ AF_OSI = 0x7 ++ AF_PUP = 0x4 ++ AF_ROUTE = 0x11 ++ AF_SCLUSTER = 0x22 ++ AF_SIP = 0x18 ++ AF_SLOW = 0x21 ++ AF_SNA = 0xb ++ AF_UNIX = 0x1 ++ AF_UNSPEC = 0x0 ++ AF_VENDOR00 = 0x27 ++ AF_VENDOR01 = 0x29 ++ AF_VENDOR02 = 0x2b ++ AF_VENDOR03 = 0x2d ++ AF_VENDOR04 = 0x2f ++ AF_VENDOR05 = 0x31 ++ AF_VENDOR06 = 0x33 ++ AF_VENDOR07 = 0x35 ++ AF_VENDOR08 = 0x37 ++ AF_VENDOR09 = 0x39 ++ AF_VENDOR10 = 0x3b ++ AF_VENDOR11 = 0x3d ++ AF_VENDOR12 = 0x3f ++ AF_VENDOR13 = 0x41 ++ AF_VENDOR14 = 0x43 ++ AF_VENDOR15 = 0x45 ++ AF_VENDOR16 = 0x47 ++ AF_VENDOR17 = 0x49 ++ AF_VENDOR18 = 0x4b ++ AF_VENDOR19 = 0x4d ++ AF_VENDOR20 = 0x4f ++ AF_VENDOR21 = 0x51 ++ AF_VENDOR22 = 0x53 ++ AF_VENDOR23 = 0x55 ++ AF_VENDOR24 = 0x57 ++ AF_VENDOR25 = 0x59 ++ AF_VENDOR26 = 0x5b ++ AF_VENDOR27 = 0x5d ++ AF_VENDOR28 = 0x5f ++ AF_VENDOR29 = 0x61 ++ AF_VENDOR30 = 0x63 ++ AF_VENDOR31 = 0x65 ++ AF_VENDOR32 = 0x67 ++ AF_VENDOR33 = 0x69 ++ AF_VENDOR34 = 0x6b ++ AF_VENDOR35 = 0x6d ++ AF_VENDOR36 = 0x6f ++ AF_VENDOR37 = 0x71 ++ AF_VENDOR38 = 0x73 ++ AF_VENDOR39 = 0x75 ++ AF_VENDOR40 = 0x77 ++ AF_VENDOR41 = 0x79 ++ AF_VENDOR42 = 0x7b ++ AF_VENDOR43 = 0x7d ++ AF_VENDOR44 = 0x7f ++ AF_VENDOR45 = 0x81 ++ AF_VENDOR46 = 0x83 ++ AF_VENDOR47 = 0x85 ++ B0 = 0x0 ++ B110 = 0x6e ++ B115200 = 0x1c200 ++ B1200 = 0x4b0 ++ B134 = 0x86 ++ B14400 = 0x3840 ++ B150 = 0x96 ++ B1800 = 0x708 ++ B19200 = 0x4b00 ++ B200 = 0xc8 ++ B230400 = 0x38400 ++ B2400 = 0x960 ++ B28800 = 0x7080 ++ B300 = 0x12c ++ B38400 = 0x9600 ++ B460800 = 0x70800 ++ B4800 = 0x12c0 ++ B50 = 0x32 ++ B57600 = 0xe100 ++ B600 = 0x258 ++ B7200 = 0x1c20 ++ B75 = 0x4b ++ B76800 = 0x12c00 ++ B921600 = 0xe1000 ++ B9600 = 0x2580 ++ BIOCFEEDBACK = 0x8004427c ++ BIOCFLUSH = 0x20004268 ++ BIOCGBLEN = 0x40044266 ++ BIOCGDIRECTION = 0x40044276 ++ BIOCGDLT = 0x4004426a ++ BIOCGDLTLIST = 0xc0084279 ++ BIOCGETBUFMODE = 0x4004427d ++ BIOCGETIF = 0x4020426b ++ BIOCGETZMAX = 0x4004427f ++ BIOCGHDRCMPLT = 0x40044274 ++ BIOCGRSIG = 0x40044272 ++ BIOCGRTIMEOUT = 0x4008426e ++ BIOCGSEESENT = 0x40044276 ++ BIOCGSTATS = 0x4008426f ++ BIOCGTSTAMP = 0x40044283 ++ BIOCIMMEDIATE = 0x80044270 ++ BIOCLOCK = 0x2000427a ++ BIOCPROMISC = 0x20004269 ++ BIOCROTZBUF = 0x400c4280 ++ BIOCSBLEN = 0xc0044266 ++ BIOCSDIRECTION = 0x80044277 ++ BIOCSDLT = 0x80044278 ++ BIOCSETBUFMODE = 0x8004427e ++ BIOCSETF = 0x80084267 ++ BIOCSETFNR = 0x80084282 ++ BIOCSETIF = 0x8020426c ++ BIOCSETWF = 0x8008427b ++ BIOCSETZBUF = 0x800c4281 ++ BIOCSHDRCMPLT = 0x80044275 ++ BIOCSRSIG = 0x80044273 ++ BIOCSRTIMEOUT = 0x8008426d ++ BIOCSSEESENT = 0x80044277 ++ BIOCSTSTAMP = 0x80044284 ++ BIOCVERSION = 0x40044271 ++ BPF_A = 0x10 ++ BPF_ABS = 0x20 ++ BPF_ADD = 0x0 ++ BPF_ALIGNMENT = 0x4 ++ BPF_ALU = 0x4 ++ BPF_AND = 0x50 ++ BPF_B = 0x10 ++ BPF_BUFMODE_BUFFER = 0x1 ++ BPF_BUFMODE_ZBUF = 0x2 ++ BPF_DIV = 0x30 ++ BPF_H = 0x8 ++ BPF_IMM = 0x0 ++ BPF_IND = 0x40 ++ BPF_JA = 0x0 ++ BPF_JEQ = 0x10 ++ BPF_JGE = 0x30 ++ BPF_JGT = 0x20 ++ BPF_JMP = 0x5 ++ BPF_JSET = 0x40 ++ BPF_K = 0x0 ++ BPF_LD = 0x0 ++ BPF_LDX = 0x1 ++ BPF_LEN = 0x80 ++ BPF_LSH = 0x60 ++ BPF_MAJOR_VERSION = 0x1 ++ BPF_MAXBUFSIZE = 0x80000 ++ BPF_MAXINSNS = 0x200 ++ BPF_MEM = 0x60 ++ BPF_MEMWORDS = 0x10 ++ BPF_MINBUFSIZE = 0x20 ++ BPF_MINOR_VERSION = 0x1 ++ BPF_MISC = 0x7 ++ BPF_MSH = 0xa0 ++ BPF_MUL = 0x20 ++ BPF_NEG = 0x80 ++ BPF_OR = 0x40 ++ BPF_RELEASE = 0x30bb6 ++ BPF_RET = 0x6 ++ BPF_RSH = 0x70 ++ BPF_ST = 0x2 ++ BPF_STX = 0x3 ++ BPF_SUB = 0x10 ++ BPF_TAX = 0x0 ++ BPF_TXA = 0x80 ++ BPF_T_BINTIME = 0x2 ++ BPF_T_BINTIME_FAST = 0x102 ++ BPF_T_BINTIME_MONOTONIC = 0x202 ++ BPF_T_BINTIME_MONOTONIC_FAST = 0x302 ++ BPF_T_FAST = 0x100 ++ BPF_T_FLAG_MASK = 0x300 ++ BPF_T_FORMAT_MASK = 0x3 ++ BPF_T_MICROTIME = 0x0 ++ BPF_T_MICROTIME_FAST = 0x100 ++ BPF_T_MICROTIME_MONOTONIC = 0x200 ++ BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 ++ BPF_T_MONOTONIC = 0x200 ++ BPF_T_MONOTONIC_FAST = 0x300 ++ BPF_T_NANOTIME = 0x1 ++ BPF_T_NANOTIME_FAST = 0x101 ++ BPF_T_NANOTIME_MONOTONIC = 0x201 ++ BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 ++ BPF_T_NONE = 0x3 ++ BPF_T_NORMAL = 0x0 ++ BPF_W = 0x0 ++ BPF_X = 0x8 ++ BRKINT = 0x2 ++ CFLUSH = 0xf ++ CLOCAL = 0x8000 ++ CLOCK_MONOTONIC = 0x4 ++ CLOCK_MONOTONIC_FAST = 0xc ++ CLOCK_MONOTONIC_PRECISE = 0xb ++ CLOCK_PROCESS_CPUTIME_ID = 0xf ++ CLOCK_PROF = 0x2 ++ CLOCK_REALTIME = 0x0 ++ CLOCK_REALTIME_FAST = 0xa ++ CLOCK_REALTIME_PRECISE = 0x9 ++ CLOCK_SECOND = 0xd ++ CLOCK_THREAD_CPUTIME_ID = 0xe ++ CLOCK_UPTIME = 0x5 ++ CLOCK_UPTIME_FAST = 0x8 ++ CLOCK_UPTIME_PRECISE = 0x7 ++ CLOCK_VIRTUAL = 0x1 ++ CREAD = 0x800 ++ CS5 = 0x0 ++ CS6 = 0x100 ++ CS7 = 0x200 ++ CS8 = 0x300 ++ CSIZE = 0x300 ++ CSTART = 0x11 ++ CSTATUS = 0x14 ++ CSTOP = 0x13 ++ CSTOPB = 0x400 ++ CSUSP = 0x1a ++ CTL_MAXNAME = 0x18 ++ CTL_NET = 0x4 ++ DLT_A429 = 0xb8 ++ DLT_A653_ICM = 0xb9 ++ DLT_AIRONET_HEADER = 0x78 ++ DLT_AOS = 0xde ++ DLT_APPLE_IP_OVER_IEEE1394 = 0x8a ++ DLT_ARCNET = 0x7 ++ DLT_ARCNET_LINUX = 0x81 ++ DLT_ATM_CLIP = 0x13 ++ DLT_ATM_RFC1483 = 0xb ++ DLT_AURORA = 0x7e ++ DLT_AX25 = 0x3 ++ DLT_AX25_KISS = 0xca ++ DLT_BACNET_MS_TP = 0xa5 ++ DLT_BLUETOOTH_HCI_H4 = 0xbb ++ DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 ++ DLT_CAN20B = 0xbe ++ DLT_CAN_SOCKETCAN = 0xe3 ++ DLT_CHAOS = 0x5 ++ DLT_CHDLC = 0x68 ++ DLT_CISCO_IOS = 0x76 ++ DLT_C_HDLC = 0x68 ++ DLT_C_HDLC_WITH_DIR = 0xcd ++ DLT_DBUS = 0xe7 ++ DLT_DECT = 0xdd ++ DLT_DOCSIS = 0x8f ++ DLT_DVB_CI = 0xeb ++ DLT_ECONET = 0x73 ++ DLT_EN10MB = 0x1 ++ DLT_EN3MB = 0x2 ++ DLT_ENC = 0x6d ++ DLT_ERF = 0xc5 ++ DLT_ERF_ETH = 0xaf ++ DLT_ERF_POS = 0xb0 ++ DLT_FC_2 = 0xe0 ++ DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 ++ DLT_FDDI = 0xa ++ DLT_FLEXRAY = 0xd2 ++ DLT_FRELAY = 0x6b ++ DLT_FRELAY_WITH_DIR = 0xce ++ DLT_GCOM_SERIAL = 0xad ++ DLT_GCOM_T1E1 = 0xac ++ DLT_GPF_F = 0xab ++ DLT_GPF_T = 0xaa ++ DLT_GPRS_LLC = 0xa9 ++ DLT_GSMTAP_ABIS = 0xda ++ DLT_GSMTAP_UM = 0xd9 ++ DLT_HHDLC = 0x79 ++ DLT_IBM_SN = 0x92 ++ DLT_IBM_SP = 0x91 ++ DLT_IEEE802 = 0x6 ++ DLT_IEEE802_11 = 0x69 ++ DLT_IEEE802_11_RADIO = 0x7f ++ DLT_IEEE802_11_RADIO_AVS = 0xa3 ++ DLT_IEEE802_15_4 = 0xc3 ++ DLT_IEEE802_15_4_LINUX = 0xbf ++ DLT_IEEE802_15_4_NOFCS = 0xe6 ++ DLT_IEEE802_15_4_NONASK_PHY = 0xd7 ++ DLT_IEEE802_16_MAC_CPS = 0xbc ++ DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 ++ DLT_IPFILTER = 0x74 ++ DLT_IPMB = 0xc7 ++ DLT_IPMB_LINUX = 0xd1 ++ DLT_IPNET = 0xe2 ++ DLT_IPOIB = 0xf2 ++ DLT_IPV4 = 0xe4 ++ DLT_IPV6 = 0xe5 ++ DLT_IP_OVER_FC = 0x7a ++ DLT_JUNIPER_ATM1 = 0x89 ++ DLT_JUNIPER_ATM2 = 0x87 ++ DLT_JUNIPER_ATM_CEMIC = 0xee ++ DLT_JUNIPER_CHDLC = 0xb5 ++ DLT_JUNIPER_ES = 0x84 ++ DLT_JUNIPER_ETHER = 0xb2 ++ DLT_JUNIPER_FIBRECHANNEL = 0xea ++ DLT_JUNIPER_FRELAY = 0xb4 ++ DLT_JUNIPER_GGSN = 0x85 ++ DLT_JUNIPER_ISM = 0xc2 ++ DLT_JUNIPER_MFR = 0x86 ++ DLT_JUNIPER_MLFR = 0x83 ++ DLT_JUNIPER_MLPPP = 0x82 ++ DLT_JUNIPER_MONITOR = 0xa4 ++ DLT_JUNIPER_PIC_PEER = 0xae ++ DLT_JUNIPER_PPP = 0xb3 ++ DLT_JUNIPER_PPPOE = 0xa7 ++ DLT_JUNIPER_PPPOE_ATM = 0xa8 ++ DLT_JUNIPER_SERVICES = 0x88 ++ DLT_JUNIPER_SRX_E2E = 0xe9 ++ DLT_JUNIPER_ST = 0xc8 ++ DLT_JUNIPER_VP = 0xb7 ++ DLT_JUNIPER_VS = 0xe8 ++ DLT_LAPB_WITH_DIR = 0xcf ++ DLT_LAPD = 0xcb ++ DLT_LIN = 0xd4 ++ DLT_LINUX_EVDEV = 0xd8 ++ DLT_LINUX_IRDA = 0x90 ++ DLT_LINUX_LAPD = 0xb1 ++ DLT_LINUX_PPP_WITHDIRECTION = 0xa6 ++ DLT_LINUX_SLL = 0x71 ++ DLT_LOOP = 0x6c ++ DLT_LTALK = 0x72 ++ DLT_MATCHING_MAX = 0xf6 ++ DLT_MATCHING_MIN = 0x68 ++ DLT_MFR = 0xb6 ++ DLT_MOST = 0xd3 ++ DLT_MPEG_2_TS = 0xf3 ++ DLT_MPLS = 0xdb ++ DLT_MTP2 = 0x8c ++ DLT_MTP2_WITH_PHDR = 0x8b ++ DLT_MTP3 = 0x8d ++ DLT_MUX27010 = 0xec ++ DLT_NETANALYZER = 0xf0 ++ DLT_NETANALYZER_TRANSPARENT = 0xf1 ++ DLT_NFC_LLCP = 0xf5 ++ DLT_NFLOG = 0xef ++ DLT_NG40 = 0xf4 ++ DLT_NULL = 0x0 ++ DLT_PCI_EXP = 0x7d ++ DLT_PFLOG = 0x75 ++ DLT_PFSYNC = 0x79 ++ DLT_PPI = 0xc0 ++ DLT_PPP = 0x9 ++ DLT_PPP_BSDOS = 0x10 ++ DLT_PPP_ETHER = 0x33 ++ DLT_PPP_PPPD = 0xa6 ++ DLT_PPP_SERIAL = 0x32 ++ DLT_PPP_WITH_DIR = 0xcc ++ DLT_PPP_WITH_DIRECTION = 0xa6 ++ DLT_PRISM_HEADER = 0x77 ++ DLT_PRONET = 0x4 ++ DLT_RAIF1 = 0xc6 ++ DLT_RAW = 0xc ++ DLT_RIO = 0x7c ++ DLT_SCCP = 0x8e ++ DLT_SITA = 0xc4 ++ DLT_SLIP = 0x8 ++ DLT_SLIP_BSDOS = 0xf ++ DLT_STANAG_5066_D_PDU = 0xed ++ DLT_SUNATM = 0x7b ++ DLT_SYMANTEC_FIREWALL = 0x63 ++ DLT_TZSP = 0x80 ++ DLT_USB = 0xba ++ DLT_USB_LINUX = 0xbd ++ DLT_USB_LINUX_MMAPPED = 0xdc ++ DLT_USER0 = 0x93 ++ DLT_USER1 = 0x94 ++ DLT_USER10 = 0x9d ++ DLT_USER11 = 0x9e ++ DLT_USER12 = 0x9f ++ DLT_USER13 = 0xa0 ++ DLT_USER14 = 0xa1 ++ DLT_USER15 = 0xa2 ++ DLT_USER2 = 0x95 ++ DLT_USER3 = 0x96 ++ DLT_USER4 = 0x97 ++ DLT_USER5 = 0x98 ++ DLT_USER6 = 0x99 ++ DLT_USER7 = 0x9a ++ DLT_USER8 = 0x9b ++ DLT_USER9 = 0x9c ++ DLT_WIHART = 0xdf ++ DLT_X2E_SERIAL = 0xd5 ++ DLT_X2E_XORAYA = 0xd6 ++ DT_BLK = 0x6 ++ DT_CHR = 0x2 ++ DT_DIR = 0x4 ++ DT_FIFO = 0x1 ++ DT_LNK = 0xa ++ DT_REG = 0x8 ++ DT_SOCK = 0xc ++ DT_UNKNOWN = 0x0 ++ DT_WHT = 0xe ++ ECHO = 0x8 ++ ECHOCTL = 0x40 ++ ECHOE = 0x2 ++ ECHOK = 0x4 ++ ECHOKE = 0x1 ++ ECHONL = 0x10 ++ ECHOPRT = 0x20 ++ EVFILT_AIO = -0x3 ++ EVFILT_FS = -0x9 ++ EVFILT_LIO = -0xa ++ EVFILT_PROC = -0x5 ++ EVFILT_READ = -0x1 ++ EVFILT_SIGNAL = -0x6 ++ EVFILT_SYSCOUNT = 0xb ++ EVFILT_TIMER = -0x7 ++ EVFILT_USER = -0xb ++ EVFILT_VNODE = -0x4 ++ EVFILT_WRITE = -0x2 ++ EV_ADD = 0x1 ++ EV_CLEAR = 0x20 ++ EV_DELETE = 0x2 ++ EV_DISABLE = 0x8 ++ EV_DISPATCH = 0x80 ++ EV_DROP = 0x1000 ++ EV_ENABLE = 0x4 ++ EV_EOF = 0x8000 ++ EV_ERROR = 0x4000 ++ EV_FLAG1 = 0x2000 ++ EV_ONESHOT = 0x10 ++ EV_RECEIPT = 0x40 ++ EV_SYSFLAGS = 0xf000 ++ EXTA = 0x4b00 ++ EXTATTR_NAMESPACE_EMPTY = 0x0 ++ EXTATTR_NAMESPACE_SYSTEM = 0x2 ++ EXTATTR_NAMESPACE_USER = 0x1 ++ EXTB = 0x9600 ++ EXTPROC = 0x800 ++ FD_CLOEXEC = 0x1 ++ FD_SETSIZE = 0x400 ++ FLUSHO = 0x800000 ++ F_CANCEL = 0x5 ++ F_DUP2FD = 0xa ++ F_DUP2FD_CLOEXEC = 0x12 ++ F_DUPFD = 0x0 ++ F_DUPFD_CLOEXEC = 0x11 ++ F_GETFD = 0x1 ++ F_GETFL = 0x3 ++ F_GETLK = 0xb ++ F_GETOWN = 0x5 ++ F_OGETLK = 0x7 ++ F_OK = 0x0 ++ F_OSETLK = 0x8 ++ F_OSETLKW = 0x9 ++ F_RDAHEAD = 0x10 ++ F_RDLCK = 0x1 ++ F_READAHEAD = 0xf ++ F_SETFD = 0x2 ++ F_SETFL = 0x4 ++ F_SETLK = 0xc ++ F_SETLKW = 0xd ++ F_SETLK_REMOTE = 0xe ++ F_SETOWN = 0x6 ++ F_UNLCK = 0x2 ++ F_UNLCKSYS = 0x4 ++ F_WRLCK = 0x3 ++ HUPCL = 0x4000 ++ ICANON = 0x100 ++ ICMP6_FILTER = 0x12 ++ ICRNL = 0x100 ++ IEXTEN = 0x400 ++ IFAN_ARRIVAL = 0x0 ++ IFAN_DEPARTURE = 0x1 ++ IFF_ALLMULTI = 0x200 ++ IFF_ALTPHYS = 0x4000 ++ IFF_BROADCAST = 0x2 ++ IFF_CANTCHANGE = 0x218f72 ++ IFF_CANTCONFIG = 0x10000 ++ IFF_DEBUG = 0x4 ++ IFF_DRV_OACTIVE = 0x400 ++ IFF_DRV_RUNNING = 0x40 ++ IFF_DYING = 0x200000 ++ IFF_LINK0 = 0x1000 ++ IFF_LINK1 = 0x2000 ++ IFF_LINK2 = 0x4000 ++ IFF_LOOPBACK = 0x8 ++ IFF_MONITOR = 0x40000 ++ IFF_MULTICAST = 0x8000 ++ IFF_NOARP = 0x80 ++ IFF_OACTIVE = 0x400 ++ IFF_POINTOPOINT = 0x10 ++ IFF_PPROMISC = 0x20000 ++ IFF_PROMISC = 0x100 ++ IFF_RENAMING = 0x400000 ++ IFF_RUNNING = 0x40 ++ IFF_SIMPLEX = 0x800 ++ IFF_SMART = 0x20 ++ IFF_STATICARP = 0x80000 ++ IFF_UP = 0x1 ++ IFNAMSIZ = 0x10 ++ IFT_1822 = 0x2 ++ IFT_A12MPPSWITCH = 0x82 ++ IFT_AAL2 = 0xbb ++ IFT_AAL5 = 0x31 ++ IFT_ADSL = 0x5e ++ IFT_AFLANE8023 = 0x3b ++ IFT_AFLANE8025 = 0x3c ++ IFT_ARAP = 0x58 ++ IFT_ARCNET = 0x23 ++ IFT_ARCNETPLUS = 0x24 ++ IFT_ASYNC = 0x54 ++ IFT_ATM = 0x25 ++ IFT_ATMDXI = 0x69 ++ IFT_ATMFUNI = 0x6a ++ IFT_ATMIMA = 0x6b ++ IFT_ATMLOGICAL = 0x50 ++ IFT_ATMRADIO = 0xbd ++ IFT_ATMSUBINTERFACE = 0x86 ++ IFT_ATMVCIENDPT = 0xc2 ++ IFT_ATMVIRTUAL = 0x95 ++ IFT_BGPPOLICYACCOUNTING = 0xa2 ++ IFT_BRIDGE = 0xd1 ++ IFT_BSC = 0x53 ++ IFT_CARP = 0xf8 ++ IFT_CCTEMUL = 0x3d ++ IFT_CEPT = 0x13 ++ IFT_CES = 0x85 ++ IFT_CHANNEL = 0x46 ++ IFT_CNR = 0x55 ++ IFT_COFFEE = 0x84 ++ IFT_COMPOSITELINK = 0x9b ++ IFT_DCN = 0x8d ++ IFT_DIGITALPOWERLINE = 0x8a ++ IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba ++ IFT_DLSW = 0x4a ++ IFT_DOCSCABLEDOWNSTREAM = 0x80 ++ IFT_DOCSCABLEMACLAYER = 0x7f ++ IFT_DOCSCABLEUPSTREAM = 0x81 ++ IFT_DS0 = 0x51 ++ IFT_DS0BUNDLE = 0x52 ++ IFT_DS1FDL = 0xaa ++ IFT_DS3 = 0x1e ++ IFT_DTM = 0x8c ++ IFT_DVBASILN = 0xac ++ IFT_DVBASIOUT = 0xad ++ IFT_DVBRCCDOWNSTREAM = 0x93 ++ IFT_DVBRCCMACLAYER = 0x92 ++ IFT_DVBRCCUPSTREAM = 0x94 ++ IFT_ENC = 0xf4 ++ IFT_EON = 0x19 ++ IFT_EPLRS = 0x57 ++ IFT_ESCON = 0x49 ++ IFT_ETHER = 0x6 ++ IFT_FAITH = 0xf2 ++ IFT_FAST = 0x7d ++ IFT_FASTETHER = 0x3e ++ IFT_FASTETHERFX = 0x45 ++ IFT_FDDI = 0xf ++ IFT_FIBRECHANNEL = 0x38 ++ IFT_FRAMERELAYINTERCONNECT = 0x3a ++ IFT_FRAMERELAYMPI = 0x5c ++ IFT_FRDLCIENDPT = 0xc1 ++ IFT_FRELAY = 0x20 ++ IFT_FRELAYDCE = 0x2c ++ IFT_FRF16MFRBUNDLE = 0xa3 ++ IFT_FRFORWARD = 0x9e ++ IFT_G703AT2MB = 0x43 ++ IFT_G703AT64K = 0x42 ++ IFT_GIF = 0xf0 ++ IFT_GIGABITETHERNET = 0x75 ++ IFT_GR303IDT = 0xb2 ++ IFT_GR303RDT = 0xb1 ++ IFT_H323GATEKEEPER = 0xa4 ++ IFT_H323PROXY = 0xa5 ++ IFT_HDH1822 = 0x3 ++ IFT_HDLC = 0x76 ++ IFT_HDSL2 = 0xa8 ++ IFT_HIPERLAN2 = 0xb7 ++ IFT_HIPPI = 0x2f ++ IFT_HIPPIINTERFACE = 0x39 ++ IFT_HOSTPAD = 0x5a ++ IFT_HSSI = 0x2e ++ IFT_HY = 0xe ++ IFT_IBM370PARCHAN = 0x48 ++ IFT_IDSL = 0x9a ++ IFT_IEEE1394 = 0x90 ++ IFT_IEEE80211 = 0x47 ++ IFT_IEEE80212 = 0x37 ++ IFT_IEEE8023ADLAG = 0xa1 ++ IFT_IFGSN = 0x91 ++ IFT_IMT = 0xbe ++ IFT_INFINIBAND = 0xc7 ++ IFT_INTERLEAVE = 0x7c ++ IFT_IP = 0x7e ++ IFT_IPFORWARD = 0x8e ++ IFT_IPOVERATM = 0x72 ++ IFT_IPOVERCDLC = 0x6d ++ IFT_IPOVERCLAW = 0x6e ++ IFT_IPSWITCH = 0x4e ++ IFT_IPXIP = 0xf9 ++ IFT_ISDN = 0x3f ++ IFT_ISDNBASIC = 0x14 ++ IFT_ISDNPRIMARY = 0x15 ++ IFT_ISDNS = 0x4b ++ IFT_ISDNU = 0x4c ++ IFT_ISO88022LLC = 0x29 ++ IFT_ISO88023 = 0x7 ++ IFT_ISO88024 = 0x8 ++ IFT_ISO88025 = 0x9 ++ IFT_ISO88025CRFPINT = 0x62 ++ IFT_ISO88025DTR = 0x56 ++ IFT_ISO88025FIBER = 0x73 ++ IFT_ISO88026 = 0xa ++ IFT_ISUP = 0xb3 ++ IFT_L2VLAN = 0x87 ++ IFT_L3IPVLAN = 0x88 ++ IFT_L3IPXVLAN = 0x89 ++ IFT_LAPB = 0x10 ++ IFT_LAPD = 0x4d ++ IFT_LAPF = 0x77 ++ IFT_LOCALTALK = 0x2a ++ IFT_LOOP = 0x18 ++ IFT_MEDIAMAILOVERIP = 0x8b ++ IFT_MFSIGLINK = 0xa7 ++ IFT_MIOX25 = 0x26 ++ IFT_MODEM = 0x30 ++ IFT_MPC = 0x71 ++ IFT_MPLS = 0xa6 ++ IFT_MPLSTUNNEL = 0x96 ++ IFT_MSDSL = 0x8f ++ IFT_MVL = 0xbf ++ IFT_MYRINET = 0x63 ++ IFT_NFAS = 0xaf ++ IFT_NSIP = 0x1b ++ IFT_OPTICALCHANNEL = 0xc3 ++ IFT_OPTICALTRANSPORT = 0xc4 ++ IFT_OTHER = 0x1 ++ IFT_P10 = 0xc ++ IFT_P80 = 0xd ++ IFT_PARA = 0x22 ++ IFT_PFLOG = 0xf6 ++ IFT_PFSYNC = 0xf7 ++ IFT_PLC = 0xae ++ IFT_POS = 0xab ++ IFT_PPP = 0x17 ++ IFT_PPPMULTILINKBUNDLE = 0x6c ++ IFT_PROPBWAP2MP = 0xb8 ++ IFT_PROPCNLS = 0x59 ++ IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 ++ IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 ++ IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 ++ IFT_PROPMUX = 0x36 ++ IFT_PROPVIRTUAL = 0x35 ++ IFT_PROPWIRELESSP2P = 0x9d ++ IFT_PTPSERIAL = 0x16 ++ IFT_PVC = 0xf1 ++ IFT_QLLC = 0x44 ++ IFT_RADIOMAC = 0xbc ++ IFT_RADSL = 0x5f ++ IFT_REACHDSL = 0xc0 ++ IFT_RFC1483 = 0x9f ++ IFT_RS232 = 0x21 ++ IFT_RSRB = 0x4f ++ IFT_SDLC = 0x11 ++ IFT_SDSL = 0x60 ++ IFT_SHDSL = 0xa9 ++ IFT_SIP = 0x1f ++ IFT_SLIP = 0x1c ++ IFT_SMDSDXI = 0x2b ++ IFT_SMDSICIP = 0x34 ++ IFT_SONET = 0x27 ++ IFT_SONETOVERHEADCHANNEL = 0xb9 ++ IFT_SONETPATH = 0x32 ++ IFT_SONETVT = 0x33 ++ IFT_SRP = 0x97 ++ IFT_SS7SIGLINK = 0x9c ++ IFT_STACKTOSTACK = 0x6f ++ IFT_STARLAN = 0xb ++ IFT_STF = 0xd7 ++ IFT_T1 = 0x12 ++ IFT_TDLC = 0x74 ++ IFT_TERMPAD = 0x5b ++ IFT_TR008 = 0xb0 ++ IFT_TRANSPHDLC = 0x7b ++ IFT_TUNNEL = 0x83 ++ IFT_ULTRA = 0x1d ++ IFT_USB = 0xa0 ++ IFT_V11 = 0x40 ++ IFT_V35 = 0x2d ++ IFT_V36 = 0x41 ++ IFT_V37 = 0x78 ++ IFT_VDSL = 0x61 ++ IFT_VIRTUALIPADDRESS = 0x70 ++ IFT_VOICEEM = 0x64 ++ IFT_VOICEENCAP = 0x67 ++ IFT_VOICEFXO = 0x65 ++ IFT_VOICEFXS = 0x66 ++ IFT_VOICEOVERATM = 0x98 ++ IFT_VOICEOVERFRAMERELAY = 0x99 ++ IFT_VOICEOVERIP = 0x68 ++ IFT_X213 = 0x5d ++ IFT_X25 = 0x5 ++ IFT_X25DDN = 0x4 ++ IFT_X25HUNTGROUP = 0x7a ++ IFT_X25MLP = 0x79 ++ IFT_X25PLE = 0x28 ++ IFT_XETHER = 0x1a ++ IGNBRK = 0x1 ++ IGNCR = 0x80 ++ IGNPAR = 0x4 ++ IMAXBEL = 0x2000 ++ INLCR = 0x40 ++ INPCK = 0x10 ++ IN_CLASSA_HOST = 0xffffff ++ IN_CLASSA_MAX = 0x80 ++ IN_CLASSA_NET = 0xff000000 ++ IN_CLASSA_NSHIFT = 0x18 ++ IN_CLASSB_HOST = 0xffff ++ IN_CLASSB_MAX = 0x10000 ++ IN_CLASSB_NET = 0xffff0000 ++ IN_CLASSB_NSHIFT = 0x10 ++ IN_CLASSC_HOST = 0xff ++ IN_CLASSC_NET = 0xffffff00 ++ IN_CLASSC_NSHIFT = 0x8 ++ IN_CLASSD_HOST = 0xfffffff ++ IN_CLASSD_NET = 0xf0000000 ++ IN_CLASSD_NSHIFT = 0x1c ++ IN_LOOPBACKNET = 0x7f ++ IN_RFC3021_MASK = 0xfffffffe ++ IPPROTO_3PC = 0x22 ++ IPPROTO_ADFS = 0x44 ++ IPPROTO_AH = 0x33 ++ IPPROTO_AHIP = 0x3d ++ IPPROTO_APES = 0x63 ++ IPPROTO_ARGUS = 0xd ++ IPPROTO_AX25 = 0x5d ++ IPPROTO_BHA = 0x31 ++ IPPROTO_BLT = 0x1e ++ IPPROTO_BRSATMON = 0x4c ++ IPPROTO_CARP = 0x70 ++ IPPROTO_CFTP = 0x3e ++ IPPROTO_CHAOS = 0x10 ++ IPPROTO_CMTP = 0x26 ++ IPPROTO_CPHB = 0x49 ++ IPPROTO_CPNX = 0x48 ++ IPPROTO_DDP = 0x25 ++ IPPROTO_DGP = 0x56 ++ IPPROTO_DIVERT = 0x102 ++ IPPROTO_DONE = 0x101 ++ IPPROTO_DSTOPTS = 0x3c ++ IPPROTO_EGP = 0x8 ++ IPPROTO_EMCON = 0xe ++ IPPROTO_ENCAP = 0x62 ++ IPPROTO_EON = 0x50 ++ IPPROTO_ESP = 0x32 ++ IPPROTO_ETHERIP = 0x61 ++ IPPROTO_FRAGMENT = 0x2c ++ IPPROTO_GGP = 0x3 ++ IPPROTO_GMTP = 0x64 ++ IPPROTO_GRE = 0x2f ++ IPPROTO_HELLO = 0x3f ++ IPPROTO_HIP = 0x8b ++ IPPROTO_HMP = 0x14 ++ IPPROTO_HOPOPTS = 0x0 ++ IPPROTO_ICMP = 0x1 ++ IPPROTO_ICMPV6 = 0x3a ++ IPPROTO_IDP = 0x16 ++ IPPROTO_IDPR = 0x23 ++ IPPROTO_IDRP = 0x2d ++ IPPROTO_IGMP = 0x2 ++ IPPROTO_IGP = 0x55 ++ IPPROTO_IGRP = 0x58 ++ IPPROTO_IL = 0x28 ++ IPPROTO_INLSP = 0x34 ++ IPPROTO_INP = 0x20 ++ IPPROTO_IP = 0x0 ++ IPPROTO_IPCOMP = 0x6c ++ IPPROTO_IPCV = 0x47 ++ IPPROTO_IPEIP = 0x5e ++ IPPROTO_IPIP = 0x4 ++ IPPROTO_IPPC = 0x43 ++ IPPROTO_IPV4 = 0x4 ++ IPPROTO_IPV6 = 0x29 ++ IPPROTO_IRTP = 0x1c ++ IPPROTO_KRYPTOLAN = 0x41 ++ IPPROTO_LARP = 0x5b ++ IPPROTO_LEAF1 = 0x19 ++ IPPROTO_LEAF2 = 0x1a ++ IPPROTO_MAX = 0x100 ++ IPPROTO_MAXID = 0x34 ++ IPPROTO_MEAS = 0x13 ++ IPPROTO_MH = 0x87 ++ IPPROTO_MHRP = 0x30 ++ IPPROTO_MICP = 0x5f ++ IPPROTO_MOBILE = 0x37 ++ IPPROTO_MPLS = 0x89 ++ IPPROTO_MTP = 0x5c ++ IPPROTO_MUX = 0x12 ++ IPPROTO_ND = 0x4d ++ IPPROTO_NHRP = 0x36 ++ IPPROTO_NONE = 0x3b ++ IPPROTO_NSP = 0x1f ++ IPPROTO_NVPII = 0xb ++ IPPROTO_OLD_DIVERT = 0xfe ++ IPPROTO_OSPFIGP = 0x59 ++ IPPROTO_PFSYNC = 0xf0 ++ IPPROTO_PGM = 0x71 ++ IPPROTO_PIGP = 0x9 ++ IPPROTO_PIM = 0x67 ++ IPPROTO_PRM = 0x15 ++ IPPROTO_PUP = 0xc ++ IPPROTO_PVP = 0x4b ++ IPPROTO_RAW = 0xff ++ IPPROTO_RCCMON = 0xa ++ IPPROTO_RDP = 0x1b ++ IPPROTO_RESERVED_253 = 0xfd ++ IPPROTO_RESERVED_254 = 0xfe ++ IPPROTO_ROUTING = 0x2b ++ IPPROTO_RSVP = 0x2e ++ IPPROTO_RVD = 0x42 ++ IPPROTO_SATEXPAK = 0x40 ++ IPPROTO_SATMON = 0x45 ++ IPPROTO_SCCSP = 0x60 ++ IPPROTO_SCTP = 0x84 ++ IPPROTO_SDRP = 0x2a ++ IPPROTO_SEND = 0x103 ++ IPPROTO_SEP = 0x21 ++ IPPROTO_SHIM6 = 0x8c ++ IPPROTO_SKIP = 0x39 ++ IPPROTO_SPACER = 0x7fff ++ IPPROTO_SRPC = 0x5a ++ IPPROTO_ST = 0x7 ++ IPPROTO_SVMTP = 0x52 ++ IPPROTO_SWIPE = 0x35 ++ IPPROTO_TCF = 0x57 ++ IPPROTO_TCP = 0x6 ++ IPPROTO_TLSP = 0x38 ++ IPPROTO_TP = 0x1d ++ IPPROTO_TPXX = 0x27 ++ IPPROTO_TRUNK1 = 0x17 ++ IPPROTO_TRUNK2 = 0x18 ++ IPPROTO_TTP = 0x54 ++ IPPROTO_UDP = 0x11 ++ IPPROTO_UDPLITE = 0x88 ++ IPPROTO_VINES = 0x53 ++ IPPROTO_VISA = 0x46 ++ IPPROTO_VMTP = 0x51 ++ IPPROTO_WBEXPAK = 0x4f ++ IPPROTO_WBMON = 0x4e ++ IPPROTO_WSN = 0x4a ++ IPPROTO_XNET = 0xf ++ IPPROTO_XTP = 0x24 ++ IPV6_AUTOFLOWLABEL = 0x3b ++ IPV6_BINDANY = 0x40 ++ IPV6_BINDV6ONLY = 0x1b ++ IPV6_CHECKSUM = 0x1a ++ IPV6_DEFAULT_MULTICAST_HOPS = 0x1 ++ IPV6_DEFAULT_MULTICAST_LOOP = 0x1 ++ IPV6_DEFHLIM = 0x40 ++ IPV6_DONTFRAG = 0x3e ++ IPV6_DSTOPTS = 0x32 ++ IPV6_FAITH = 0x1d ++ IPV6_FLOWINFO_MASK = 0xffffff0f ++ IPV6_FLOWLABEL_MASK = 0xffff0f00 ++ IPV6_FRAGTTL = 0x78 ++ IPV6_FW_ADD = 0x1e ++ IPV6_FW_DEL = 0x1f ++ IPV6_FW_FLUSH = 0x20 ++ IPV6_FW_GET = 0x22 ++ IPV6_FW_ZERO = 0x21 ++ IPV6_HLIMDEC = 0x1 ++ IPV6_HOPLIMIT = 0x2f ++ IPV6_HOPOPTS = 0x31 ++ IPV6_IPSEC_POLICY = 0x1c ++ IPV6_JOIN_GROUP = 0xc ++ IPV6_LEAVE_GROUP = 0xd ++ IPV6_MAXHLIM = 0xff ++ IPV6_MAXOPTHDR = 0x800 ++ IPV6_MAXPACKET = 0xffff ++ IPV6_MAX_GROUP_SRC_FILTER = 0x200 ++ IPV6_MAX_MEMBERSHIPS = 0xfff ++ IPV6_MAX_SOCK_SRC_FILTER = 0x80 ++ IPV6_MIN_MEMBERSHIPS = 0x1f ++ IPV6_MMTU = 0x500 ++ IPV6_MSFILTER = 0x4a ++ IPV6_MULTICAST_HOPS = 0xa ++ IPV6_MULTICAST_IF = 0x9 ++ IPV6_MULTICAST_LOOP = 0xb ++ IPV6_NEXTHOP = 0x30 ++ IPV6_PATHMTU = 0x2c ++ IPV6_PKTINFO = 0x2e ++ IPV6_PORTRANGE = 0xe ++ IPV6_PORTRANGE_DEFAULT = 0x0 ++ IPV6_PORTRANGE_HIGH = 0x1 ++ IPV6_PORTRANGE_LOW = 0x2 ++ IPV6_PREFER_TEMPADDR = 0x3f ++ IPV6_RECVDSTOPTS = 0x28 ++ IPV6_RECVHOPLIMIT = 0x25 ++ IPV6_RECVHOPOPTS = 0x27 ++ IPV6_RECVPATHMTU = 0x2b ++ IPV6_RECVPKTINFO = 0x24 ++ IPV6_RECVRTHDR = 0x26 ++ IPV6_RECVTCLASS = 0x39 ++ IPV6_RTHDR = 0x33 ++ IPV6_RTHDRDSTOPTS = 0x23 ++ IPV6_RTHDR_LOOSE = 0x0 ++ IPV6_RTHDR_STRICT = 0x1 ++ IPV6_RTHDR_TYPE_0 = 0x0 ++ IPV6_SOCKOPT_RESERVED1 = 0x3 ++ IPV6_TCLASS = 0x3d ++ IPV6_UNICAST_HOPS = 0x4 ++ IPV6_USE_MIN_MTU = 0x2a ++ IPV6_V6ONLY = 0x1b ++ IPV6_VERSION = 0x60 ++ IPV6_VERSION_MASK = 0xf0 ++ IP_ADD_MEMBERSHIP = 0xc ++ IP_ADD_SOURCE_MEMBERSHIP = 0x46 ++ IP_BINDANY = 0x18 ++ IP_BLOCK_SOURCE = 0x48 ++ IP_DEFAULT_MULTICAST_LOOP = 0x1 ++ IP_DEFAULT_MULTICAST_TTL = 0x1 ++ IP_DF = 0x4000 ++ IP_DONTFRAG = 0x43 ++ IP_DROP_MEMBERSHIP = 0xd ++ IP_DROP_SOURCE_MEMBERSHIP = 0x47 ++ IP_DUMMYNET3 = 0x31 ++ IP_DUMMYNET_CONFIGURE = 0x3c ++ IP_DUMMYNET_DEL = 0x3d ++ IP_DUMMYNET_FLUSH = 0x3e ++ IP_DUMMYNET_GET = 0x40 ++ IP_FAITH = 0x16 ++ IP_FW3 = 0x30 ++ IP_FW_ADD = 0x32 ++ IP_FW_DEL = 0x33 ++ IP_FW_FLUSH = 0x34 ++ IP_FW_GET = 0x36 ++ IP_FW_NAT_CFG = 0x38 ++ IP_FW_NAT_DEL = 0x39 ++ IP_FW_NAT_GET_CONFIG = 0x3a ++ IP_FW_NAT_GET_LOG = 0x3b ++ IP_FW_RESETLOG = 0x37 ++ IP_FW_TABLE_ADD = 0x28 ++ IP_FW_TABLE_DEL = 0x29 ++ IP_FW_TABLE_FLUSH = 0x2a ++ IP_FW_TABLE_GETSIZE = 0x2b ++ IP_FW_TABLE_LIST = 0x2c ++ IP_FW_ZERO = 0x35 ++ IP_HDRINCL = 0x2 ++ IP_IPSEC_POLICY = 0x15 ++ IP_MAXPACKET = 0xffff ++ IP_MAX_GROUP_SRC_FILTER = 0x200 ++ IP_MAX_MEMBERSHIPS = 0xfff ++ IP_MAX_SOCK_MUTE_FILTER = 0x80 ++ IP_MAX_SOCK_SRC_FILTER = 0x80 ++ IP_MAX_SOURCE_FILTER = 0x400 ++ IP_MF = 0x2000 ++ IP_MINTTL = 0x42 ++ IP_MIN_MEMBERSHIPS = 0x1f ++ IP_MSFILTER = 0x4a ++ IP_MSS = 0x240 ++ IP_MULTICAST_IF = 0x9 ++ IP_MULTICAST_LOOP = 0xb ++ IP_MULTICAST_TTL = 0xa ++ IP_MULTICAST_VIF = 0xe ++ IP_OFFMASK = 0x1fff ++ IP_ONESBCAST = 0x17 ++ IP_OPTIONS = 0x1 ++ IP_PORTRANGE = 0x13 ++ IP_PORTRANGE_DEFAULT = 0x0 ++ IP_PORTRANGE_HIGH = 0x1 ++ IP_PORTRANGE_LOW = 0x2 ++ IP_RECVDSTADDR = 0x7 ++ IP_RECVIF = 0x14 ++ IP_RECVOPTS = 0x5 ++ IP_RECVRETOPTS = 0x6 ++ IP_RECVTOS = 0x44 ++ IP_RECVTTL = 0x41 ++ IP_RETOPTS = 0x8 ++ IP_RF = 0x8000 ++ IP_RSVP_OFF = 0x10 ++ IP_RSVP_ON = 0xf ++ IP_RSVP_VIF_OFF = 0x12 ++ IP_RSVP_VIF_ON = 0x11 ++ IP_SENDSRCADDR = 0x7 ++ IP_TOS = 0x3 ++ IP_TTL = 0x4 ++ IP_UNBLOCK_SOURCE = 0x49 ++ ISIG = 0x80 ++ ISTRIP = 0x20 ++ IXANY = 0x800 ++ IXOFF = 0x400 ++ IXON = 0x200 ++ LOCK_EX = 0x2 ++ LOCK_NB = 0x4 ++ LOCK_SH = 0x1 ++ LOCK_UN = 0x8 ++ MADV_AUTOSYNC = 0x7 ++ MADV_CORE = 0x9 ++ MADV_DONTNEED = 0x4 ++ MADV_FREE = 0x5 ++ MADV_NOCORE = 0x8 ++ MADV_NORMAL = 0x0 ++ MADV_NOSYNC = 0x6 ++ MADV_PROTECT = 0xa ++ MADV_RANDOM = 0x1 ++ MADV_SEQUENTIAL = 0x2 ++ MADV_WILLNEED = 0x3 ++ MAP_ALIGNED_SUPER = 0x1000000 ++ MAP_ALIGNMENT_MASK = -0x1000000 ++ MAP_ALIGNMENT_SHIFT = 0x18 ++ MAP_ANON = 0x1000 ++ MAP_ANONYMOUS = 0x1000 ++ MAP_COPY = 0x2 ++ MAP_EXCL = 0x4000 ++ MAP_FILE = 0x0 ++ MAP_FIXED = 0x10 ++ MAP_HASSEMAPHORE = 0x200 ++ MAP_NOCORE = 0x20000 ++ MAP_NORESERVE = 0x40 ++ MAP_NOSYNC = 0x800 ++ MAP_PREFAULT_READ = 0x40000 ++ MAP_PRIVATE = 0x2 ++ MAP_RENAME = 0x20 ++ MAP_RESERVED0080 = 0x80 ++ MAP_RESERVED0100 = 0x100 ++ MAP_SHARED = 0x1 ++ MAP_STACK = 0x400 ++ MCL_CURRENT = 0x1 ++ MCL_FUTURE = 0x2 ++ MSG_CMSG_CLOEXEC = 0x40000 ++ MSG_COMPAT = 0x8000 ++ MSG_CTRUNC = 0x20 ++ MSG_DONTROUTE = 0x4 ++ MSG_DONTWAIT = 0x80 ++ MSG_EOF = 0x100 ++ MSG_EOR = 0x8 ++ MSG_NBIO = 0x4000 ++ MSG_NOSIGNAL = 0x20000 ++ MSG_NOTIFICATION = 0x2000 ++ MSG_OOB = 0x1 ++ MSG_PEEK = 0x2 ++ MSG_TRUNC = 0x10 ++ MSG_WAITALL = 0x40 ++ MS_ASYNC = 0x1 ++ MS_INVALIDATE = 0x2 ++ MS_SYNC = 0x0 ++ NAME_MAX = 0xff ++ NET_RT_DUMP = 0x1 ++ NET_RT_FLAGS = 0x2 ++ NET_RT_IFLIST = 0x3 ++ NET_RT_IFLISTL = 0x5 ++ NET_RT_IFMALIST = 0x4 ++ NET_RT_MAXID = 0x6 ++ NOFLSH = 0x80000000 ++ NOTE_ATTRIB = 0x8 ++ NOTE_CHILD = 0x4 ++ NOTE_DELETE = 0x1 ++ NOTE_EXEC = 0x20000000 ++ NOTE_EXIT = 0x80000000 ++ NOTE_EXTEND = 0x4 ++ NOTE_FFAND = 0x40000000 ++ NOTE_FFCOPY = 0xc0000000 ++ NOTE_FFCTRLMASK = 0xc0000000 ++ NOTE_FFLAGSMASK = 0xffffff ++ NOTE_FFNOP = 0x0 ++ NOTE_FFOR = 0x80000000 ++ NOTE_FORK = 0x40000000 ++ NOTE_LINK = 0x10 ++ NOTE_LOWAT = 0x1 ++ NOTE_PCTRLMASK = 0xf0000000 ++ NOTE_PDATAMASK = 0xfffff ++ NOTE_RENAME = 0x20 ++ NOTE_REVOKE = 0x40 ++ NOTE_TRACK = 0x1 ++ NOTE_TRACKERR = 0x2 ++ NOTE_TRIGGER = 0x1000000 ++ NOTE_WRITE = 0x2 ++ OCRNL = 0x10 ++ ONLCR = 0x2 ++ ONLRET = 0x40 ++ ONOCR = 0x20 ++ ONOEOT = 0x8 ++ OPOST = 0x1 ++ O_ACCMODE = 0x3 ++ O_APPEND = 0x8 ++ O_ASYNC = 0x40 ++ O_CLOEXEC = 0x100000 ++ O_CREAT = 0x200 ++ O_DIRECT = 0x10000 ++ O_DIRECTORY = 0x20000 ++ O_EXCL = 0x800 ++ O_EXEC = 0x40000 ++ O_EXLOCK = 0x20 ++ O_FSYNC = 0x80 ++ O_NDELAY = 0x4 ++ O_NOCTTY = 0x8000 ++ O_NOFOLLOW = 0x100 ++ O_NONBLOCK = 0x4 ++ O_RDONLY = 0x0 ++ O_RDWR = 0x2 ++ O_SHLOCK = 0x10 ++ O_SYNC = 0x80 ++ O_TRUNC = 0x400 ++ O_TTY_INIT = 0x80000 ++ O_WRONLY = 0x1 ++ PARENB = 0x1000 ++ PARMRK = 0x8 ++ PARODD = 0x2000 ++ PENDIN = 0x20000000 ++ PRIO_PGRP = 0x1 ++ PRIO_PROCESS = 0x0 ++ PRIO_USER = 0x2 ++ PROT_EXEC = 0x4 ++ PROT_NONE = 0x0 ++ PROT_READ = 0x1 ++ PROT_WRITE = 0x2 ++ RLIMIT_AS = 0xa ++ RLIMIT_CORE = 0x4 ++ RLIMIT_CPU = 0x0 ++ RLIMIT_DATA = 0x2 ++ RLIMIT_FSIZE = 0x1 ++ RLIMIT_NOFILE = 0x8 ++ RLIMIT_STACK = 0x3 ++ RLIM_INFINITY = 0x7fffffffffffffff ++ RTAX_AUTHOR = 0x6 ++ RTAX_BRD = 0x7 ++ RTAX_DST = 0x0 ++ RTAX_GATEWAY = 0x1 ++ RTAX_GENMASK = 0x3 ++ RTAX_IFA = 0x5 ++ RTAX_IFP = 0x4 ++ RTAX_MAX = 0x8 ++ RTAX_NETMASK = 0x2 ++ RTA_AUTHOR = 0x40 ++ RTA_BRD = 0x80 ++ RTA_DST = 0x1 ++ RTA_GATEWAY = 0x2 ++ RTA_GENMASK = 0x8 ++ RTA_IFA = 0x20 ++ RTA_IFP = 0x10 ++ RTA_NETMASK = 0x4 ++ RTF_BLACKHOLE = 0x1000 ++ RTF_BROADCAST = 0x400000 ++ RTF_DONE = 0x40 ++ RTF_DYNAMIC = 0x10 ++ RTF_FMASK = 0x1004d808 ++ RTF_GATEWAY = 0x2 ++ RTF_GWFLAG_COMPAT = 0x80000000 ++ RTF_HOST = 0x4 ++ RTF_LLDATA = 0x400 ++ RTF_LLINFO = 0x400 ++ RTF_LOCAL = 0x200000 ++ RTF_MODIFIED = 0x20 ++ RTF_MULTICAST = 0x800000 ++ RTF_PINNED = 0x100000 ++ RTF_PRCLONING = 0x10000 ++ RTF_PROTO1 = 0x8000 ++ RTF_PROTO2 = 0x4000 ++ RTF_PROTO3 = 0x40000 ++ RTF_REJECT = 0x8 ++ RTF_RNH_LOCKED = 0x40000000 ++ RTF_STATIC = 0x800 ++ RTF_STICKY = 0x10000000 ++ RTF_UP = 0x1 ++ RTF_XRESOLVE = 0x200 ++ RTM_ADD = 0x1 ++ RTM_CHANGE = 0x3 ++ RTM_DELADDR = 0xd ++ RTM_DELETE = 0x2 ++ RTM_DELMADDR = 0x10 ++ RTM_GET = 0x4 ++ RTM_IEEE80211 = 0x12 ++ RTM_IFANNOUNCE = 0x11 ++ RTM_IFINFO = 0xe ++ RTM_LOCK = 0x8 ++ RTM_LOSING = 0x5 ++ RTM_MISS = 0x7 ++ RTM_NEWADDR = 0xc ++ RTM_NEWMADDR = 0xf ++ RTM_OLDADD = 0x9 ++ RTM_OLDDEL = 0xa ++ RTM_REDIRECT = 0x6 ++ RTM_RESOLVE = 0xb ++ RTM_RTTUNIT = 0xf4240 ++ RTM_VERSION = 0x5 ++ RTV_EXPIRE = 0x4 ++ RTV_HOPCOUNT = 0x2 ++ RTV_MTU = 0x1 ++ RTV_RPIPE = 0x8 ++ RTV_RTT = 0x40 ++ RTV_RTTVAR = 0x80 ++ RTV_SPIPE = 0x10 ++ RTV_SSTHRESH = 0x20 ++ RTV_WEIGHT = 0x100 ++ RT_ALL_FIBS = -0x1 ++ RT_CACHING_CONTEXT = 0x1 ++ RT_DEFAULT_FIB = 0x0 ++ RT_NORTREF = 0x2 ++ RUSAGE_CHILDREN = -0x1 ++ RUSAGE_SELF = 0x0 ++ RUSAGE_THREAD = 0x1 ++ SCM_BINTIME = 0x4 ++ SCM_CREDS = 0x3 ++ SCM_RIGHTS = 0x1 ++ SCM_TIMESTAMP = 0x2 ++ SHUT_RD = 0x0 ++ SHUT_RDWR = 0x2 ++ SHUT_WR = 0x1 ++ SIOCADDMULTI = 0x80206931 ++ SIOCADDRT = 0x8030720a ++ SIOCAIFADDR = 0x8040691a ++ SIOCAIFGROUP = 0x80246987 ++ SIOCALIFADDR = 0x8118691b ++ SIOCATMARK = 0x40047307 ++ SIOCDELMULTI = 0x80206932 ++ SIOCDELRT = 0x8030720b ++ SIOCDIFADDR = 0x80206919 ++ SIOCDIFGROUP = 0x80246989 ++ SIOCDIFPHYADDR = 0x80206949 ++ SIOCDLIFADDR = 0x8118691d ++ SIOCGDRVSPEC = 0xc01c697b ++ SIOCGETSGCNT = 0xc0147210 ++ SIOCGETVIFCNT = 0xc014720f ++ SIOCGHIWAT = 0x40047301 ++ SIOCGIFADDR = 0xc0206921 ++ SIOCGIFBRDADDR = 0xc0206923 ++ SIOCGIFCAP = 0xc020691f ++ SIOCGIFCONF = 0xc0086924 ++ SIOCGIFDESCR = 0xc020692a ++ SIOCGIFDSTADDR = 0xc0206922 ++ SIOCGIFFIB = 0xc020695c ++ SIOCGIFFLAGS = 0xc0206911 ++ SIOCGIFGENERIC = 0xc020693a ++ SIOCGIFGMEMB = 0xc024698a ++ SIOCGIFGROUP = 0xc0246988 ++ SIOCGIFINDEX = 0xc0206920 ++ SIOCGIFMAC = 0xc0206926 ++ SIOCGIFMEDIA = 0xc0286938 ++ SIOCGIFMETRIC = 0xc0206917 ++ SIOCGIFMTU = 0xc0206933 ++ SIOCGIFNETMASK = 0xc0206925 ++ SIOCGIFPDSTADDR = 0xc0206948 ++ SIOCGIFPHYS = 0xc0206935 ++ SIOCGIFPSRCADDR = 0xc0206947 ++ SIOCGIFSTATUS = 0xc331693b ++ SIOCGLIFADDR = 0xc118691c ++ SIOCGLIFPHYADDR = 0xc118694b ++ SIOCGLOWAT = 0x40047303 ++ SIOCGPGRP = 0x40047309 ++ SIOCGPRIVATE_0 = 0xc0206950 ++ SIOCGPRIVATE_1 = 0xc0206951 ++ SIOCIFCREATE = 0xc020697a ++ SIOCIFCREATE2 = 0xc020697c ++ SIOCIFDESTROY = 0x80206979 ++ SIOCIFGCLONERS = 0xc00c6978 ++ SIOCSDRVSPEC = 0x801c697b ++ SIOCSHIWAT = 0x80047300 ++ SIOCSIFADDR = 0x8020690c ++ SIOCSIFBRDADDR = 0x80206913 ++ SIOCSIFCAP = 0x8020691e ++ SIOCSIFDESCR = 0x80206929 ++ SIOCSIFDSTADDR = 0x8020690e ++ SIOCSIFFIB = 0x8020695d ++ SIOCSIFFLAGS = 0x80206910 ++ SIOCSIFGENERIC = 0x80206939 ++ SIOCSIFLLADDR = 0x8020693c ++ SIOCSIFMAC = 0x80206927 ++ SIOCSIFMEDIA = 0xc0206937 ++ SIOCSIFMETRIC = 0x80206918 ++ SIOCSIFMTU = 0x80206934 ++ SIOCSIFNAME = 0x80206928 ++ SIOCSIFNETMASK = 0x80206916 ++ SIOCSIFPHYADDR = 0x80406946 ++ SIOCSIFPHYS = 0x80206936 ++ SIOCSIFRVNET = 0xc020695b ++ SIOCSIFVNET = 0xc020695a ++ SIOCSLIFPHYADDR = 0x8118694a ++ SIOCSLOWAT = 0x80047302 ++ SIOCSPGRP = 0x80047308 ++ SOCK_CLOEXEC = 0x10000000 ++ SOCK_DGRAM = 0x2 ++ SOCK_MAXADDRLEN = 0xff ++ SOCK_NONBLOCK = 0x20000000 ++ SOCK_RAW = 0x3 ++ SOCK_RDM = 0x4 ++ SOCK_SEQPACKET = 0x5 ++ SOCK_STREAM = 0x1 ++ SOL_SOCKET = 0xffff ++ SOMAXCONN = 0x80 ++ SO_ACCEPTCONN = 0x2 ++ SO_ACCEPTFILTER = 0x1000 ++ SO_BINTIME = 0x2000 ++ SO_BROADCAST = 0x20 ++ SO_DEBUG = 0x1 ++ SO_DONTROUTE = 0x10 ++ SO_ERROR = 0x1007 ++ SO_KEEPALIVE = 0x8 ++ SO_LABEL = 0x1009 ++ SO_LINGER = 0x80 ++ SO_LISTENINCQLEN = 0x1013 ++ SO_LISTENQLEN = 0x1012 ++ SO_LISTENQLIMIT = 0x1011 ++ SO_NOSIGPIPE = 0x800 ++ SO_NO_DDP = 0x8000 ++ SO_NO_OFFLOAD = 0x4000 ++ SO_OOBINLINE = 0x100 ++ SO_PEERLABEL = 0x1010 ++ SO_PROTOCOL = 0x1016 ++ SO_PROTOTYPE = 0x1016 ++ SO_RCVBUF = 0x1002 ++ SO_RCVLOWAT = 0x1004 ++ SO_RCVTIMEO = 0x1006 ++ SO_REUSEADDR = 0x4 ++ SO_REUSEPORT = 0x200 ++ SO_SETFIB = 0x1014 ++ SO_SNDBUF = 0x1001 ++ SO_SNDLOWAT = 0x1003 ++ SO_SNDTIMEO = 0x1005 ++ SO_TIMESTAMP = 0x400 ++ SO_TYPE = 0x1008 ++ SO_USELOOPBACK = 0x40 ++ SO_USER_COOKIE = 0x1015 ++ SO_VENDOR = 0x80000000 ++ TCIFLUSH = 0x1 ++ TCIOFLUSH = 0x3 ++ TCOFLUSH = 0x2 ++ TCP_CA_NAME_MAX = 0x10 ++ TCP_CONGESTION = 0x40 ++ TCP_INFO = 0x20 ++ TCP_KEEPCNT = 0x400 ++ TCP_KEEPIDLE = 0x100 ++ TCP_KEEPINIT = 0x80 ++ TCP_KEEPINTVL = 0x200 ++ TCP_MAXBURST = 0x4 ++ TCP_MAXHLEN = 0x3c ++ TCP_MAXOLEN = 0x28 ++ TCP_MAXSEG = 0x2 ++ TCP_MAXWIN = 0xffff ++ TCP_MAX_SACK = 0x4 ++ TCP_MAX_WINSHIFT = 0xe ++ TCP_MD5SIG = 0x10 ++ TCP_MINMSS = 0xd8 ++ TCP_MSS = 0x218 ++ TCP_NODELAY = 0x1 ++ TCP_NOOPT = 0x8 ++ TCP_NOPUSH = 0x4 ++ TCP_VENDOR = 0x80000000 ++ TCSAFLUSH = 0x2 ++ TIOCCBRK = 0x2000747a ++ TIOCCDTR = 0x20007478 ++ TIOCCONS = 0x80047462 ++ TIOCDRAIN = 0x2000745e ++ TIOCEXCL = 0x2000740d ++ TIOCEXT = 0x80047460 ++ TIOCFLUSH = 0x80047410 ++ TIOCGDRAINWAIT = 0x40047456 ++ TIOCGETA = 0x402c7413 ++ TIOCGETD = 0x4004741a ++ TIOCGPGRP = 0x40047477 ++ TIOCGPTN = 0x4004740f ++ TIOCGSID = 0x40047463 ++ TIOCGWINSZ = 0x40087468 ++ TIOCMBIC = 0x8004746b ++ TIOCMBIS = 0x8004746c ++ TIOCMGDTRWAIT = 0x4004745a ++ TIOCMGET = 0x4004746a ++ TIOCMSDTRWAIT = 0x8004745b ++ TIOCMSET = 0x8004746d ++ TIOCM_CAR = 0x40 ++ TIOCM_CD = 0x40 ++ TIOCM_CTS = 0x20 ++ TIOCM_DCD = 0x40 ++ TIOCM_DSR = 0x100 ++ TIOCM_DTR = 0x2 ++ TIOCM_LE = 0x1 ++ TIOCM_RI = 0x80 ++ TIOCM_RNG = 0x80 ++ TIOCM_RTS = 0x4 ++ TIOCM_SR = 0x10 ++ TIOCM_ST = 0x8 ++ TIOCNOTTY = 0x20007471 ++ TIOCNXCL = 0x2000740e ++ TIOCOUTQ = 0x40047473 ++ TIOCPKT = 0x80047470 ++ TIOCPKT_DATA = 0x0 ++ TIOCPKT_DOSTOP = 0x20 ++ TIOCPKT_FLUSHREAD = 0x1 ++ TIOCPKT_FLUSHWRITE = 0x2 ++ TIOCPKT_IOCTL = 0x40 ++ TIOCPKT_NOSTOP = 0x10 ++ TIOCPKT_START = 0x8 ++ TIOCPKT_STOP = 0x4 ++ TIOCPTMASTER = 0x2000741c ++ TIOCSBRK = 0x2000747b ++ TIOCSCTTY = 0x20007461 ++ TIOCSDRAINWAIT = 0x80047457 ++ TIOCSDTR = 0x20007479 ++ TIOCSETA = 0x802c7414 ++ TIOCSETAF = 0x802c7416 ++ TIOCSETAW = 0x802c7415 ++ TIOCSETD = 0x8004741b ++ TIOCSIG = 0x2004745f ++ TIOCSPGRP = 0x80047476 ++ TIOCSTART = 0x2000746e ++ TIOCSTAT = 0x20007465 ++ TIOCSTI = 0x80017472 ++ TIOCSTOP = 0x2000746f ++ TIOCSWINSZ = 0x80087467 ++ TIOCTIMESTAMP = 0x40087459 ++ TIOCUCNTL = 0x80047466 ++ TOSTOP = 0x400000 ++ VDISCARD = 0xf ++ VDSUSP = 0xb ++ VEOF = 0x0 ++ VEOL = 0x1 ++ VEOL2 = 0x2 ++ VERASE = 0x3 ++ VERASE2 = 0x7 ++ VINTR = 0x8 ++ VKILL = 0x5 ++ VLNEXT = 0xe ++ VMIN = 0x10 ++ VQUIT = 0x9 ++ VREPRINT = 0x6 ++ VSTART = 0xc ++ VSTATUS = 0x12 ++ VSTOP = 0xd ++ VSUSP = 0xa ++ VTIME = 0x11 ++ VWERASE = 0x4 ++ WCONTINUED = 0x4 ++ WCOREFLAG = 0x80 ++ WEXITED = 0x10 ++ WLINUXCLONE = 0x80000000 ++ WNOHANG = 0x1 ++ WNOWAIT = 0x8 ++ WSTOPPED = 0x2 ++ WTRAPPED = 0x20 ++ WUNTRACED = 0x2 ++) ++ ++// Errors ++const ( ++ E2BIG = syscall.Errno(0x7) ++ EACCES = syscall.Errno(0xd) ++ EADDRINUSE = syscall.Errno(0x30) ++ EADDRNOTAVAIL = syscall.Errno(0x31) ++ EAFNOSUPPORT = syscall.Errno(0x2f) ++ EAGAIN = syscall.Errno(0x23) ++ EALREADY = syscall.Errno(0x25) ++ EAUTH = syscall.Errno(0x50) ++ EBADF = syscall.Errno(0x9) ++ EBADMSG = syscall.Errno(0x59) ++ EBADRPC = syscall.Errno(0x48) ++ EBUSY = syscall.Errno(0x10) ++ ECANCELED = syscall.Errno(0x55) ++ ECAPMODE = syscall.Errno(0x5e) ++ ECHILD = syscall.Errno(0xa) ++ ECONNABORTED = syscall.Errno(0x35) ++ ECONNREFUSED = syscall.Errno(0x3d) ++ ECONNRESET = syscall.Errno(0x36) ++ EDEADLK = syscall.Errno(0xb) ++ EDESTADDRREQ = syscall.Errno(0x27) ++ EDOM = syscall.Errno(0x21) ++ EDOOFUS = syscall.Errno(0x58) ++ EDQUOT = syscall.Errno(0x45) ++ EEXIST = syscall.Errno(0x11) ++ EFAULT = syscall.Errno(0xe) ++ EFBIG = syscall.Errno(0x1b) ++ EFTYPE = syscall.Errno(0x4f) ++ EHOSTDOWN = syscall.Errno(0x40) ++ EHOSTUNREACH = syscall.Errno(0x41) ++ EIDRM = syscall.Errno(0x52) ++ EILSEQ = syscall.Errno(0x56) ++ EINPROGRESS = syscall.Errno(0x24) ++ EINTR = syscall.Errno(0x4) ++ EINVAL = syscall.Errno(0x16) ++ EIO = syscall.Errno(0x5) ++ EISCONN = syscall.Errno(0x38) ++ EISDIR = syscall.Errno(0x15) ++ ELAST = syscall.Errno(0x60) ++ ELOOP = syscall.Errno(0x3e) ++ EMFILE = syscall.Errno(0x18) ++ EMLINK = syscall.Errno(0x1f) ++ EMSGSIZE = syscall.Errno(0x28) ++ EMULTIHOP = syscall.Errno(0x5a) ++ ENAMETOOLONG = syscall.Errno(0x3f) ++ ENEEDAUTH = syscall.Errno(0x51) ++ ENETDOWN = syscall.Errno(0x32) ++ ENETRESET = syscall.Errno(0x34) ++ ENETUNREACH = syscall.Errno(0x33) ++ ENFILE = syscall.Errno(0x17) ++ ENOATTR = syscall.Errno(0x57) ++ ENOBUFS = syscall.Errno(0x37) ++ ENODEV = syscall.Errno(0x13) ++ ENOENT = syscall.Errno(0x2) ++ ENOEXEC = syscall.Errno(0x8) ++ ENOLCK = syscall.Errno(0x4d) ++ ENOLINK = syscall.Errno(0x5b) ++ ENOMEM = syscall.Errno(0xc) ++ ENOMSG = syscall.Errno(0x53) ++ ENOPROTOOPT = syscall.Errno(0x2a) ++ ENOSPC = syscall.Errno(0x1c) ++ ENOSYS = syscall.Errno(0x4e) ++ ENOTBLK = syscall.Errno(0xf) ++ ENOTCAPABLE = syscall.Errno(0x5d) ++ ENOTCONN = syscall.Errno(0x39) ++ ENOTDIR = syscall.Errno(0x14) ++ ENOTEMPTY = syscall.Errno(0x42) ++ ENOTRECOVERABLE = syscall.Errno(0x5f) ++ ENOTSOCK = syscall.Errno(0x26) ++ ENOTSUP = syscall.Errno(0x2d) ++ ENOTTY = syscall.Errno(0x19) ++ ENXIO = syscall.Errno(0x6) ++ EOPNOTSUPP = syscall.Errno(0x2d) ++ EOVERFLOW = syscall.Errno(0x54) ++ EOWNERDEAD = syscall.Errno(0x60) ++ EPERM = syscall.Errno(0x1) ++ EPFNOSUPPORT = syscall.Errno(0x2e) ++ EPIPE = syscall.Errno(0x20) ++ EPROCLIM = syscall.Errno(0x43) ++ EPROCUNAVAIL = syscall.Errno(0x4c) ++ EPROGMISMATCH = syscall.Errno(0x4b) ++ EPROGUNAVAIL = syscall.Errno(0x4a) ++ EPROTO = syscall.Errno(0x5c) ++ EPROTONOSUPPORT = syscall.Errno(0x2b) ++ EPROTOTYPE = syscall.Errno(0x29) ++ ERANGE = syscall.Errno(0x22) ++ EREMOTE = syscall.Errno(0x47) ++ EROFS = syscall.Errno(0x1e) ++ ERPCMISMATCH = syscall.Errno(0x49) ++ ESHUTDOWN = syscall.Errno(0x3a) ++ ESOCKTNOSUPPORT = syscall.Errno(0x2c) ++ ESPIPE = syscall.Errno(0x1d) ++ ESRCH = syscall.Errno(0x3) ++ ESTALE = syscall.Errno(0x46) ++ ETIMEDOUT = syscall.Errno(0x3c) ++ ETOOMANYREFS = syscall.Errno(0x3b) ++ ETXTBSY = syscall.Errno(0x1a) ++ EUSERS = syscall.Errno(0x44) ++ EWOULDBLOCK = syscall.Errno(0x23) ++ EXDEV = syscall.Errno(0x12) ++) ++ ++// Signals ++const ( ++ SIGABRT = syscall.Signal(0x6) ++ SIGALRM = syscall.Signal(0xe) ++ SIGBUS = syscall.Signal(0xa) ++ SIGCHLD = syscall.Signal(0x14) ++ SIGCONT = syscall.Signal(0x13) ++ SIGEMT = syscall.Signal(0x7) ++ SIGFPE = syscall.Signal(0x8) ++ SIGHUP = syscall.Signal(0x1) ++ SIGILL = syscall.Signal(0x4) ++ SIGINFO = syscall.Signal(0x1d) ++ SIGINT = syscall.Signal(0x2) ++ SIGIO = syscall.Signal(0x17) ++ SIGIOT = syscall.Signal(0x6) ++ SIGKILL = syscall.Signal(0x9) ++ SIGLIBRT = syscall.Signal(0x21) ++ SIGLWP = syscall.Signal(0x20) ++ SIGPIPE = syscall.Signal(0xd) ++ SIGPROF = syscall.Signal(0x1b) ++ SIGQUIT = syscall.Signal(0x3) ++ SIGSEGV = syscall.Signal(0xb) ++ SIGSTOP = syscall.Signal(0x11) ++ SIGSYS = syscall.Signal(0xc) ++ SIGTERM = syscall.Signal(0xf) ++ SIGTHR = syscall.Signal(0x20) ++ SIGTRAP = syscall.Signal(0x5) ++ SIGTSTP = syscall.Signal(0x12) ++ SIGTTIN = syscall.Signal(0x15) ++ SIGTTOU = syscall.Signal(0x16) ++ SIGURG = syscall.Signal(0x10) ++ SIGUSR1 = syscall.Signal(0x1e) ++ SIGUSR2 = syscall.Signal(0x1f) ++ SIGVTALRM = syscall.Signal(0x1a) ++ SIGWINCH = syscall.Signal(0x1c) ++ SIGXCPU = syscall.Signal(0x18) ++ SIGXFSZ = syscall.Signal(0x19) ++) ++ ++// Error table ++var errors = [...]string{ ++ 1: "operation not permitted", ++ 2: "no such file or directory", ++ 3: "no such process", ++ 4: "interrupted system call", ++ 5: "input/output error", ++ 6: "device not configured", ++ 7: "argument list too long", ++ 8: "exec format error", ++ 9: "bad file descriptor", ++ 10: "no child processes", ++ 11: "resource deadlock avoided", ++ 12: "cannot allocate memory", ++ 13: "permission denied", ++ 14: "bad address", ++ 15: "block device required", ++ 16: "device busy", ++ 17: "file exists", ++ 18: "cross-device link", ++ 19: "operation not supported by device", ++ 20: "not a directory", ++ 21: "is a directory", ++ 22: "invalid argument", ++ 23: "too many open files in system", ++ 24: "too many open files", ++ 25: "inappropriate ioctl for device", ++ 26: "text file busy", ++ 27: "file too large", ++ 28: "no space left on device", ++ 29: "illegal seek", ++ 30: "read-only file system", ++ 31: "too many links", ++ 32: "broken pipe", ++ 33: "numerical argument out of domain", ++ 34: "result too large", ++ 35: "resource temporarily unavailable", ++ 36: "operation now in progress", ++ 37: "operation already in progress", ++ 38: "socket operation on non-socket", ++ 39: "destination address required", ++ 40: "message too long", ++ 41: "protocol wrong type for socket", ++ 42: "protocol not available", ++ 43: "protocol not supported", ++ 44: "socket type not supported", ++ 45: "operation not supported", ++ 46: "protocol family not supported", ++ 47: "address family not supported by protocol family", ++ 48: "address already in use", ++ 49: "can't assign requested address", ++ 50: "network is down", ++ 51: "network is unreachable", ++ 52: "network dropped connection on reset", ++ 53: "software caused connection abort", ++ 54: "connection reset by peer", ++ 55: "no buffer space available", ++ 56: "socket is already connected", ++ 57: "socket is not connected", ++ 58: "can't send after socket shutdown", ++ 59: "too many references: can't splice", ++ 60: "operation timed out", ++ 61: "connection refused", ++ 62: "too many levels of symbolic links", ++ 63: "file name too long", ++ 64: "host is down", ++ 65: "no route to host", ++ 66: "directory not empty", ++ 67: "too many processes", ++ 68: "too many users", ++ 69: "disc quota exceeded", ++ 70: "stale NFS file handle", ++ 71: "too many levels of remote in path", ++ 72: "RPC struct is bad", ++ 73: "RPC version wrong", ++ 74: "RPC prog. not avail", ++ 75: "program version wrong", ++ 76: "bad procedure for program", ++ 77: "no locks available", ++ 78: "function not implemented", ++ 79: "inappropriate file type or format", ++ 80: "authentication error", ++ 81: "need authenticator", ++ 82: "identifier removed", ++ 83: "no message of desired type", ++ 84: "value too large to be stored in data type", ++ 85: "operation canceled", ++ 86: "illegal byte sequence", ++ 87: "attribute not found", ++ 88: "programming error", ++ 89: "bad message", ++ 90: "multihop attempted", ++ 91: "link has been severed", ++ 92: "protocol error", ++ 93: "capabilities insufficient", ++ 94: "not permitted in capability mode", ++ 95: "state not recoverable", ++ 96: "previous owner died", ++} ++ ++// Signal table ++var signals = [...]string{ ++ 1: "hangup", ++ 2: "interrupt", ++ 3: "quit", ++ 4: "illegal instruction", ++ 5: "trace/BPT trap", ++ 6: "abort trap", ++ 7: "EMT trap", ++ 8: "floating point exception", ++ 9: "killed", ++ 10: "bus error", ++ 11: "segmentation fault", ++ 12: "bad system call", ++ 13: "broken pipe", ++ 14: "alarm clock", ++ 15: "terminated", ++ 16: "urgent I/O condition", ++ 17: "suspended (signal)", ++ 18: "suspended", ++ 19: "continued", ++ 20: "child exited", ++ 21: "stopped (tty input)", ++ 22: "stopped (tty output)", ++ 23: "I/O possible", ++ 24: "cputime limit exceeded", ++ 25: "filesize limit exceeded", ++ 26: "virtual timer expired", ++ 27: "profiling timer expired", ++ 28: "window size changes", ++ 29: "information request", ++ 30: "user defined signal 1", ++ 31: "user defined signal 2", ++ 32: "unknown signal", ++ 33: "unknown signal", ++} +diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go +new file mode 100644 +index 0000000..e48e779 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go +@@ -0,0 +1,1748 @@ ++// mkerrors.sh -m64 ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build amd64,freebsd ++ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- -m64 _const.go ++ ++package unix ++ ++import "syscall" ++ ++const ( ++ AF_APPLETALK = 0x10 ++ AF_ARP = 0x23 ++ AF_ATM = 0x1e ++ AF_BLUETOOTH = 0x24 ++ AF_CCITT = 0xa ++ AF_CHAOS = 0x5 ++ AF_CNT = 0x15 ++ AF_COIP = 0x14 ++ AF_DATAKIT = 0x9 ++ AF_DECnet = 0xc ++ AF_DLI = 0xd ++ AF_E164 = 0x1a ++ AF_ECMA = 0x8 ++ AF_HYLINK = 0xf ++ AF_IEEE80211 = 0x25 ++ AF_IMPLINK = 0x3 ++ AF_INET = 0x2 ++ AF_INET6 = 0x1c ++ AF_INET6_SDP = 0x2a ++ AF_INET_SDP = 0x28 ++ AF_IPX = 0x17 ++ AF_ISDN = 0x1a ++ AF_ISO = 0x7 ++ AF_LAT = 0xe ++ AF_LINK = 0x12 ++ AF_LOCAL = 0x1 ++ AF_MAX = 0x2a ++ AF_NATM = 0x1d ++ AF_NETBIOS = 0x6 ++ AF_NETGRAPH = 0x20 ++ AF_OSI = 0x7 ++ AF_PUP = 0x4 ++ AF_ROUTE = 0x11 ++ AF_SCLUSTER = 0x22 ++ AF_SIP = 0x18 ++ AF_SLOW = 0x21 ++ AF_SNA = 0xb ++ AF_UNIX = 0x1 ++ AF_UNSPEC = 0x0 ++ AF_VENDOR00 = 0x27 ++ AF_VENDOR01 = 0x29 ++ AF_VENDOR02 = 0x2b ++ AF_VENDOR03 = 0x2d ++ AF_VENDOR04 = 0x2f ++ AF_VENDOR05 = 0x31 ++ AF_VENDOR06 = 0x33 ++ AF_VENDOR07 = 0x35 ++ AF_VENDOR08 = 0x37 ++ AF_VENDOR09 = 0x39 ++ AF_VENDOR10 = 0x3b ++ AF_VENDOR11 = 0x3d ++ AF_VENDOR12 = 0x3f ++ AF_VENDOR13 = 0x41 ++ AF_VENDOR14 = 0x43 ++ AF_VENDOR15 = 0x45 ++ AF_VENDOR16 = 0x47 ++ AF_VENDOR17 = 0x49 ++ AF_VENDOR18 = 0x4b ++ AF_VENDOR19 = 0x4d ++ AF_VENDOR20 = 0x4f ++ AF_VENDOR21 = 0x51 ++ AF_VENDOR22 = 0x53 ++ AF_VENDOR23 = 0x55 ++ AF_VENDOR24 = 0x57 ++ AF_VENDOR25 = 0x59 ++ AF_VENDOR26 = 0x5b ++ AF_VENDOR27 = 0x5d ++ AF_VENDOR28 = 0x5f ++ AF_VENDOR29 = 0x61 ++ AF_VENDOR30 = 0x63 ++ AF_VENDOR31 = 0x65 ++ AF_VENDOR32 = 0x67 ++ AF_VENDOR33 = 0x69 ++ AF_VENDOR34 = 0x6b ++ AF_VENDOR35 = 0x6d ++ AF_VENDOR36 = 0x6f ++ AF_VENDOR37 = 0x71 ++ AF_VENDOR38 = 0x73 ++ AF_VENDOR39 = 0x75 ++ AF_VENDOR40 = 0x77 ++ AF_VENDOR41 = 0x79 ++ AF_VENDOR42 = 0x7b ++ AF_VENDOR43 = 0x7d ++ AF_VENDOR44 = 0x7f ++ AF_VENDOR45 = 0x81 ++ AF_VENDOR46 = 0x83 ++ AF_VENDOR47 = 0x85 ++ B0 = 0x0 ++ B110 = 0x6e ++ B115200 = 0x1c200 ++ B1200 = 0x4b0 ++ B134 = 0x86 ++ B14400 = 0x3840 ++ B150 = 0x96 ++ B1800 = 0x708 ++ B19200 = 0x4b00 ++ B200 = 0xc8 ++ B230400 = 0x38400 ++ B2400 = 0x960 ++ B28800 = 0x7080 ++ B300 = 0x12c ++ B38400 = 0x9600 ++ B460800 = 0x70800 ++ B4800 = 0x12c0 ++ B50 = 0x32 ++ B57600 = 0xe100 ++ B600 = 0x258 ++ B7200 = 0x1c20 ++ B75 = 0x4b ++ B76800 = 0x12c00 ++ B921600 = 0xe1000 ++ B9600 = 0x2580 ++ BIOCFEEDBACK = 0x8004427c ++ BIOCFLUSH = 0x20004268 ++ BIOCGBLEN = 0x40044266 ++ BIOCGDIRECTION = 0x40044276 ++ BIOCGDLT = 0x4004426a ++ BIOCGDLTLIST = 0xc0104279 ++ BIOCGETBUFMODE = 0x4004427d ++ BIOCGETIF = 0x4020426b ++ BIOCGETZMAX = 0x4008427f ++ BIOCGHDRCMPLT = 0x40044274 ++ BIOCGRSIG = 0x40044272 ++ BIOCGRTIMEOUT = 0x4010426e ++ BIOCGSEESENT = 0x40044276 ++ BIOCGSTATS = 0x4008426f ++ BIOCGTSTAMP = 0x40044283 ++ BIOCIMMEDIATE = 0x80044270 ++ BIOCLOCK = 0x2000427a ++ BIOCPROMISC = 0x20004269 ++ BIOCROTZBUF = 0x40184280 ++ BIOCSBLEN = 0xc0044266 ++ BIOCSDIRECTION = 0x80044277 ++ BIOCSDLT = 0x80044278 ++ BIOCSETBUFMODE = 0x8004427e ++ BIOCSETF = 0x80104267 ++ BIOCSETFNR = 0x80104282 ++ BIOCSETIF = 0x8020426c ++ BIOCSETWF = 0x8010427b ++ BIOCSETZBUF = 0x80184281 ++ BIOCSHDRCMPLT = 0x80044275 ++ BIOCSRSIG = 0x80044273 ++ BIOCSRTIMEOUT = 0x8010426d ++ BIOCSSEESENT = 0x80044277 ++ BIOCSTSTAMP = 0x80044284 ++ BIOCVERSION = 0x40044271 ++ BPF_A = 0x10 ++ BPF_ABS = 0x20 ++ BPF_ADD = 0x0 ++ BPF_ALIGNMENT = 0x8 ++ BPF_ALU = 0x4 ++ BPF_AND = 0x50 ++ BPF_B = 0x10 ++ BPF_BUFMODE_BUFFER = 0x1 ++ BPF_BUFMODE_ZBUF = 0x2 ++ BPF_DIV = 0x30 ++ BPF_H = 0x8 ++ BPF_IMM = 0x0 ++ BPF_IND = 0x40 ++ BPF_JA = 0x0 ++ BPF_JEQ = 0x10 ++ BPF_JGE = 0x30 ++ BPF_JGT = 0x20 ++ BPF_JMP = 0x5 ++ BPF_JSET = 0x40 ++ BPF_K = 0x0 ++ BPF_LD = 0x0 ++ BPF_LDX = 0x1 ++ BPF_LEN = 0x80 ++ BPF_LSH = 0x60 ++ BPF_MAJOR_VERSION = 0x1 ++ BPF_MAXBUFSIZE = 0x80000 ++ BPF_MAXINSNS = 0x200 ++ BPF_MEM = 0x60 ++ BPF_MEMWORDS = 0x10 ++ BPF_MINBUFSIZE = 0x20 ++ BPF_MINOR_VERSION = 0x1 ++ BPF_MISC = 0x7 ++ BPF_MSH = 0xa0 ++ BPF_MUL = 0x20 ++ BPF_NEG = 0x80 ++ BPF_OR = 0x40 ++ BPF_RELEASE = 0x30bb6 ++ BPF_RET = 0x6 ++ BPF_RSH = 0x70 ++ BPF_ST = 0x2 ++ BPF_STX = 0x3 ++ BPF_SUB = 0x10 ++ BPF_TAX = 0x0 ++ BPF_TXA = 0x80 ++ BPF_T_BINTIME = 0x2 ++ BPF_T_BINTIME_FAST = 0x102 ++ BPF_T_BINTIME_MONOTONIC = 0x202 ++ BPF_T_BINTIME_MONOTONIC_FAST = 0x302 ++ BPF_T_FAST = 0x100 ++ BPF_T_FLAG_MASK = 0x300 ++ BPF_T_FORMAT_MASK = 0x3 ++ BPF_T_MICROTIME = 0x0 ++ BPF_T_MICROTIME_FAST = 0x100 ++ BPF_T_MICROTIME_MONOTONIC = 0x200 ++ BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 ++ BPF_T_MONOTONIC = 0x200 ++ BPF_T_MONOTONIC_FAST = 0x300 ++ BPF_T_NANOTIME = 0x1 ++ BPF_T_NANOTIME_FAST = 0x101 ++ BPF_T_NANOTIME_MONOTONIC = 0x201 ++ BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 ++ BPF_T_NONE = 0x3 ++ BPF_T_NORMAL = 0x0 ++ BPF_W = 0x0 ++ BPF_X = 0x8 ++ BRKINT = 0x2 ++ CFLUSH = 0xf ++ CLOCAL = 0x8000 ++ CLOCK_MONOTONIC = 0x4 ++ CLOCK_MONOTONIC_FAST = 0xc ++ CLOCK_MONOTONIC_PRECISE = 0xb ++ CLOCK_PROCESS_CPUTIME_ID = 0xf ++ CLOCK_PROF = 0x2 ++ CLOCK_REALTIME = 0x0 ++ CLOCK_REALTIME_FAST = 0xa ++ CLOCK_REALTIME_PRECISE = 0x9 ++ CLOCK_SECOND = 0xd ++ CLOCK_THREAD_CPUTIME_ID = 0xe ++ CLOCK_UPTIME = 0x5 ++ CLOCK_UPTIME_FAST = 0x8 ++ CLOCK_UPTIME_PRECISE = 0x7 ++ CLOCK_VIRTUAL = 0x1 ++ CREAD = 0x800 ++ CS5 = 0x0 ++ CS6 = 0x100 ++ CS7 = 0x200 ++ CS8 = 0x300 ++ CSIZE = 0x300 ++ CSTART = 0x11 ++ CSTATUS = 0x14 ++ CSTOP = 0x13 ++ CSTOPB = 0x400 ++ CSUSP = 0x1a ++ CTL_MAXNAME = 0x18 ++ CTL_NET = 0x4 ++ DLT_A429 = 0xb8 ++ DLT_A653_ICM = 0xb9 ++ DLT_AIRONET_HEADER = 0x78 ++ DLT_AOS = 0xde ++ DLT_APPLE_IP_OVER_IEEE1394 = 0x8a ++ DLT_ARCNET = 0x7 ++ DLT_ARCNET_LINUX = 0x81 ++ DLT_ATM_CLIP = 0x13 ++ DLT_ATM_RFC1483 = 0xb ++ DLT_AURORA = 0x7e ++ DLT_AX25 = 0x3 ++ DLT_AX25_KISS = 0xca ++ DLT_BACNET_MS_TP = 0xa5 ++ DLT_BLUETOOTH_HCI_H4 = 0xbb ++ DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 ++ DLT_CAN20B = 0xbe ++ DLT_CAN_SOCKETCAN = 0xe3 ++ DLT_CHAOS = 0x5 ++ DLT_CHDLC = 0x68 ++ DLT_CISCO_IOS = 0x76 ++ DLT_C_HDLC = 0x68 ++ DLT_C_HDLC_WITH_DIR = 0xcd ++ DLT_DBUS = 0xe7 ++ DLT_DECT = 0xdd ++ DLT_DOCSIS = 0x8f ++ DLT_DVB_CI = 0xeb ++ DLT_ECONET = 0x73 ++ DLT_EN10MB = 0x1 ++ DLT_EN3MB = 0x2 ++ DLT_ENC = 0x6d ++ DLT_ERF = 0xc5 ++ DLT_ERF_ETH = 0xaf ++ DLT_ERF_POS = 0xb0 ++ DLT_FC_2 = 0xe0 ++ DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 ++ DLT_FDDI = 0xa ++ DLT_FLEXRAY = 0xd2 ++ DLT_FRELAY = 0x6b ++ DLT_FRELAY_WITH_DIR = 0xce ++ DLT_GCOM_SERIAL = 0xad ++ DLT_GCOM_T1E1 = 0xac ++ DLT_GPF_F = 0xab ++ DLT_GPF_T = 0xaa ++ DLT_GPRS_LLC = 0xa9 ++ DLT_GSMTAP_ABIS = 0xda ++ DLT_GSMTAP_UM = 0xd9 ++ DLT_HHDLC = 0x79 ++ DLT_IBM_SN = 0x92 ++ DLT_IBM_SP = 0x91 ++ DLT_IEEE802 = 0x6 ++ DLT_IEEE802_11 = 0x69 ++ DLT_IEEE802_11_RADIO = 0x7f ++ DLT_IEEE802_11_RADIO_AVS = 0xa3 ++ DLT_IEEE802_15_4 = 0xc3 ++ DLT_IEEE802_15_4_LINUX = 0xbf ++ DLT_IEEE802_15_4_NOFCS = 0xe6 ++ DLT_IEEE802_15_4_NONASK_PHY = 0xd7 ++ DLT_IEEE802_16_MAC_CPS = 0xbc ++ DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 ++ DLT_IPFILTER = 0x74 ++ DLT_IPMB = 0xc7 ++ DLT_IPMB_LINUX = 0xd1 ++ DLT_IPNET = 0xe2 ++ DLT_IPOIB = 0xf2 ++ DLT_IPV4 = 0xe4 ++ DLT_IPV6 = 0xe5 ++ DLT_IP_OVER_FC = 0x7a ++ DLT_JUNIPER_ATM1 = 0x89 ++ DLT_JUNIPER_ATM2 = 0x87 ++ DLT_JUNIPER_ATM_CEMIC = 0xee ++ DLT_JUNIPER_CHDLC = 0xb5 ++ DLT_JUNIPER_ES = 0x84 ++ DLT_JUNIPER_ETHER = 0xb2 ++ DLT_JUNIPER_FIBRECHANNEL = 0xea ++ DLT_JUNIPER_FRELAY = 0xb4 ++ DLT_JUNIPER_GGSN = 0x85 ++ DLT_JUNIPER_ISM = 0xc2 ++ DLT_JUNIPER_MFR = 0x86 ++ DLT_JUNIPER_MLFR = 0x83 ++ DLT_JUNIPER_MLPPP = 0x82 ++ DLT_JUNIPER_MONITOR = 0xa4 ++ DLT_JUNIPER_PIC_PEER = 0xae ++ DLT_JUNIPER_PPP = 0xb3 ++ DLT_JUNIPER_PPPOE = 0xa7 ++ DLT_JUNIPER_PPPOE_ATM = 0xa8 ++ DLT_JUNIPER_SERVICES = 0x88 ++ DLT_JUNIPER_SRX_E2E = 0xe9 ++ DLT_JUNIPER_ST = 0xc8 ++ DLT_JUNIPER_VP = 0xb7 ++ DLT_JUNIPER_VS = 0xe8 ++ DLT_LAPB_WITH_DIR = 0xcf ++ DLT_LAPD = 0xcb ++ DLT_LIN = 0xd4 ++ DLT_LINUX_EVDEV = 0xd8 ++ DLT_LINUX_IRDA = 0x90 ++ DLT_LINUX_LAPD = 0xb1 ++ DLT_LINUX_PPP_WITHDIRECTION = 0xa6 ++ DLT_LINUX_SLL = 0x71 ++ DLT_LOOP = 0x6c ++ DLT_LTALK = 0x72 ++ DLT_MATCHING_MAX = 0xf6 ++ DLT_MATCHING_MIN = 0x68 ++ DLT_MFR = 0xb6 ++ DLT_MOST = 0xd3 ++ DLT_MPEG_2_TS = 0xf3 ++ DLT_MPLS = 0xdb ++ DLT_MTP2 = 0x8c ++ DLT_MTP2_WITH_PHDR = 0x8b ++ DLT_MTP3 = 0x8d ++ DLT_MUX27010 = 0xec ++ DLT_NETANALYZER = 0xf0 ++ DLT_NETANALYZER_TRANSPARENT = 0xf1 ++ DLT_NFC_LLCP = 0xf5 ++ DLT_NFLOG = 0xef ++ DLT_NG40 = 0xf4 ++ DLT_NULL = 0x0 ++ DLT_PCI_EXP = 0x7d ++ DLT_PFLOG = 0x75 ++ DLT_PFSYNC = 0x79 ++ DLT_PPI = 0xc0 ++ DLT_PPP = 0x9 ++ DLT_PPP_BSDOS = 0x10 ++ DLT_PPP_ETHER = 0x33 ++ DLT_PPP_PPPD = 0xa6 ++ DLT_PPP_SERIAL = 0x32 ++ DLT_PPP_WITH_DIR = 0xcc ++ DLT_PPP_WITH_DIRECTION = 0xa6 ++ DLT_PRISM_HEADER = 0x77 ++ DLT_PRONET = 0x4 ++ DLT_RAIF1 = 0xc6 ++ DLT_RAW = 0xc ++ DLT_RIO = 0x7c ++ DLT_SCCP = 0x8e ++ DLT_SITA = 0xc4 ++ DLT_SLIP = 0x8 ++ DLT_SLIP_BSDOS = 0xf ++ DLT_STANAG_5066_D_PDU = 0xed ++ DLT_SUNATM = 0x7b ++ DLT_SYMANTEC_FIREWALL = 0x63 ++ DLT_TZSP = 0x80 ++ DLT_USB = 0xba ++ DLT_USB_LINUX = 0xbd ++ DLT_USB_LINUX_MMAPPED = 0xdc ++ DLT_USER0 = 0x93 ++ DLT_USER1 = 0x94 ++ DLT_USER10 = 0x9d ++ DLT_USER11 = 0x9e ++ DLT_USER12 = 0x9f ++ DLT_USER13 = 0xa0 ++ DLT_USER14 = 0xa1 ++ DLT_USER15 = 0xa2 ++ DLT_USER2 = 0x95 ++ DLT_USER3 = 0x96 ++ DLT_USER4 = 0x97 ++ DLT_USER5 = 0x98 ++ DLT_USER6 = 0x99 ++ DLT_USER7 = 0x9a ++ DLT_USER8 = 0x9b ++ DLT_USER9 = 0x9c ++ DLT_WIHART = 0xdf ++ DLT_X2E_SERIAL = 0xd5 ++ DLT_X2E_XORAYA = 0xd6 ++ DT_BLK = 0x6 ++ DT_CHR = 0x2 ++ DT_DIR = 0x4 ++ DT_FIFO = 0x1 ++ DT_LNK = 0xa ++ DT_REG = 0x8 ++ DT_SOCK = 0xc ++ DT_UNKNOWN = 0x0 ++ DT_WHT = 0xe ++ ECHO = 0x8 ++ ECHOCTL = 0x40 ++ ECHOE = 0x2 ++ ECHOK = 0x4 ++ ECHOKE = 0x1 ++ ECHONL = 0x10 ++ ECHOPRT = 0x20 ++ EVFILT_AIO = -0x3 ++ EVFILT_FS = -0x9 ++ EVFILT_LIO = -0xa ++ EVFILT_PROC = -0x5 ++ EVFILT_READ = -0x1 ++ EVFILT_SIGNAL = -0x6 ++ EVFILT_SYSCOUNT = 0xb ++ EVFILT_TIMER = -0x7 ++ EVFILT_USER = -0xb ++ EVFILT_VNODE = -0x4 ++ EVFILT_WRITE = -0x2 ++ EV_ADD = 0x1 ++ EV_CLEAR = 0x20 ++ EV_DELETE = 0x2 ++ EV_DISABLE = 0x8 ++ EV_DISPATCH = 0x80 ++ EV_DROP = 0x1000 ++ EV_ENABLE = 0x4 ++ EV_EOF = 0x8000 ++ EV_ERROR = 0x4000 ++ EV_FLAG1 = 0x2000 ++ EV_ONESHOT = 0x10 ++ EV_RECEIPT = 0x40 ++ EV_SYSFLAGS = 0xf000 ++ EXTA = 0x4b00 ++ EXTATTR_NAMESPACE_EMPTY = 0x0 ++ EXTATTR_NAMESPACE_SYSTEM = 0x2 ++ EXTATTR_NAMESPACE_USER = 0x1 ++ EXTB = 0x9600 ++ EXTPROC = 0x800 ++ FD_CLOEXEC = 0x1 ++ FD_SETSIZE = 0x400 ++ FLUSHO = 0x800000 ++ F_CANCEL = 0x5 ++ F_DUP2FD = 0xa ++ F_DUP2FD_CLOEXEC = 0x12 ++ F_DUPFD = 0x0 ++ F_DUPFD_CLOEXEC = 0x11 ++ F_GETFD = 0x1 ++ F_GETFL = 0x3 ++ F_GETLK = 0xb ++ F_GETOWN = 0x5 ++ F_OGETLK = 0x7 ++ F_OK = 0x0 ++ F_OSETLK = 0x8 ++ F_OSETLKW = 0x9 ++ F_RDAHEAD = 0x10 ++ F_RDLCK = 0x1 ++ F_READAHEAD = 0xf ++ F_SETFD = 0x2 ++ F_SETFL = 0x4 ++ F_SETLK = 0xc ++ F_SETLKW = 0xd ++ F_SETLK_REMOTE = 0xe ++ F_SETOWN = 0x6 ++ F_UNLCK = 0x2 ++ F_UNLCKSYS = 0x4 ++ F_WRLCK = 0x3 ++ HUPCL = 0x4000 ++ ICANON = 0x100 ++ ICMP6_FILTER = 0x12 ++ ICRNL = 0x100 ++ IEXTEN = 0x400 ++ IFAN_ARRIVAL = 0x0 ++ IFAN_DEPARTURE = 0x1 ++ IFF_ALLMULTI = 0x200 ++ IFF_ALTPHYS = 0x4000 ++ IFF_BROADCAST = 0x2 ++ IFF_CANTCHANGE = 0x218f72 ++ IFF_CANTCONFIG = 0x10000 ++ IFF_DEBUG = 0x4 ++ IFF_DRV_OACTIVE = 0x400 ++ IFF_DRV_RUNNING = 0x40 ++ IFF_DYING = 0x200000 ++ IFF_LINK0 = 0x1000 ++ IFF_LINK1 = 0x2000 ++ IFF_LINK2 = 0x4000 ++ IFF_LOOPBACK = 0x8 ++ IFF_MONITOR = 0x40000 ++ IFF_MULTICAST = 0x8000 ++ IFF_NOARP = 0x80 ++ IFF_OACTIVE = 0x400 ++ IFF_POINTOPOINT = 0x10 ++ IFF_PPROMISC = 0x20000 ++ IFF_PROMISC = 0x100 ++ IFF_RENAMING = 0x400000 ++ IFF_RUNNING = 0x40 ++ IFF_SIMPLEX = 0x800 ++ IFF_SMART = 0x20 ++ IFF_STATICARP = 0x80000 ++ IFF_UP = 0x1 ++ IFNAMSIZ = 0x10 ++ IFT_1822 = 0x2 ++ IFT_A12MPPSWITCH = 0x82 ++ IFT_AAL2 = 0xbb ++ IFT_AAL5 = 0x31 ++ IFT_ADSL = 0x5e ++ IFT_AFLANE8023 = 0x3b ++ IFT_AFLANE8025 = 0x3c ++ IFT_ARAP = 0x58 ++ IFT_ARCNET = 0x23 ++ IFT_ARCNETPLUS = 0x24 ++ IFT_ASYNC = 0x54 ++ IFT_ATM = 0x25 ++ IFT_ATMDXI = 0x69 ++ IFT_ATMFUNI = 0x6a ++ IFT_ATMIMA = 0x6b ++ IFT_ATMLOGICAL = 0x50 ++ IFT_ATMRADIO = 0xbd ++ IFT_ATMSUBINTERFACE = 0x86 ++ IFT_ATMVCIENDPT = 0xc2 ++ IFT_ATMVIRTUAL = 0x95 ++ IFT_BGPPOLICYACCOUNTING = 0xa2 ++ IFT_BRIDGE = 0xd1 ++ IFT_BSC = 0x53 ++ IFT_CARP = 0xf8 ++ IFT_CCTEMUL = 0x3d ++ IFT_CEPT = 0x13 ++ IFT_CES = 0x85 ++ IFT_CHANNEL = 0x46 ++ IFT_CNR = 0x55 ++ IFT_COFFEE = 0x84 ++ IFT_COMPOSITELINK = 0x9b ++ IFT_DCN = 0x8d ++ IFT_DIGITALPOWERLINE = 0x8a ++ IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba ++ IFT_DLSW = 0x4a ++ IFT_DOCSCABLEDOWNSTREAM = 0x80 ++ IFT_DOCSCABLEMACLAYER = 0x7f ++ IFT_DOCSCABLEUPSTREAM = 0x81 ++ IFT_DS0 = 0x51 ++ IFT_DS0BUNDLE = 0x52 ++ IFT_DS1FDL = 0xaa ++ IFT_DS3 = 0x1e ++ IFT_DTM = 0x8c ++ IFT_DVBASILN = 0xac ++ IFT_DVBASIOUT = 0xad ++ IFT_DVBRCCDOWNSTREAM = 0x93 ++ IFT_DVBRCCMACLAYER = 0x92 ++ IFT_DVBRCCUPSTREAM = 0x94 ++ IFT_ENC = 0xf4 ++ IFT_EON = 0x19 ++ IFT_EPLRS = 0x57 ++ IFT_ESCON = 0x49 ++ IFT_ETHER = 0x6 ++ IFT_FAITH = 0xf2 ++ IFT_FAST = 0x7d ++ IFT_FASTETHER = 0x3e ++ IFT_FASTETHERFX = 0x45 ++ IFT_FDDI = 0xf ++ IFT_FIBRECHANNEL = 0x38 ++ IFT_FRAMERELAYINTERCONNECT = 0x3a ++ IFT_FRAMERELAYMPI = 0x5c ++ IFT_FRDLCIENDPT = 0xc1 ++ IFT_FRELAY = 0x20 ++ IFT_FRELAYDCE = 0x2c ++ IFT_FRF16MFRBUNDLE = 0xa3 ++ IFT_FRFORWARD = 0x9e ++ IFT_G703AT2MB = 0x43 ++ IFT_G703AT64K = 0x42 ++ IFT_GIF = 0xf0 ++ IFT_GIGABITETHERNET = 0x75 ++ IFT_GR303IDT = 0xb2 ++ IFT_GR303RDT = 0xb1 ++ IFT_H323GATEKEEPER = 0xa4 ++ IFT_H323PROXY = 0xa5 ++ IFT_HDH1822 = 0x3 ++ IFT_HDLC = 0x76 ++ IFT_HDSL2 = 0xa8 ++ IFT_HIPERLAN2 = 0xb7 ++ IFT_HIPPI = 0x2f ++ IFT_HIPPIINTERFACE = 0x39 ++ IFT_HOSTPAD = 0x5a ++ IFT_HSSI = 0x2e ++ IFT_HY = 0xe ++ IFT_IBM370PARCHAN = 0x48 ++ IFT_IDSL = 0x9a ++ IFT_IEEE1394 = 0x90 ++ IFT_IEEE80211 = 0x47 ++ IFT_IEEE80212 = 0x37 ++ IFT_IEEE8023ADLAG = 0xa1 ++ IFT_IFGSN = 0x91 ++ IFT_IMT = 0xbe ++ IFT_INFINIBAND = 0xc7 ++ IFT_INTERLEAVE = 0x7c ++ IFT_IP = 0x7e ++ IFT_IPFORWARD = 0x8e ++ IFT_IPOVERATM = 0x72 ++ IFT_IPOVERCDLC = 0x6d ++ IFT_IPOVERCLAW = 0x6e ++ IFT_IPSWITCH = 0x4e ++ IFT_IPXIP = 0xf9 ++ IFT_ISDN = 0x3f ++ IFT_ISDNBASIC = 0x14 ++ IFT_ISDNPRIMARY = 0x15 ++ IFT_ISDNS = 0x4b ++ IFT_ISDNU = 0x4c ++ IFT_ISO88022LLC = 0x29 ++ IFT_ISO88023 = 0x7 ++ IFT_ISO88024 = 0x8 ++ IFT_ISO88025 = 0x9 ++ IFT_ISO88025CRFPINT = 0x62 ++ IFT_ISO88025DTR = 0x56 ++ IFT_ISO88025FIBER = 0x73 ++ IFT_ISO88026 = 0xa ++ IFT_ISUP = 0xb3 ++ IFT_L2VLAN = 0x87 ++ IFT_L3IPVLAN = 0x88 ++ IFT_L3IPXVLAN = 0x89 ++ IFT_LAPB = 0x10 ++ IFT_LAPD = 0x4d ++ IFT_LAPF = 0x77 ++ IFT_LOCALTALK = 0x2a ++ IFT_LOOP = 0x18 ++ IFT_MEDIAMAILOVERIP = 0x8b ++ IFT_MFSIGLINK = 0xa7 ++ IFT_MIOX25 = 0x26 ++ IFT_MODEM = 0x30 ++ IFT_MPC = 0x71 ++ IFT_MPLS = 0xa6 ++ IFT_MPLSTUNNEL = 0x96 ++ IFT_MSDSL = 0x8f ++ IFT_MVL = 0xbf ++ IFT_MYRINET = 0x63 ++ IFT_NFAS = 0xaf ++ IFT_NSIP = 0x1b ++ IFT_OPTICALCHANNEL = 0xc3 ++ IFT_OPTICALTRANSPORT = 0xc4 ++ IFT_OTHER = 0x1 ++ IFT_P10 = 0xc ++ IFT_P80 = 0xd ++ IFT_PARA = 0x22 ++ IFT_PFLOG = 0xf6 ++ IFT_PFSYNC = 0xf7 ++ IFT_PLC = 0xae ++ IFT_POS = 0xab ++ IFT_PPP = 0x17 ++ IFT_PPPMULTILINKBUNDLE = 0x6c ++ IFT_PROPBWAP2MP = 0xb8 ++ IFT_PROPCNLS = 0x59 ++ IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 ++ IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 ++ IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 ++ IFT_PROPMUX = 0x36 ++ IFT_PROPVIRTUAL = 0x35 ++ IFT_PROPWIRELESSP2P = 0x9d ++ IFT_PTPSERIAL = 0x16 ++ IFT_PVC = 0xf1 ++ IFT_QLLC = 0x44 ++ IFT_RADIOMAC = 0xbc ++ IFT_RADSL = 0x5f ++ IFT_REACHDSL = 0xc0 ++ IFT_RFC1483 = 0x9f ++ IFT_RS232 = 0x21 ++ IFT_RSRB = 0x4f ++ IFT_SDLC = 0x11 ++ IFT_SDSL = 0x60 ++ IFT_SHDSL = 0xa9 ++ IFT_SIP = 0x1f ++ IFT_SLIP = 0x1c ++ IFT_SMDSDXI = 0x2b ++ IFT_SMDSICIP = 0x34 ++ IFT_SONET = 0x27 ++ IFT_SONETOVERHEADCHANNEL = 0xb9 ++ IFT_SONETPATH = 0x32 ++ IFT_SONETVT = 0x33 ++ IFT_SRP = 0x97 ++ IFT_SS7SIGLINK = 0x9c ++ IFT_STACKTOSTACK = 0x6f ++ IFT_STARLAN = 0xb ++ IFT_STF = 0xd7 ++ IFT_T1 = 0x12 ++ IFT_TDLC = 0x74 ++ IFT_TERMPAD = 0x5b ++ IFT_TR008 = 0xb0 ++ IFT_TRANSPHDLC = 0x7b ++ IFT_TUNNEL = 0x83 ++ IFT_ULTRA = 0x1d ++ IFT_USB = 0xa0 ++ IFT_V11 = 0x40 ++ IFT_V35 = 0x2d ++ IFT_V36 = 0x41 ++ IFT_V37 = 0x78 ++ IFT_VDSL = 0x61 ++ IFT_VIRTUALIPADDRESS = 0x70 ++ IFT_VOICEEM = 0x64 ++ IFT_VOICEENCAP = 0x67 ++ IFT_VOICEFXO = 0x65 ++ IFT_VOICEFXS = 0x66 ++ IFT_VOICEOVERATM = 0x98 ++ IFT_VOICEOVERFRAMERELAY = 0x99 ++ IFT_VOICEOVERIP = 0x68 ++ IFT_X213 = 0x5d ++ IFT_X25 = 0x5 ++ IFT_X25DDN = 0x4 ++ IFT_X25HUNTGROUP = 0x7a ++ IFT_X25MLP = 0x79 ++ IFT_X25PLE = 0x28 ++ IFT_XETHER = 0x1a ++ IGNBRK = 0x1 ++ IGNCR = 0x80 ++ IGNPAR = 0x4 ++ IMAXBEL = 0x2000 ++ INLCR = 0x40 ++ INPCK = 0x10 ++ IN_CLASSA_HOST = 0xffffff ++ IN_CLASSA_MAX = 0x80 ++ IN_CLASSA_NET = 0xff000000 ++ IN_CLASSA_NSHIFT = 0x18 ++ IN_CLASSB_HOST = 0xffff ++ IN_CLASSB_MAX = 0x10000 ++ IN_CLASSB_NET = 0xffff0000 ++ IN_CLASSB_NSHIFT = 0x10 ++ IN_CLASSC_HOST = 0xff ++ IN_CLASSC_NET = 0xffffff00 ++ IN_CLASSC_NSHIFT = 0x8 ++ IN_CLASSD_HOST = 0xfffffff ++ IN_CLASSD_NET = 0xf0000000 ++ IN_CLASSD_NSHIFT = 0x1c ++ IN_LOOPBACKNET = 0x7f ++ IN_RFC3021_MASK = 0xfffffffe ++ IPPROTO_3PC = 0x22 ++ IPPROTO_ADFS = 0x44 ++ IPPROTO_AH = 0x33 ++ IPPROTO_AHIP = 0x3d ++ IPPROTO_APES = 0x63 ++ IPPROTO_ARGUS = 0xd ++ IPPROTO_AX25 = 0x5d ++ IPPROTO_BHA = 0x31 ++ IPPROTO_BLT = 0x1e ++ IPPROTO_BRSATMON = 0x4c ++ IPPROTO_CARP = 0x70 ++ IPPROTO_CFTP = 0x3e ++ IPPROTO_CHAOS = 0x10 ++ IPPROTO_CMTP = 0x26 ++ IPPROTO_CPHB = 0x49 ++ IPPROTO_CPNX = 0x48 ++ IPPROTO_DDP = 0x25 ++ IPPROTO_DGP = 0x56 ++ IPPROTO_DIVERT = 0x102 ++ IPPROTO_DONE = 0x101 ++ IPPROTO_DSTOPTS = 0x3c ++ IPPROTO_EGP = 0x8 ++ IPPROTO_EMCON = 0xe ++ IPPROTO_ENCAP = 0x62 ++ IPPROTO_EON = 0x50 ++ IPPROTO_ESP = 0x32 ++ IPPROTO_ETHERIP = 0x61 ++ IPPROTO_FRAGMENT = 0x2c ++ IPPROTO_GGP = 0x3 ++ IPPROTO_GMTP = 0x64 ++ IPPROTO_GRE = 0x2f ++ IPPROTO_HELLO = 0x3f ++ IPPROTO_HIP = 0x8b ++ IPPROTO_HMP = 0x14 ++ IPPROTO_HOPOPTS = 0x0 ++ IPPROTO_ICMP = 0x1 ++ IPPROTO_ICMPV6 = 0x3a ++ IPPROTO_IDP = 0x16 ++ IPPROTO_IDPR = 0x23 ++ IPPROTO_IDRP = 0x2d ++ IPPROTO_IGMP = 0x2 ++ IPPROTO_IGP = 0x55 ++ IPPROTO_IGRP = 0x58 ++ IPPROTO_IL = 0x28 ++ IPPROTO_INLSP = 0x34 ++ IPPROTO_INP = 0x20 ++ IPPROTO_IP = 0x0 ++ IPPROTO_IPCOMP = 0x6c ++ IPPROTO_IPCV = 0x47 ++ IPPROTO_IPEIP = 0x5e ++ IPPROTO_IPIP = 0x4 ++ IPPROTO_IPPC = 0x43 ++ IPPROTO_IPV4 = 0x4 ++ IPPROTO_IPV6 = 0x29 ++ IPPROTO_IRTP = 0x1c ++ IPPROTO_KRYPTOLAN = 0x41 ++ IPPROTO_LARP = 0x5b ++ IPPROTO_LEAF1 = 0x19 ++ IPPROTO_LEAF2 = 0x1a ++ IPPROTO_MAX = 0x100 ++ IPPROTO_MAXID = 0x34 ++ IPPROTO_MEAS = 0x13 ++ IPPROTO_MH = 0x87 ++ IPPROTO_MHRP = 0x30 ++ IPPROTO_MICP = 0x5f ++ IPPROTO_MOBILE = 0x37 ++ IPPROTO_MPLS = 0x89 ++ IPPROTO_MTP = 0x5c ++ IPPROTO_MUX = 0x12 ++ IPPROTO_ND = 0x4d ++ IPPROTO_NHRP = 0x36 ++ IPPROTO_NONE = 0x3b ++ IPPROTO_NSP = 0x1f ++ IPPROTO_NVPII = 0xb ++ IPPROTO_OLD_DIVERT = 0xfe ++ IPPROTO_OSPFIGP = 0x59 ++ IPPROTO_PFSYNC = 0xf0 ++ IPPROTO_PGM = 0x71 ++ IPPROTO_PIGP = 0x9 ++ IPPROTO_PIM = 0x67 ++ IPPROTO_PRM = 0x15 ++ IPPROTO_PUP = 0xc ++ IPPROTO_PVP = 0x4b ++ IPPROTO_RAW = 0xff ++ IPPROTO_RCCMON = 0xa ++ IPPROTO_RDP = 0x1b ++ IPPROTO_RESERVED_253 = 0xfd ++ IPPROTO_RESERVED_254 = 0xfe ++ IPPROTO_ROUTING = 0x2b ++ IPPROTO_RSVP = 0x2e ++ IPPROTO_RVD = 0x42 ++ IPPROTO_SATEXPAK = 0x40 ++ IPPROTO_SATMON = 0x45 ++ IPPROTO_SCCSP = 0x60 ++ IPPROTO_SCTP = 0x84 ++ IPPROTO_SDRP = 0x2a ++ IPPROTO_SEND = 0x103 ++ IPPROTO_SEP = 0x21 ++ IPPROTO_SHIM6 = 0x8c ++ IPPROTO_SKIP = 0x39 ++ IPPROTO_SPACER = 0x7fff ++ IPPROTO_SRPC = 0x5a ++ IPPROTO_ST = 0x7 ++ IPPROTO_SVMTP = 0x52 ++ IPPROTO_SWIPE = 0x35 ++ IPPROTO_TCF = 0x57 ++ IPPROTO_TCP = 0x6 ++ IPPROTO_TLSP = 0x38 ++ IPPROTO_TP = 0x1d ++ IPPROTO_TPXX = 0x27 ++ IPPROTO_TRUNK1 = 0x17 ++ IPPROTO_TRUNK2 = 0x18 ++ IPPROTO_TTP = 0x54 ++ IPPROTO_UDP = 0x11 ++ IPPROTO_UDPLITE = 0x88 ++ IPPROTO_VINES = 0x53 ++ IPPROTO_VISA = 0x46 ++ IPPROTO_VMTP = 0x51 ++ IPPROTO_WBEXPAK = 0x4f ++ IPPROTO_WBMON = 0x4e ++ IPPROTO_WSN = 0x4a ++ IPPROTO_XNET = 0xf ++ IPPROTO_XTP = 0x24 ++ IPV6_AUTOFLOWLABEL = 0x3b ++ IPV6_BINDANY = 0x40 ++ IPV6_BINDV6ONLY = 0x1b ++ IPV6_CHECKSUM = 0x1a ++ IPV6_DEFAULT_MULTICAST_HOPS = 0x1 ++ IPV6_DEFAULT_MULTICAST_LOOP = 0x1 ++ IPV6_DEFHLIM = 0x40 ++ IPV6_DONTFRAG = 0x3e ++ IPV6_DSTOPTS = 0x32 ++ IPV6_FAITH = 0x1d ++ IPV6_FLOWINFO_MASK = 0xffffff0f ++ IPV6_FLOWLABEL_MASK = 0xffff0f00 ++ IPV6_FRAGTTL = 0x78 ++ IPV6_FW_ADD = 0x1e ++ IPV6_FW_DEL = 0x1f ++ IPV6_FW_FLUSH = 0x20 ++ IPV6_FW_GET = 0x22 ++ IPV6_FW_ZERO = 0x21 ++ IPV6_HLIMDEC = 0x1 ++ IPV6_HOPLIMIT = 0x2f ++ IPV6_HOPOPTS = 0x31 ++ IPV6_IPSEC_POLICY = 0x1c ++ IPV6_JOIN_GROUP = 0xc ++ IPV6_LEAVE_GROUP = 0xd ++ IPV6_MAXHLIM = 0xff ++ IPV6_MAXOPTHDR = 0x800 ++ IPV6_MAXPACKET = 0xffff ++ IPV6_MAX_GROUP_SRC_FILTER = 0x200 ++ IPV6_MAX_MEMBERSHIPS = 0xfff ++ IPV6_MAX_SOCK_SRC_FILTER = 0x80 ++ IPV6_MIN_MEMBERSHIPS = 0x1f ++ IPV6_MMTU = 0x500 ++ IPV6_MSFILTER = 0x4a ++ IPV6_MULTICAST_HOPS = 0xa ++ IPV6_MULTICAST_IF = 0x9 ++ IPV6_MULTICAST_LOOP = 0xb ++ IPV6_NEXTHOP = 0x30 ++ IPV6_PATHMTU = 0x2c ++ IPV6_PKTINFO = 0x2e ++ IPV6_PORTRANGE = 0xe ++ IPV6_PORTRANGE_DEFAULT = 0x0 ++ IPV6_PORTRANGE_HIGH = 0x1 ++ IPV6_PORTRANGE_LOW = 0x2 ++ IPV6_PREFER_TEMPADDR = 0x3f ++ IPV6_RECVDSTOPTS = 0x28 ++ IPV6_RECVHOPLIMIT = 0x25 ++ IPV6_RECVHOPOPTS = 0x27 ++ IPV6_RECVPATHMTU = 0x2b ++ IPV6_RECVPKTINFO = 0x24 ++ IPV6_RECVRTHDR = 0x26 ++ IPV6_RECVTCLASS = 0x39 ++ IPV6_RTHDR = 0x33 ++ IPV6_RTHDRDSTOPTS = 0x23 ++ IPV6_RTHDR_LOOSE = 0x0 ++ IPV6_RTHDR_STRICT = 0x1 ++ IPV6_RTHDR_TYPE_0 = 0x0 ++ IPV6_SOCKOPT_RESERVED1 = 0x3 ++ IPV6_TCLASS = 0x3d ++ IPV6_UNICAST_HOPS = 0x4 ++ IPV6_USE_MIN_MTU = 0x2a ++ IPV6_V6ONLY = 0x1b ++ IPV6_VERSION = 0x60 ++ IPV6_VERSION_MASK = 0xf0 ++ IP_ADD_MEMBERSHIP = 0xc ++ IP_ADD_SOURCE_MEMBERSHIP = 0x46 ++ IP_BINDANY = 0x18 ++ IP_BLOCK_SOURCE = 0x48 ++ IP_DEFAULT_MULTICAST_LOOP = 0x1 ++ IP_DEFAULT_MULTICAST_TTL = 0x1 ++ IP_DF = 0x4000 ++ IP_DONTFRAG = 0x43 ++ IP_DROP_MEMBERSHIP = 0xd ++ IP_DROP_SOURCE_MEMBERSHIP = 0x47 ++ IP_DUMMYNET3 = 0x31 ++ IP_DUMMYNET_CONFIGURE = 0x3c ++ IP_DUMMYNET_DEL = 0x3d ++ IP_DUMMYNET_FLUSH = 0x3e ++ IP_DUMMYNET_GET = 0x40 ++ IP_FAITH = 0x16 ++ IP_FW3 = 0x30 ++ IP_FW_ADD = 0x32 ++ IP_FW_DEL = 0x33 ++ IP_FW_FLUSH = 0x34 ++ IP_FW_GET = 0x36 ++ IP_FW_NAT_CFG = 0x38 ++ IP_FW_NAT_DEL = 0x39 ++ IP_FW_NAT_GET_CONFIG = 0x3a ++ IP_FW_NAT_GET_LOG = 0x3b ++ IP_FW_RESETLOG = 0x37 ++ IP_FW_TABLE_ADD = 0x28 ++ IP_FW_TABLE_DEL = 0x29 ++ IP_FW_TABLE_FLUSH = 0x2a ++ IP_FW_TABLE_GETSIZE = 0x2b ++ IP_FW_TABLE_LIST = 0x2c ++ IP_FW_ZERO = 0x35 ++ IP_HDRINCL = 0x2 ++ IP_IPSEC_POLICY = 0x15 ++ IP_MAXPACKET = 0xffff ++ IP_MAX_GROUP_SRC_FILTER = 0x200 ++ IP_MAX_MEMBERSHIPS = 0xfff ++ IP_MAX_SOCK_MUTE_FILTER = 0x80 ++ IP_MAX_SOCK_SRC_FILTER = 0x80 ++ IP_MAX_SOURCE_FILTER = 0x400 ++ IP_MF = 0x2000 ++ IP_MINTTL = 0x42 ++ IP_MIN_MEMBERSHIPS = 0x1f ++ IP_MSFILTER = 0x4a ++ IP_MSS = 0x240 ++ IP_MULTICAST_IF = 0x9 ++ IP_MULTICAST_LOOP = 0xb ++ IP_MULTICAST_TTL = 0xa ++ IP_MULTICAST_VIF = 0xe ++ IP_OFFMASK = 0x1fff ++ IP_ONESBCAST = 0x17 ++ IP_OPTIONS = 0x1 ++ IP_PORTRANGE = 0x13 ++ IP_PORTRANGE_DEFAULT = 0x0 ++ IP_PORTRANGE_HIGH = 0x1 ++ IP_PORTRANGE_LOW = 0x2 ++ IP_RECVDSTADDR = 0x7 ++ IP_RECVIF = 0x14 ++ IP_RECVOPTS = 0x5 ++ IP_RECVRETOPTS = 0x6 ++ IP_RECVTOS = 0x44 ++ IP_RECVTTL = 0x41 ++ IP_RETOPTS = 0x8 ++ IP_RF = 0x8000 ++ IP_RSVP_OFF = 0x10 ++ IP_RSVP_ON = 0xf ++ IP_RSVP_VIF_OFF = 0x12 ++ IP_RSVP_VIF_ON = 0x11 ++ IP_SENDSRCADDR = 0x7 ++ IP_TOS = 0x3 ++ IP_TTL = 0x4 ++ IP_UNBLOCK_SOURCE = 0x49 ++ ISIG = 0x80 ++ ISTRIP = 0x20 ++ IXANY = 0x800 ++ IXOFF = 0x400 ++ IXON = 0x200 ++ LOCK_EX = 0x2 ++ LOCK_NB = 0x4 ++ LOCK_SH = 0x1 ++ LOCK_UN = 0x8 ++ MADV_AUTOSYNC = 0x7 ++ MADV_CORE = 0x9 ++ MADV_DONTNEED = 0x4 ++ MADV_FREE = 0x5 ++ MADV_NOCORE = 0x8 ++ MADV_NORMAL = 0x0 ++ MADV_NOSYNC = 0x6 ++ MADV_PROTECT = 0xa ++ MADV_RANDOM = 0x1 ++ MADV_SEQUENTIAL = 0x2 ++ MADV_WILLNEED = 0x3 ++ MAP_32BIT = 0x80000 ++ MAP_ALIGNED_SUPER = 0x1000000 ++ MAP_ALIGNMENT_MASK = -0x1000000 ++ MAP_ALIGNMENT_SHIFT = 0x18 ++ MAP_ANON = 0x1000 ++ MAP_ANONYMOUS = 0x1000 ++ MAP_COPY = 0x2 ++ MAP_EXCL = 0x4000 ++ MAP_FILE = 0x0 ++ MAP_FIXED = 0x10 ++ MAP_HASSEMAPHORE = 0x200 ++ MAP_NOCORE = 0x20000 ++ MAP_NORESERVE = 0x40 ++ MAP_NOSYNC = 0x800 ++ MAP_PREFAULT_READ = 0x40000 ++ MAP_PRIVATE = 0x2 ++ MAP_RENAME = 0x20 ++ MAP_RESERVED0080 = 0x80 ++ MAP_RESERVED0100 = 0x100 ++ MAP_SHARED = 0x1 ++ MAP_STACK = 0x400 ++ MCL_CURRENT = 0x1 ++ MCL_FUTURE = 0x2 ++ MSG_CMSG_CLOEXEC = 0x40000 ++ MSG_COMPAT = 0x8000 ++ MSG_CTRUNC = 0x20 ++ MSG_DONTROUTE = 0x4 ++ MSG_DONTWAIT = 0x80 ++ MSG_EOF = 0x100 ++ MSG_EOR = 0x8 ++ MSG_NBIO = 0x4000 ++ MSG_NOSIGNAL = 0x20000 ++ MSG_NOTIFICATION = 0x2000 ++ MSG_OOB = 0x1 ++ MSG_PEEK = 0x2 ++ MSG_TRUNC = 0x10 ++ MSG_WAITALL = 0x40 ++ MS_ASYNC = 0x1 ++ MS_INVALIDATE = 0x2 ++ MS_SYNC = 0x0 ++ NAME_MAX = 0xff ++ NET_RT_DUMP = 0x1 ++ NET_RT_FLAGS = 0x2 ++ NET_RT_IFLIST = 0x3 ++ NET_RT_IFLISTL = 0x5 ++ NET_RT_IFMALIST = 0x4 ++ NET_RT_MAXID = 0x6 ++ NOFLSH = 0x80000000 ++ NOTE_ATTRIB = 0x8 ++ NOTE_CHILD = 0x4 ++ NOTE_DELETE = 0x1 ++ NOTE_EXEC = 0x20000000 ++ NOTE_EXIT = 0x80000000 ++ NOTE_EXTEND = 0x4 ++ NOTE_FFAND = 0x40000000 ++ NOTE_FFCOPY = 0xc0000000 ++ NOTE_FFCTRLMASK = 0xc0000000 ++ NOTE_FFLAGSMASK = 0xffffff ++ NOTE_FFNOP = 0x0 ++ NOTE_FFOR = 0x80000000 ++ NOTE_FORK = 0x40000000 ++ NOTE_LINK = 0x10 ++ NOTE_LOWAT = 0x1 ++ NOTE_MSECONDS = 0x2 ++ NOTE_NSECONDS = 0x8 ++ NOTE_PCTRLMASK = 0xf0000000 ++ NOTE_PDATAMASK = 0xfffff ++ NOTE_RENAME = 0x20 ++ NOTE_REVOKE = 0x40 ++ NOTE_SECONDS = 0x1 ++ NOTE_TRACK = 0x1 ++ NOTE_TRACKERR = 0x2 ++ NOTE_TRIGGER = 0x1000000 ++ NOTE_USECONDS = 0x4 ++ NOTE_WRITE = 0x2 ++ OCRNL = 0x10 ++ ONLCR = 0x2 ++ ONLRET = 0x40 ++ ONOCR = 0x20 ++ ONOEOT = 0x8 ++ OPOST = 0x1 ++ O_ACCMODE = 0x3 ++ O_APPEND = 0x8 ++ O_ASYNC = 0x40 ++ O_CLOEXEC = 0x100000 ++ O_CREAT = 0x200 ++ O_DIRECT = 0x10000 ++ O_DIRECTORY = 0x20000 ++ O_EXCL = 0x800 ++ O_EXEC = 0x40000 ++ O_EXLOCK = 0x20 ++ O_FSYNC = 0x80 ++ O_NDELAY = 0x4 ++ O_NOCTTY = 0x8000 ++ O_NOFOLLOW = 0x100 ++ O_NONBLOCK = 0x4 ++ O_RDONLY = 0x0 ++ O_RDWR = 0x2 ++ O_SHLOCK = 0x10 ++ O_SYNC = 0x80 ++ O_TRUNC = 0x400 ++ O_TTY_INIT = 0x80000 ++ O_WRONLY = 0x1 ++ PARENB = 0x1000 ++ PARMRK = 0x8 ++ PARODD = 0x2000 ++ PENDIN = 0x20000000 ++ PRIO_PGRP = 0x1 ++ PRIO_PROCESS = 0x0 ++ PRIO_USER = 0x2 ++ PROT_EXEC = 0x4 ++ PROT_NONE = 0x0 ++ PROT_READ = 0x1 ++ PROT_WRITE = 0x2 ++ RLIMIT_AS = 0xa ++ RLIMIT_CORE = 0x4 ++ RLIMIT_CPU = 0x0 ++ RLIMIT_DATA = 0x2 ++ RLIMIT_FSIZE = 0x1 ++ RLIMIT_NOFILE = 0x8 ++ RLIMIT_STACK = 0x3 ++ RLIM_INFINITY = 0x7fffffffffffffff ++ RTAX_AUTHOR = 0x6 ++ RTAX_BRD = 0x7 ++ RTAX_DST = 0x0 ++ RTAX_GATEWAY = 0x1 ++ RTAX_GENMASK = 0x3 ++ RTAX_IFA = 0x5 ++ RTAX_IFP = 0x4 ++ RTAX_MAX = 0x8 ++ RTAX_NETMASK = 0x2 ++ RTA_AUTHOR = 0x40 ++ RTA_BRD = 0x80 ++ RTA_DST = 0x1 ++ RTA_GATEWAY = 0x2 ++ RTA_GENMASK = 0x8 ++ RTA_IFA = 0x20 ++ RTA_IFP = 0x10 ++ RTA_NETMASK = 0x4 ++ RTF_BLACKHOLE = 0x1000 ++ RTF_BROADCAST = 0x400000 ++ RTF_DONE = 0x40 ++ RTF_DYNAMIC = 0x10 ++ RTF_FMASK = 0x1004d808 ++ RTF_GATEWAY = 0x2 ++ RTF_GWFLAG_COMPAT = 0x80000000 ++ RTF_HOST = 0x4 ++ RTF_LLDATA = 0x400 ++ RTF_LLINFO = 0x400 ++ RTF_LOCAL = 0x200000 ++ RTF_MODIFIED = 0x20 ++ RTF_MULTICAST = 0x800000 ++ RTF_PINNED = 0x100000 ++ RTF_PRCLONING = 0x10000 ++ RTF_PROTO1 = 0x8000 ++ RTF_PROTO2 = 0x4000 ++ RTF_PROTO3 = 0x40000 ++ RTF_REJECT = 0x8 ++ RTF_RNH_LOCKED = 0x40000000 ++ RTF_STATIC = 0x800 ++ RTF_STICKY = 0x10000000 ++ RTF_UP = 0x1 ++ RTF_XRESOLVE = 0x200 ++ RTM_ADD = 0x1 ++ RTM_CHANGE = 0x3 ++ RTM_DELADDR = 0xd ++ RTM_DELETE = 0x2 ++ RTM_DELMADDR = 0x10 ++ RTM_GET = 0x4 ++ RTM_IEEE80211 = 0x12 ++ RTM_IFANNOUNCE = 0x11 ++ RTM_IFINFO = 0xe ++ RTM_LOCK = 0x8 ++ RTM_LOSING = 0x5 ++ RTM_MISS = 0x7 ++ RTM_NEWADDR = 0xc ++ RTM_NEWMADDR = 0xf ++ RTM_OLDADD = 0x9 ++ RTM_OLDDEL = 0xa ++ RTM_REDIRECT = 0x6 ++ RTM_RESOLVE = 0xb ++ RTM_RTTUNIT = 0xf4240 ++ RTM_VERSION = 0x5 ++ RTV_EXPIRE = 0x4 ++ RTV_HOPCOUNT = 0x2 ++ RTV_MTU = 0x1 ++ RTV_RPIPE = 0x8 ++ RTV_RTT = 0x40 ++ RTV_RTTVAR = 0x80 ++ RTV_SPIPE = 0x10 ++ RTV_SSTHRESH = 0x20 ++ RTV_WEIGHT = 0x100 ++ RT_ALL_FIBS = -0x1 ++ RT_CACHING_CONTEXT = 0x1 ++ RT_DEFAULT_FIB = 0x0 ++ RT_NORTREF = 0x2 ++ RUSAGE_CHILDREN = -0x1 ++ RUSAGE_SELF = 0x0 ++ RUSAGE_THREAD = 0x1 ++ SCM_BINTIME = 0x4 ++ SCM_CREDS = 0x3 ++ SCM_RIGHTS = 0x1 ++ SCM_TIMESTAMP = 0x2 ++ SHUT_RD = 0x0 ++ SHUT_RDWR = 0x2 ++ SHUT_WR = 0x1 ++ SIOCADDMULTI = 0x80206931 ++ SIOCADDRT = 0x8040720a ++ SIOCAIFADDR = 0x8040691a ++ SIOCAIFGROUP = 0x80286987 ++ SIOCALIFADDR = 0x8118691b ++ SIOCATMARK = 0x40047307 ++ SIOCDELMULTI = 0x80206932 ++ SIOCDELRT = 0x8040720b ++ SIOCDIFADDR = 0x80206919 ++ SIOCDIFGROUP = 0x80286989 ++ SIOCDIFPHYADDR = 0x80206949 ++ SIOCDLIFADDR = 0x8118691d ++ SIOCGDRVSPEC = 0xc028697b ++ SIOCGETSGCNT = 0xc0207210 ++ SIOCGETVIFCNT = 0xc028720f ++ SIOCGHIWAT = 0x40047301 ++ SIOCGIFADDR = 0xc0206921 ++ SIOCGIFBRDADDR = 0xc0206923 ++ SIOCGIFCAP = 0xc020691f ++ SIOCGIFCONF = 0xc0106924 ++ SIOCGIFDESCR = 0xc020692a ++ SIOCGIFDSTADDR = 0xc0206922 ++ SIOCGIFFIB = 0xc020695c ++ SIOCGIFFLAGS = 0xc0206911 ++ SIOCGIFGENERIC = 0xc020693a ++ SIOCGIFGMEMB = 0xc028698a ++ SIOCGIFGROUP = 0xc0286988 ++ SIOCGIFINDEX = 0xc0206920 ++ SIOCGIFMAC = 0xc0206926 ++ SIOCGIFMEDIA = 0xc0306938 ++ SIOCGIFMETRIC = 0xc0206917 ++ SIOCGIFMTU = 0xc0206933 ++ SIOCGIFNETMASK = 0xc0206925 ++ SIOCGIFPDSTADDR = 0xc0206948 ++ SIOCGIFPHYS = 0xc0206935 ++ SIOCGIFPSRCADDR = 0xc0206947 ++ SIOCGIFSTATUS = 0xc331693b ++ SIOCGLIFADDR = 0xc118691c ++ SIOCGLIFPHYADDR = 0xc118694b ++ SIOCGLOWAT = 0x40047303 ++ SIOCGPGRP = 0x40047309 ++ SIOCGPRIVATE_0 = 0xc0206950 ++ SIOCGPRIVATE_1 = 0xc0206951 ++ SIOCIFCREATE = 0xc020697a ++ SIOCIFCREATE2 = 0xc020697c ++ SIOCIFDESTROY = 0x80206979 ++ SIOCIFGCLONERS = 0xc0106978 ++ SIOCSDRVSPEC = 0x8028697b ++ SIOCSHIWAT = 0x80047300 ++ SIOCSIFADDR = 0x8020690c ++ SIOCSIFBRDADDR = 0x80206913 ++ SIOCSIFCAP = 0x8020691e ++ SIOCSIFDESCR = 0x80206929 ++ SIOCSIFDSTADDR = 0x8020690e ++ SIOCSIFFIB = 0x8020695d ++ SIOCSIFFLAGS = 0x80206910 ++ SIOCSIFGENERIC = 0x80206939 ++ SIOCSIFLLADDR = 0x8020693c ++ SIOCSIFMAC = 0x80206927 ++ SIOCSIFMEDIA = 0xc0206937 ++ SIOCSIFMETRIC = 0x80206918 ++ SIOCSIFMTU = 0x80206934 ++ SIOCSIFNAME = 0x80206928 ++ SIOCSIFNETMASK = 0x80206916 ++ SIOCSIFPHYADDR = 0x80406946 ++ SIOCSIFPHYS = 0x80206936 ++ SIOCSIFRVNET = 0xc020695b ++ SIOCSIFVNET = 0xc020695a ++ SIOCSLIFPHYADDR = 0x8118694a ++ SIOCSLOWAT = 0x80047302 ++ SIOCSPGRP = 0x80047308 ++ SOCK_CLOEXEC = 0x10000000 ++ SOCK_DGRAM = 0x2 ++ SOCK_MAXADDRLEN = 0xff ++ SOCK_NONBLOCK = 0x20000000 ++ SOCK_RAW = 0x3 ++ SOCK_RDM = 0x4 ++ SOCK_SEQPACKET = 0x5 ++ SOCK_STREAM = 0x1 ++ SOL_SOCKET = 0xffff ++ SOMAXCONN = 0x80 ++ SO_ACCEPTCONN = 0x2 ++ SO_ACCEPTFILTER = 0x1000 ++ SO_BINTIME = 0x2000 ++ SO_BROADCAST = 0x20 ++ SO_DEBUG = 0x1 ++ SO_DONTROUTE = 0x10 ++ SO_ERROR = 0x1007 ++ SO_KEEPALIVE = 0x8 ++ SO_LABEL = 0x1009 ++ SO_LINGER = 0x80 ++ SO_LISTENINCQLEN = 0x1013 ++ SO_LISTENQLEN = 0x1012 ++ SO_LISTENQLIMIT = 0x1011 ++ SO_NOSIGPIPE = 0x800 ++ SO_NO_DDP = 0x8000 ++ SO_NO_OFFLOAD = 0x4000 ++ SO_OOBINLINE = 0x100 ++ SO_PEERLABEL = 0x1010 ++ SO_PROTOCOL = 0x1016 ++ SO_PROTOTYPE = 0x1016 ++ SO_RCVBUF = 0x1002 ++ SO_RCVLOWAT = 0x1004 ++ SO_RCVTIMEO = 0x1006 ++ SO_REUSEADDR = 0x4 ++ SO_REUSEPORT = 0x200 ++ SO_SETFIB = 0x1014 ++ SO_SNDBUF = 0x1001 ++ SO_SNDLOWAT = 0x1003 ++ SO_SNDTIMEO = 0x1005 ++ SO_TIMESTAMP = 0x400 ++ SO_TYPE = 0x1008 ++ SO_USELOOPBACK = 0x40 ++ SO_USER_COOKIE = 0x1015 ++ SO_VENDOR = 0x80000000 ++ TCIFLUSH = 0x1 ++ TCIOFLUSH = 0x3 ++ TCOFLUSH = 0x2 ++ TCP_CA_NAME_MAX = 0x10 ++ TCP_CONGESTION = 0x40 ++ TCP_INFO = 0x20 ++ TCP_KEEPCNT = 0x400 ++ TCP_KEEPIDLE = 0x100 ++ TCP_KEEPINIT = 0x80 ++ TCP_KEEPINTVL = 0x200 ++ TCP_MAXBURST = 0x4 ++ TCP_MAXHLEN = 0x3c ++ TCP_MAXOLEN = 0x28 ++ TCP_MAXSEG = 0x2 ++ TCP_MAXWIN = 0xffff ++ TCP_MAX_SACK = 0x4 ++ TCP_MAX_WINSHIFT = 0xe ++ TCP_MD5SIG = 0x10 ++ TCP_MINMSS = 0xd8 ++ TCP_MSS = 0x218 ++ TCP_NODELAY = 0x1 ++ TCP_NOOPT = 0x8 ++ TCP_NOPUSH = 0x4 ++ TCP_VENDOR = 0x80000000 ++ TCSAFLUSH = 0x2 ++ TIOCCBRK = 0x2000747a ++ TIOCCDTR = 0x20007478 ++ TIOCCONS = 0x80047462 ++ TIOCDRAIN = 0x2000745e ++ TIOCEXCL = 0x2000740d ++ TIOCEXT = 0x80047460 ++ TIOCFLUSH = 0x80047410 ++ TIOCGDRAINWAIT = 0x40047456 ++ TIOCGETA = 0x402c7413 ++ TIOCGETD = 0x4004741a ++ TIOCGPGRP = 0x40047477 ++ TIOCGPTN = 0x4004740f ++ TIOCGSID = 0x40047463 ++ TIOCGWINSZ = 0x40087468 ++ TIOCMBIC = 0x8004746b ++ TIOCMBIS = 0x8004746c ++ TIOCMGDTRWAIT = 0x4004745a ++ TIOCMGET = 0x4004746a ++ TIOCMSDTRWAIT = 0x8004745b ++ TIOCMSET = 0x8004746d ++ TIOCM_CAR = 0x40 ++ TIOCM_CD = 0x40 ++ TIOCM_CTS = 0x20 ++ TIOCM_DCD = 0x40 ++ TIOCM_DSR = 0x100 ++ TIOCM_DTR = 0x2 ++ TIOCM_LE = 0x1 ++ TIOCM_RI = 0x80 ++ TIOCM_RNG = 0x80 ++ TIOCM_RTS = 0x4 ++ TIOCM_SR = 0x10 ++ TIOCM_ST = 0x8 ++ TIOCNOTTY = 0x20007471 ++ TIOCNXCL = 0x2000740e ++ TIOCOUTQ = 0x40047473 ++ TIOCPKT = 0x80047470 ++ TIOCPKT_DATA = 0x0 ++ TIOCPKT_DOSTOP = 0x20 ++ TIOCPKT_FLUSHREAD = 0x1 ++ TIOCPKT_FLUSHWRITE = 0x2 ++ TIOCPKT_IOCTL = 0x40 ++ TIOCPKT_NOSTOP = 0x10 ++ TIOCPKT_START = 0x8 ++ TIOCPKT_STOP = 0x4 ++ TIOCPTMASTER = 0x2000741c ++ TIOCSBRK = 0x2000747b ++ TIOCSCTTY = 0x20007461 ++ TIOCSDRAINWAIT = 0x80047457 ++ TIOCSDTR = 0x20007479 ++ TIOCSETA = 0x802c7414 ++ TIOCSETAF = 0x802c7416 ++ TIOCSETAW = 0x802c7415 ++ TIOCSETD = 0x8004741b ++ TIOCSIG = 0x2004745f ++ TIOCSPGRP = 0x80047476 ++ TIOCSTART = 0x2000746e ++ TIOCSTAT = 0x20007465 ++ TIOCSTI = 0x80017472 ++ TIOCSTOP = 0x2000746f ++ TIOCSWINSZ = 0x80087467 ++ TIOCTIMESTAMP = 0x40107459 ++ TIOCUCNTL = 0x80047466 ++ TOSTOP = 0x400000 ++ VDISCARD = 0xf ++ VDSUSP = 0xb ++ VEOF = 0x0 ++ VEOL = 0x1 ++ VEOL2 = 0x2 ++ VERASE = 0x3 ++ VERASE2 = 0x7 ++ VINTR = 0x8 ++ VKILL = 0x5 ++ VLNEXT = 0xe ++ VMIN = 0x10 ++ VQUIT = 0x9 ++ VREPRINT = 0x6 ++ VSTART = 0xc ++ VSTATUS = 0x12 ++ VSTOP = 0xd ++ VSUSP = 0xa ++ VTIME = 0x11 ++ VWERASE = 0x4 ++ WCONTINUED = 0x4 ++ WCOREFLAG = 0x80 ++ WEXITED = 0x10 ++ WLINUXCLONE = 0x80000000 ++ WNOHANG = 0x1 ++ WNOWAIT = 0x8 ++ WSTOPPED = 0x2 ++ WTRAPPED = 0x20 ++ WUNTRACED = 0x2 ++) ++ ++// Errors ++const ( ++ E2BIG = syscall.Errno(0x7) ++ EACCES = syscall.Errno(0xd) ++ EADDRINUSE = syscall.Errno(0x30) ++ EADDRNOTAVAIL = syscall.Errno(0x31) ++ EAFNOSUPPORT = syscall.Errno(0x2f) ++ EAGAIN = syscall.Errno(0x23) ++ EALREADY = syscall.Errno(0x25) ++ EAUTH = syscall.Errno(0x50) ++ EBADF = syscall.Errno(0x9) ++ EBADMSG = syscall.Errno(0x59) ++ EBADRPC = syscall.Errno(0x48) ++ EBUSY = syscall.Errno(0x10) ++ ECANCELED = syscall.Errno(0x55) ++ ECAPMODE = syscall.Errno(0x5e) ++ ECHILD = syscall.Errno(0xa) ++ ECONNABORTED = syscall.Errno(0x35) ++ ECONNREFUSED = syscall.Errno(0x3d) ++ ECONNRESET = syscall.Errno(0x36) ++ EDEADLK = syscall.Errno(0xb) ++ EDESTADDRREQ = syscall.Errno(0x27) ++ EDOM = syscall.Errno(0x21) ++ EDOOFUS = syscall.Errno(0x58) ++ EDQUOT = syscall.Errno(0x45) ++ EEXIST = syscall.Errno(0x11) ++ EFAULT = syscall.Errno(0xe) ++ EFBIG = syscall.Errno(0x1b) ++ EFTYPE = syscall.Errno(0x4f) ++ EHOSTDOWN = syscall.Errno(0x40) ++ EHOSTUNREACH = syscall.Errno(0x41) ++ EIDRM = syscall.Errno(0x52) ++ EILSEQ = syscall.Errno(0x56) ++ EINPROGRESS = syscall.Errno(0x24) ++ EINTR = syscall.Errno(0x4) ++ EINVAL = syscall.Errno(0x16) ++ EIO = syscall.Errno(0x5) ++ EISCONN = syscall.Errno(0x38) ++ EISDIR = syscall.Errno(0x15) ++ ELAST = syscall.Errno(0x60) ++ ELOOP = syscall.Errno(0x3e) ++ EMFILE = syscall.Errno(0x18) ++ EMLINK = syscall.Errno(0x1f) ++ EMSGSIZE = syscall.Errno(0x28) ++ EMULTIHOP = syscall.Errno(0x5a) ++ ENAMETOOLONG = syscall.Errno(0x3f) ++ ENEEDAUTH = syscall.Errno(0x51) ++ ENETDOWN = syscall.Errno(0x32) ++ ENETRESET = syscall.Errno(0x34) ++ ENETUNREACH = syscall.Errno(0x33) ++ ENFILE = syscall.Errno(0x17) ++ ENOATTR = syscall.Errno(0x57) ++ ENOBUFS = syscall.Errno(0x37) ++ ENODEV = syscall.Errno(0x13) ++ ENOENT = syscall.Errno(0x2) ++ ENOEXEC = syscall.Errno(0x8) ++ ENOLCK = syscall.Errno(0x4d) ++ ENOLINK = syscall.Errno(0x5b) ++ ENOMEM = syscall.Errno(0xc) ++ ENOMSG = syscall.Errno(0x53) ++ ENOPROTOOPT = syscall.Errno(0x2a) ++ ENOSPC = syscall.Errno(0x1c) ++ ENOSYS = syscall.Errno(0x4e) ++ ENOTBLK = syscall.Errno(0xf) ++ ENOTCAPABLE = syscall.Errno(0x5d) ++ ENOTCONN = syscall.Errno(0x39) ++ ENOTDIR = syscall.Errno(0x14) ++ ENOTEMPTY = syscall.Errno(0x42) ++ ENOTRECOVERABLE = syscall.Errno(0x5f) ++ ENOTSOCK = syscall.Errno(0x26) ++ ENOTSUP = syscall.Errno(0x2d) ++ ENOTTY = syscall.Errno(0x19) ++ ENXIO = syscall.Errno(0x6) ++ EOPNOTSUPP = syscall.Errno(0x2d) ++ EOVERFLOW = syscall.Errno(0x54) ++ EOWNERDEAD = syscall.Errno(0x60) ++ EPERM = syscall.Errno(0x1) ++ EPFNOSUPPORT = syscall.Errno(0x2e) ++ EPIPE = syscall.Errno(0x20) ++ EPROCLIM = syscall.Errno(0x43) ++ EPROCUNAVAIL = syscall.Errno(0x4c) ++ EPROGMISMATCH = syscall.Errno(0x4b) ++ EPROGUNAVAIL = syscall.Errno(0x4a) ++ EPROTO = syscall.Errno(0x5c) ++ EPROTONOSUPPORT = syscall.Errno(0x2b) ++ EPROTOTYPE = syscall.Errno(0x29) ++ ERANGE = syscall.Errno(0x22) ++ EREMOTE = syscall.Errno(0x47) ++ EROFS = syscall.Errno(0x1e) ++ ERPCMISMATCH = syscall.Errno(0x49) ++ ESHUTDOWN = syscall.Errno(0x3a) ++ ESOCKTNOSUPPORT = syscall.Errno(0x2c) ++ ESPIPE = syscall.Errno(0x1d) ++ ESRCH = syscall.Errno(0x3) ++ ESTALE = syscall.Errno(0x46) ++ ETIMEDOUT = syscall.Errno(0x3c) ++ ETOOMANYREFS = syscall.Errno(0x3b) ++ ETXTBSY = syscall.Errno(0x1a) ++ EUSERS = syscall.Errno(0x44) ++ EWOULDBLOCK = syscall.Errno(0x23) ++ EXDEV = syscall.Errno(0x12) ++) ++ ++// Signals ++const ( ++ SIGABRT = syscall.Signal(0x6) ++ SIGALRM = syscall.Signal(0xe) ++ SIGBUS = syscall.Signal(0xa) ++ SIGCHLD = syscall.Signal(0x14) ++ SIGCONT = syscall.Signal(0x13) ++ SIGEMT = syscall.Signal(0x7) ++ SIGFPE = syscall.Signal(0x8) ++ SIGHUP = syscall.Signal(0x1) ++ SIGILL = syscall.Signal(0x4) ++ SIGINFO = syscall.Signal(0x1d) ++ SIGINT = syscall.Signal(0x2) ++ SIGIO = syscall.Signal(0x17) ++ SIGIOT = syscall.Signal(0x6) ++ SIGKILL = syscall.Signal(0x9) ++ SIGLIBRT = syscall.Signal(0x21) ++ SIGLWP = syscall.Signal(0x20) ++ SIGPIPE = syscall.Signal(0xd) ++ SIGPROF = syscall.Signal(0x1b) ++ SIGQUIT = syscall.Signal(0x3) ++ SIGSEGV = syscall.Signal(0xb) ++ SIGSTOP = syscall.Signal(0x11) ++ SIGSYS = syscall.Signal(0xc) ++ SIGTERM = syscall.Signal(0xf) ++ SIGTHR = syscall.Signal(0x20) ++ SIGTRAP = syscall.Signal(0x5) ++ SIGTSTP = syscall.Signal(0x12) ++ SIGTTIN = syscall.Signal(0x15) ++ SIGTTOU = syscall.Signal(0x16) ++ SIGURG = syscall.Signal(0x10) ++ SIGUSR1 = syscall.Signal(0x1e) ++ SIGUSR2 = syscall.Signal(0x1f) ++ SIGVTALRM = syscall.Signal(0x1a) ++ SIGWINCH = syscall.Signal(0x1c) ++ SIGXCPU = syscall.Signal(0x18) ++ SIGXFSZ = syscall.Signal(0x19) ++) ++ ++// Error table ++var errors = [...]string{ ++ 1: "operation not permitted", ++ 2: "no such file or directory", ++ 3: "no such process", ++ 4: "interrupted system call", ++ 5: "input/output error", ++ 6: "device not configured", ++ 7: "argument list too long", ++ 8: "exec format error", ++ 9: "bad file descriptor", ++ 10: "no child processes", ++ 11: "resource deadlock avoided", ++ 12: "cannot allocate memory", ++ 13: "permission denied", ++ 14: "bad address", ++ 15: "block device required", ++ 16: "device busy", ++ 17: "file exists", ++ 18: "cross-device link", ++ 19: "operation not supported by device", ++ 20: "not a directory", ++ 21: "is a directory", ++ 22: "invalid argument", ++ 23: "too many open files in system", ++ 24: "too many open files", ++ 25: "inappropriate ioctl for device", ++ 26: "text file busy", ++ 27: "file too large", ++ 28: "no space left on device", ++ 29: "illegal seek", ++ 30: "read-only file system", ++ 31: "too many links", ++ 32: "broken pipe", ++ 33: "numerical argument out of domain", ++ 34: "result too large", ++ 35: "resource temporarily unavailable", ++ 36: "operation now in progress", ++ 37: "operation already in progress", ++ 38: "socket operation on non-socket", ++ 39: "destination address required", ++ 40: "message too long", ++ 41: "protocol wrong type for socket", ++ 42: "protocol not available", ++ 43: "protocol not supported", ++ 44: "socket type not supported", ++ 45: "operation not supported", ++ 46: "protocol family not supported", ++ 47: "address family not supported by protocol family", ++ 48: "address already in use", ++ 49: "can't assign requested address", ++ 50: "network is down", ++ 51: "network is unreachable", ++ 52: "network dropped connection on reset", ++ 53: "software caused connection abort", ++ 54: "connection reset by peer", ++ 55: "no buffer space available", ++ 56: "socket is already connected", ++ 57: "socket is not connected", ++ 58: "can't send after socket shutdown", ++ 59: "too many references: can't splice", ++ 60: "operation timed out", ++ 61: "connection refused", ++ 62: "too many levels of symbolic links", ++ 63: "file name too long", ++ 64: "host is down", ++ 65: "no route to host", ++ 66: "directory not empty", ++ 67: "too many processes", ++ 68: "too many users", ++ 69: "disc quota exceeded", ++ 70: "stale NFS file handle", ++ 71: "too many levels of remote in path", ++ 72: "RPC struct is bad", ++ 73: "RPC version wrong", ++ 74: "RPC prog. not avail", ++ 75: "program version wrong", ++ 76: "bad procedure for program", ++ 77: "no locks available", ++ 78: "function not implemented", ++ 79: "inappropriate file type or format", ++ 80: "authentication error", ++ 81: "need authenticator", ++ 82: "identifier removed", ++ 83: "no message of desired type", ++ 84: "value too large to be stored in data type", ++ 85: "operation canceled", ++ 86: "illegal byte sequence", ++ 87: "attribute not found", ++ 88: "programming error", ++ 89: "bad message", ++ 90: "multihop attempted", ++ 91: "link has been severed", ++ 92: "protocol error", ++ 93: "capabilities insufficient", ++ 94: "not permitted in capability mode", ++ 95: "state not recoverable", ++ 96: "previous owner died", ++} ++ ++// Signal table ++var signals = [...]string{ ++ 1: "hangup", ++ 2: "interrupt", ++ 3: "quit", ++ 4: "illegal instruction", ++ 5: "trace/BPT trap", ++ 6: "abort trap", ++ 7: "EMT trap", ++ 8: "floating point exception", ++ 9: "killed", ++ 10: "bus error", ++ 11: "segmentation fault", ++ 12: "bad system call", ++ 13: "broken pipe", ++ 14: "alarm clock", ++ 15: "terminated", ++ 16: "urgent I/O condition", ++ 17: "suspended (signal)", ++ 18: "suspended", ++ 19: "continued", ++ 20: "child exited", ++ 21: "stopped (tty input)", ++ 22: "stopped (tty output)", ++ 23: "I/O possible", ++ 24: "cputime limit exceeded", ++ 25: "filesize limit exceeded", ++ 26: "virtual timer expired", ++ 27: "profiling timer expired", ++ 28: "window size changes", ++ 29: "information request", ++ 30: "user defined signal 1", ++ 31: "user defined signal 2", ++ 32: "unknown signal", ++ 33: "unknown signal", ++} +diff --git a/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go +new file mode 100644 +index 0000000..2afbe2d +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go +@@ -0,0 +1,1729 @@ ++// mkerrors.sh ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build arm,freebsd ++ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- _const.go ++ ++package unix ++ ++import "syscall" ++ ++const ( ++ AF_APPLETALK = 0x10 ++ AF_ARP = 0x23 ++ AF_ATM = 0x1e ++ AF_BLUETOOTH = 0x24 ++ AF_CCITT = 0xa ++ AF_CHAOS = 0x5 ++ AF_CNT = 0x15 ++ AF_COIP = 0x14 ++ AF_DATAKIT = 0x9 ++ AF_DECnet = 0xc ++ AF_DLI = 0xd ++ AF_E164 = 0x1a ++ AF_ECMA = 0x8 ++ AF_HYLINK = 0xf ++ AF_IEEE80211 = 0x25 ++ AF_IMPLINK = 0x3 ++ AF_INET = 0x2 ++ AF_INET6 = 0x1c ++ AF_INET6_SDP = 0x2a ++ AF_INET_SDP = 0x28 ++ AF_IPX = 0x17 ++ AF_ISDN = 0x1a ++ AF_ISO = 0x7 ++ AF_LAT = 0xe ++ AF_LINK = 0x12 ++ AF_LOCAL = 0x1 ++ AF_MAX = 0x2a ++ AF_NATM = 0x1d ++ AF_NETBIOS = 0x6 ++ AF_NETGRAPH = 0x20 ++ AF_OSI = 0x7 ++ AF_PUP = 0x4 ++ AF_ROUTE = 0x11 ++ AF_SCLUSTER = 0x22 ++ AF_SIP = 0x18 ++ AF_SLOW = 0x21 ++ AF_SNA = 0xb ++ AF_UNIX = 0x1 ++ AF_UNSPEC = 0x0 ++ AF_VENDOR00 = 0x27 ++ AF_VENDOR01 = 0x29 ++ AF_VENDOR02 = 0x2b ++ AF_VENDOR03 = 0x2d ++ AF_VENDOR04 = 0x2f ++ AF_VENDOR05 = 0x31 ++ AF_VENDOR06 = 0x33 ++ AF_VENDOR07 = 0x35 ++ AF_VENDOR08 = 0x37 ++ AF_VENDOR09 = 0x39 ++ AF_VENDOR10 = 0x3b ++ AF_VENDOR11 = 0x3d ++ AF_VENDOR12 = 0x3f ++ AF_VENDOR13 = 0x41 ++ AF_VENDOR14 = 0x43 ++ AF_VENDOR15 = 0x45 ++ AF_VENDOR16 = 0x47 ++ AF_VENDOR17 = 0x49 ++ AF_VENDOR18 = 0x4b ++ AF_VENDOR19 = 0x4d ++ AF_VENDOR20 = 0x4f ++ AF_VENDOR21 = 0x51 ++ AF_VENDOR22 = 0x53 ++ AF_VENDOR23 = 0x55 ++ AF_VENDOR24 = 0x57 ++ AF_VENDOR25 = 0x59 ++ AF_VENDOR26 = 0x5b ++ AF_VENDOR27 = 0x5d ++ AF_VENDOR28 = 0x5f ++ AF_VENDOR29 = 0x61 ++ AF_VENDOR30 = 0x63 ++ AF_VENDOR31 = 0x65 ++ AF_VENDOR32 = 0x67 ++ AF_VENDOR33 = 0x69 ++ AF_VENDOR34 = 0x6b ++ AF_VENDOR35 = 0x6d ++ AF_VENDOR36 = 0x6f ++ AF_VENDOR37 = 0x71 ++ AF_VENDOR38 = 0x73 ++ AF_VENDOR39 = 0x75 ++ AF_VENDOR40 = 0x77 ++ AF_VENDOR41 = 0x79 ++ AF_VENDOR42 = 0x7b ++ AF_VENDOR43 = 0x7d ++ AF_VENDOR44 = 0x7f ++ AF_VENDOR45 = 0x81 ++ AF_VENDOR46 = 0x83 ++ AF_VENDOR47 = 0x85 ++ B0 = 0x0 ++ B110 = 0x6e ++ B115200 = 0x1c200 ++ B1200 = 0x4b0 ++ B134 = 0x86 ++ B14400 = 0x3840 ++ B150 = 0x96 ++ B1800 = 0x708 ++ B19200 = 0x4b00 ++ B200 = 0xc8 ++ B230400 = 0x38400 ++ B2400 = 0x960 ++ B28800 = 0x7080 ++ B300 = 0x12c ++ B38400 = 0x9600 ++ B460800 = 0x70800 ++ B4800 = 0x12c0 ++ B50 = 0x32 ++ B57600 = 0xe100 ++ B600 = 0x258 ++ B7200 = 0x1c20 ++ B75 = 0x4b ++ B76800 = 0x12c00 ++ B921600 = 0xe1000 ++ B9600 = 0x2580 ++ BIOCFEEDBACK = 0x8004427c ++ BIOCFLUSH = 0x20004268 ++ BIOCGBLEN = 0x40044266 ++ BIOCGDIRECTION = 0x40044276 ++ BIOCGDLT = 0x4004426a ++ BIOCGDLTLIST = 0xc0084279 ++ BIOCGETBUFMODE = 0x4004427d ++ BIOCGETIF = 0x4020426b ++ BIOCGETZMAX = 0x4004427f ++ BIOCGHDRCMPLT = 0x40044274 ++ BIOCGRSIG = 0x40044272 ++ BIOCGRTIMEOUT = 0x4008426e ++ BIOCGSEESENT = 0x40044276 ++ BIOCGSTATS = 0x4008426f ++ BIOCGTSTAMP = 0x40044283 ++ BIOCIMMEDIATE = 0x80044270 ++ BIOCLOCK = 0x2000427a ++ BIOCPROMISC = 0x20004269 ++ BIOCROTZBUF = 0x400c4280 ++ BIOCSBLEN = 0xc0044266 ++ BIOCSDIRECTION = 0x80044277 ++ BIOCSDLT = 0x80044278 ++ BIOCSETBUFMODE = 0x8004427e ++ BIOCSETF = 0x80084267 ++ BIOCSETFNR = 0x80084282 ++ BIOCSETIF = 0x8020426c ++ BIOCSETWF = 0x8008427b ++ BIOCSETZBUF = 0x800c4281 ++ BIOCSHDRCMPLT = 0x80044275 ++ BIOCSRSIG = 0x80044273 ++ BIOCSRTIMEOUT = 0x8008426d ++ BIOCSSEESENT = 0x80044277 ++ BIOCSTSTAMP = 0x80044284 ++ BIOCVERSION = 0x40044271 ++ BPF_A = 0x10 ++ BPF_ABS = 0x20 ++ BPF_ADD = 0x0 ++ BPF_ALIGNMENT = 0x4 ++ BPF_ALU = 0x4 ++ BPF_AND = 0x50 ++ BPF_B = 0x10 ++ BPF_BUFMODE_BUFFER = 0x1 ++ BPF_BUFMODE_ZBUF = 0x2 ++ BPF_DIV = 0x30 ++ BPF_H = 0x8 ++ BPF_IMM = 0x0 ++ BPF_IND = 0x40 ++ BPF_JA = 0x0 ++ BPF_JEQ = 0x10 ++ BPF_JGE = 0x30 ++ BPF_JGT = 0x20 ++ BPF_JMP = 0x5 ++ BPF_JSET = 0x40 ++ BPF_K = 0x0 ++ BPF_LD = 0x0 ++ BPF_LDX = 0x1 ++ BPF_LEN = 0x80 ++ BPF_LSH = 0x60 ++ BPF_MAJOR_VERSION = 0x1 ++ BPF_MAXBUFSIZE = 0x80000 ++ BPF_MAXINSNS = 0x200 ++ BPF_MEM = 0x60 ++ BPF_MEMWORDS = 0x10 ++ BPF_MINBUFSIZE = 0x20 ++ BPF_MINOR_VERSION = 0x1 ++ BPF_MISC = 0x7 ++ BPF_MSH = 0xa0 ++ BPF_MUL = 0x20 ++ BPF_NEG = 0x80 ++ BPF_OR = 0x40 ++ BPF_RELEASE = 0x30bb6 ++ BPF_RET = 0x6 ++ BPF_RSH = 0x70 ++ BPF_ST = 0x2 ++ BPF_STX = 0x3 ++ BPF_SUB = 0x10 ++ BPF_TAX = 0x0 ++ BPF_TXA = 0x80 ++ BPF_T_BINTIME = 0x2 ++ BPF_T_BINTIME_FAST = 0x102 ++ BPF_T_BINTIME_MONOTONIC = 0x202 ++ BPF_T_BINTIME_MONOTONIC_FAST = 0x302 ++ BPF_T_FAST = 0x100 ++ BPF_T_FLAG_MASK = 0x300 ++ BPF_T_FORMAT_MASK = 0x3 ++ BPF_T_MICROTIME = 0x0 ++ BPF_T_MICROTIME_FAST = 0x100 ++ BPF_T_MICROTIME_MONOTONIC = 0x200 ++ BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 ++ BPF_T_MONOTONIC = 0x200 ++ BPF_T_MONOTONIC_FAST = 0x300 ++ BPF_T_NANOTIME = 0x1 ++ BPF_T_NANOTIME_FAST = 0x101 ++ BPF_T_NANOTIME_MONOTONIC = 0x201 ++ BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 ++ BPF_T_NONE = 0x3 ++ BPF_T_NORMAL = 0x0 ++ BPF_W = 0x0 ++ BPF_X = 0x8 ++ BRKINT = 0x2 ++ CFLUSH = 0xf ++ CLOCAL = 0x8000 ++ CREAD = 0x800 ++ CS5 = 0x0 ++ CS6 = 0x100 ++ CS7 = 0x200 ++ CS8 = 0x300 ++ CSIZE = 0x300 ++ CSTART = 0x11 ++ CSTATUS = 0x14 ++ CSTOP = 0x13 ++ CSTOPB = 0x400 ++ CSUSP = 0x1a ++ CTL_MAXNAME = 0x18 ++ CTL_NET = 0x4 ++ DLT_A429 = 0xb8 ++ DLT_A653_ICM = 0xb9 ++ DLT_AIRONET_HEADER = 0x78 ++ DLT_AOS = 0xde ++ DLT_APPLE_IP_OVER_IEEE1394 = 0x8a ++ DLT_ARCNET = 0x7 ++ DLT_ARCNET_LINUX = 0x81 ++ DLT_ATM_CLIP = 0x13 ++ DLT_ATM_RFC1483 = 0xb ++ DLT_AURORA = 0x7e ++ DLT_AX25 = 0x3 ++ DLT_AX25_KISS = 0xca ++ DLT_BACNET_MS_TP = 0xa5 ++ DLT_BLUETOOTH_HCI_H4 = 0xbb ++ DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 ++ DLT_CAN20B = 0xbe ++ DLT_CAN_SOCKETCAN = 0xe3 ++ DLT_CHAOS = 0x5 ++ DLT_CHDLC = 0x68 ++ DLT_CISCO_IOS = 0x76 ++ DLT_C_HDLC = 0x68 ++ DLT_C_HDLC_WITH_DIR = 0xcd ++ DLT_DBUS = 0xe7 ++ DLT_DECT = 0xdd ++ DLT_DOCSIS = 0x8f ++ DLT_DVB_CI = 0xeb ++ DLT_ECONET = 0x73 ++ DLT_EN10MB = 0x1 ++ DLT_EN3MB = 0x2 ++ DLT_ENC = 0x6d ++ DLT_ERF = 0xc5 ++ DLT_ERF_ETH = 0xaf ++ DLT_ERF_POS = 0xb0 ++ DLT_FC_2 = 0xe0 ++ DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 ++ DLT_FDDI = 0xa ++ DLT_FLEXRAY = 0xd2 ++ DLT_FRELAY = 0x6b ++ DLT_FRELAY_WITH_DIR = 0xce ++ DLT_GCOM_SERIAL = 0xad ++ DLT_GCOM_T1E1 = 0xac ++ DLT_GPF_F = 0xab ++ DLT_GPF_T = 0xaa ++ DLT_GPRS_LLC = 0xa9 ++ DLT_GSMTAP_ABIS = 0xda ++ DLT_GSMTAP_UM = 0xd9 ++ DLT_HHDLC = 0x79 ++ DLT_IBM_SN = 0x92 ++ DLT_IBM_SP = 0x91 ++ DLT_IEEE802 = 0x6 ++ DLT_IEEE802_11 = 0x69 ++ DLT_IEEE802_11_RADIO = 0x7f ++ DLT_IEEE802_11_RADIO_AVS = 0xa3 ++ DLT_IEEE802_15_4 = 0xc3 ++ DLT_IEEE802_15_4_LINUX = 0xbf ++ DLT_IEEE802_15_4_NOFCS = 0xe6 ++ DLT_IEEE802_15_4_NONASK_PHY = 0xd7 ++ DLT_IEEE802_16_MAC_CPS = 0xbc ++ DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 ++ DLT_IPFILTER = 0x74 ++ DLT_IPMB = 0xc7 ++ DLT_IPMB_LINUX = 0xd1 ++ DLT_IPNET = 0xe2 ++ DLT_IPOIB = 0xf2 ++ DLT_IPV4 = 0xe4 ++ DLT_IPV6 = 0xe5 ++ DLT_IP_OVER_FC = 0x7a ++ DLT_JUNIPER_ATM1 = 0x89 ++ DLT_JUNIPER_ATM2 = 0x87 ++ DLT_JUNIPER_ATM_CEMIC = 0xee ++ DLT_JUNIPER_CHDLC = 0xb5 ++ DLT_JUNIPER_ES = 0x84 ++ DLT_JUNIPER_ETHER = 0xb2 ++ DLT_JUNIPER_FIBRECHANNEL = 0xea ++ DLT_JUNIPER_FRELAY = 0xb4 ++ DLT_JUNIPER_GGSN = 0x85 ++ DLT_JUNIPER_ISM = 0xc2 ++ DLT_JUNIPER_MFR = 0x86 ++ DLT_JUNIPER_MLFR = 0x83 ++ DLT_JUNIPER_MLPPP = 0x82 ++ DLT_JUNIPER_MONITOR = 0xa4 ++ DLT_JUNIPER_PIC_PEER = 0xae ++ DLT_JUNIPER_PPP = 0xb3 ++ DLT_JUNIPER_PPPOE = 0xa7 ++ DLT_JUNIPER_PPPOE_ATM = 0xa8 ++ DLT_JUNIPER_SERVICES = 0x88 ++ DLT_JUNIPER_SRX_E2E = 0xe9 ++ DLT_JUNIPER_ST = 0xc8 ++ DLT_JUNIPER_VP = 0xb7 ++ DLT_JUNIPER_VS = 0xe8 ++ DLT_LAPB_WITH_DIR = 0xcf ++ DLT_LAPD = 0xcb ++ DLT_LIN = 0xd4 ++ DLT_LINUX_EVDEV = 0xd8 ++ DLT_LINUX_IRDA = 0x90 ++ DLT_LINUX_LAPD = 0xb1 ++ DLT_LINUX_PPP_WITHDIRECTION = 0xa6 ++ DLT_LINUX_SLL = 0x71 ++ DLT_LOOP = 0x6c ++ DLT_LTALK = 0x72 ++ DLT_MATCHING_MAX = 0xf6 ++ DLT_MATCHING_MIN = 0x68 ++ DLT_MFR = 0xb6 ++ DLT_MOST = 0xd3 ++ DLT_MPEG_2_TS = 0xf3 ++ DLT_MPLS = 0xdb ++ DLT_MTP2 = 0x8c ++ DLT_MTP2_WITH_PHDR = 0x8b ++ DLT_MTP3 = 0x8d ++ DLT_MUX27010 = 0xec ++ DLT_NETANALYZER = 0xf0 ++ DLT_NETANALYZER_TRANSPARENT = 0xf1 ++ DLT_NFC_LLCP = 0xf5 ++ DLT_NFLOG = 0xef ++ DLT_NG40 = 0xf4 ++ DLT_NULL = 0x0 ++ DLT_PCI_EXP = 0x7d ++ DLT_PFLOG = 0x75 ++ DLT_PFSYNC = 0x79 ++ DLT_PPI = 0xc0 ++ DLT_PPP = 0x9 ++ DLT_PPP_BSDOS = 0x10 ++ DLT_PPP_ETHER = 0x33 ++ DLT_PPP_PPPD = 0xa6 ++ DLT_PPP_SERIAL = 0x32 ++ DLT_PPP_WITH_DIR = 0xcc ++ DLT_PPP_WITH_DIRECTION = 0xa6 ++ DLT_PRISM_HEADER = 0x77 ++ DLT_PRONET = 0x4 ++ DLT_RAIF1 = 0xc6 ++ DLT_RAW = 0xc ++ DLT_RIO = 0x7c ++ DLT_SCCP = 0x8e ++ DLT_SITA = 0xc4 ++ DLT_SLIP = 0x8 ++ DLT_SLIP_BSDOS = 0xf ++ DLT_STANAG_5066_D_PDU = 0xed ++ DLT_SUNATM = 0x7b ++ DLT_SYMANTEC_FIREWALL = 0x63 ++ DLT_TZSP = 0x80 ++ DLT_USB = 0xba ++ DLT_USB_LINUX = 0xbd ++ DLT_USB_LINUX_MMAPPED = 0xdc ++ DLT_USER0 = 0x93 ++ DLT_USER1 = 0x94 ++ DLT_USER10 = 0x9d ++ DLT_USER11 = 0x9e ++ DLT_USER12 = 0x9f ++ DLT_USER13 = 0xa0 ++ DLT_USER14 = 0xa1 ++ DLT_USER15 = 0xa2 ++ DLT_USER2 = 0x95 ++ DLT_USER3 = 0x96 ++ DLT_USER4 = 0x97 ++ DLT_USER5 = 0x98 ++ DLT_USER6 = 0x99 ++ DLT_USER7 = 0x9a ++ DLT_USER8 = 0x9b ++ DLT_USER9 = 0x9c ++ DLT_WIHART = 0xdf ++ DLT_X2E_SERIAL = 0xd5 ++ DLT_X2E_XORAYA = 0xd6 ++ DT_BLK = 0x6 ++ DT_CHR = 0x2 ++ DT_DIR = 0x4 ++ DT_FIFO = 0x1 ++ DT_LNK = 0xa ++ DT_REG = 0x8 ++ DT_SOCK = 0xc ++ DT_UNKNOWN = 0x0 ++ DT_WHT = 0xe ++ ECHO = 0x8 ++ ECHOCTL = 0x40 ++ ECHOE = 0x2 ++ ECHOK = 0x4 ++ ECHOKE = 0x1 ++ ECHONL = 0x10 ++ ECHOPRT = 0x20 ++ EVFILT_AIO = -0x3 ++ EVFILT_FS = -0x9 ++ EVFILT_LIO = -0xa ++ EVFILT_PROC = -0x5 ++ EVFILT_READ = -0x1 ++ EVFILT_SIGNAL = -0x6 ++ EVFILT_SYSCOUNT = 0xb ++ EVFILT_TIMER = -0x7 ++ EVFILT_USER = -0xb ++ EVFILT_VNODE = -0x4 ++ EVFILT_WRITE = -0x2 ++ EV_ADD = 0x1 ++ EV_CLEAR = 0x20 ++ EV_DELETE = 0x2 ++ EV_DISABLE = 0x8 ++ EV_DISPATCH = 0x80 ++ EV_DROP = 0x1000 ++ EV_ENABLE = 0x4 ++ EV_EOF = 0x8000 ++ EV_ERROR = 0x4000 ++ EV_FLAG1 = 0x2000 ++ EV_ONESHOT = 0x10 ++ EV_RECEIPT = 0x40 ++ EV_SYSFLAGS = 0xf000 ++ EXTA = 0x4b00 ++ EXTATTR_NAMESPACE_EMPTY = 0x0 ++ EXTATTR_NAMESPACE_SYSTEM = 0x2 ++ EXTATTR_NAMESPACE_USER = 0x1 ++ EXTB = 0x9600 ++ EXTPROC = 0x800 ++ FD_CLOEXEC = 0x1 ++ FD_SETSIZE = 0x400 ++ FLUSHO = 0x800000 ++ F_CANCEL = 0x5 ++ F_DUP2FD = 0xa ++ F_DUP2FD_CLOEXEC = 0x12 ++ F_DUPFD = 0x0 ++ F_DUPFD_CLOEXEC = 0x11 ++ F_GETFD = 0x1 ++ F_GETFL = 0x3 ++ F_GETLK = 0xb ++ F_GETOWN = 0x5 ++ F_OGETLK = 0x7 ++ F_OK = 0x0 ++ F_OSETLK = 0x8 ++ F_OSETLKW = 0x9 ++ F_RDAHEAD = 0x10 ++ F_RDLCK = 0x1 ++ F_READAHEAD = 0xf ++ F_SETFD = 0x2 ++ F_SETFL = 0x4 ++ F_SETLK = 0xc ++ F_SETLKW = 0xd ++ F_SETLK_REMOTE = 0xe ++ F_SETOWN = 0x6 ++ F_UNLCK = 0x2 ++ F_UNLCKSYS = 0x4 ++ F_WRLCK = 0x3 ++ HUPCL = 0x4000 ++ ICANON = 0x100 ++ ICMP6_FILTER = 0x12 ++ ICRNL = 0x100 ++ IEXTEN = 0x400 ++ IFAN_ARRIVAL = 0x0 ++ IFAN_DEPARTURE = 0x1 ++ IFF_ALLMULTI = 0x200 ++ IFF_ALTPHYS = 0x4000 ++ IFF_BROADCAST = 0x2 ++ IFF_CANTCHANGE = 0x218f72 ++ IFF_CANTCONFIG = 0x10000 ++ IFF_DEBUG = 0x4 ++ IFF_DRV_OACTIVE = 0x400 ++ IFF_DRV_RUNNING = 0x40 ++ IFF_DYING = 0x200000 ++ IFF_LINK0 = 0x1000 ++ IFF_LINK1 = 0x2000 ++ IFF_LINK2 = 0x4000 ++ IFF_LOOPBACK = 0x8 ++ IFF_MONITOR = 0x40000 ++ IFF_MULTICAST = 0x8000 ++ IFF_NOARP = 0x80 ++ IFF_OACTIVE = 0x400 ++ IFF_POINTOPOINT = 0x10 ++ IFF_PPROMISC = 0x20000 ++ IFF_PROMISC = 0x100 ++ IFF_RENAMING = 0x400000 ++ IFF_RUNNING = 0x40 ++ IFF_SIMPLEX = 0x800 ++ IFF_SMART = 0x20 ++ IFF_STATICARP = 0x80000 ++ IFF_UP = 0x1 ++ IFNAMSIZ = 0x10 ++ IFT_1822 = 0x2 ++ IFT_A12MPPSWITCH = 0x82 ++ IFT_AAL2 = 0xbb ++ IFT_AAL5 = 0x31 ++ IFT_ADSL = 0x5e ++ IFT_AFLANE8023 = 0x3b ++ IFT_AFLANE8025 = 0x3c ++ IFT_ARAP = 0x58 ++ IFT_ARCNET = 0x23 ++ IFT_ARCNETPLUS = 0x24 ++ IFT_ASYNC = 0x54 ++ IFT_ATM = 0x25 ++ IFT_ATMDXI = 0x69 ++ IFT_ATMFUNI = 0x6a ++ IFT_ATMIMA = 0x6b ++ IFT_ATMLOGICAL = 0x50 ++ IFT_ATMRADIO = 0xbd ++ IFT_ATMSUBINTERFACE = 0x86 ++ IFT_ATMVCIENDPT = 0xc2 ++ IFT_ATMVIRTUAL = 0x95 ++ IFT_BGPPOLICYACCOUNTING = 0xa2 ++ IFT_BRIDGE = 0xd1 ++ IFT_BSC = 0x53 ++ IFT_CARP = 0xf8 ++ IFT_CCTEMUL = 0x3d ++ IFT_CEPT = 0x13 ++ IFT_CES = 0x85 ++ IFT_CHANNEL = 0x46 ++ IFT_CNR = 0x55 ++ IFT_COFFEE = 0x84 ++ IFT_COMPOSITELINK = 0x9b ++ IFT_DCN = 0x8d ++ IFT_DIGITALPOWERLINE = 0x8a ++ IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba ++ IFT_DLSW = 0x4a ++ IFT_DOCSCABLEDOWNSTREAM = 0x80 ++ IFT_DOCSCABLEMACLAYER = 0x7f ++ IFT_DOCSCABLEUPSTREAM = 0x81 ++ IFT_DS0 = 0x51 ++ IFT_DS0BUNDLE = 0x52 ++ IFT_DS1FDL = 0xaa ++ IFT_DS3 = 0x1e ++ IFT_DTM = 0x8c ++ IFT_DVBASILN = 0xac ++ IFT_DVBASIOUT = 0xad ++ IFT_DVBRCCDOWNSTREAM = 0x93 ++ IFT_DVBRCCMACLAYER = 0x92 ++ IFT_DVBRCCUPSTREAM = 0x94 ++ IFT_ENC = 0xf4 ++ IFT_EON = 0x19 ++ IFT_EPLRS = 0x57 ++ IFT_ESCON = 0x49 ++ IFT_ETHER = 0x6 ++ IFT_FAITH = 0xf2 ++ IFT_FAST = 0x7d ++ IFT_FASTETHER = 0x3e ++ IFT_FASTETHERFX = 0x45 ++ IFT_FDDI = 0xf ++ IFT_FIBRECHANNEL = 0x38 ++ IFT_FRAMERELAYINTERCONNECT = 0x3a ++ IFT_FRAMERELAYMPI = 0x5c ++ IFT_FRDLCIENDPT = 0xc1 ++ IFT_FRELAY = 0x20 ++ IFT_FRELAYDCE = 0x2c ++ IFT_FRF16MFRBUNDLE = 0xa3 ++ IFT_FRFORWARD = 0x9e ++ IFT_G703AT2MB = 0x43 ++ IFT_G703AT64K = 0x42 ++ IFT_GIF = 0xf0 ++ IFT_GIGABITETHERNET = 0x75 ++ IFT_GR303IDT = 0xb2 ++ IFT_GR303RDT = 0xb1 ++ IFT_H323GATEKEEPER = 0xa4 ++ IFT_H323PROXY = 0xa5 ++ IFT_HDH1822 = 0x3 ++ IFT_HDLC = 0x76 ++ IFT_HDSL2 = 0xa8 ++ IFT_HIPERLAN2 = 0xb7 ++ IFT_HIPPI = 0x2f ++ IFT_HIPPIINTERFACE = 0x39 ++ IFT_HOSTPAD = 0x5a ++ IFT_HSSI = 0x2e ++ IFT_HY = 0xe ++ IFT_IBM370PARCHAN = 0x48 ++ IFT_IDSL = 0x9a ++ IFT_IEEE1394 = 0x90 ++ IFT_IEEE80211 = 0x47 ++ IFT_IEEE80212 = 0x37 ++ IFT_IEEE8023ADLAG = 0xa1 ++ IFT_IFGSN = 0x91 ++ IFT_IMT = 0xbe ++ IFT_INFINIBAND = 0xc7 ++ IFT_INTERLEAVE = 0x7c ++ IFT_IP = 0x7e ++ IFT_IPFORWARD = 0x8e ++ IFT_IPOVERATM = 0x72 ++ IFT_IPOVERCDLC = 0x6d ++ IFT_IPOVERCLAW = 0x6e ++ IFT_IPSWITCH = 0x4e ++ IFT_IPXIP = 0xf9 ++ IFT_ISDN = 0x3f ++ IFT_ISDNBASIC = 0x14 ++ IFT_ISDNPRIMARY = 0x15 ++ IFT_ISDNS = 0x4b ++ IFT_ISDNU = 0x4c ++ IFT_ISO88022LLC = 0x29 ++ IFT_ISO88023 = 0x7 ++ IFT_ISO88024 = 0x8 ++ IFT_ISO88025 = 0x9 ++ IFT_ISO88025CRFPINT = 0x62 ++ IFT_ISO88025DTR = 0x56 ++ IFT_ISO88025FIBER = 0x73 ++ IFT_ISO88026 = 0xa ++ IFT_ISUP = 0xb3 ++ IFT_L2VLAN = 0x87 ++ IFT_L3IPVLAN = 0x88 ++ IFT_L3IPXVLAN = 0x89 ++ IFT_LAPB = 0x10 ++ IFT_LAPD = 0x4d ++ IFT_LAPF = 0x77 ++ IFT_LOCALTALK = 0x2a ++ IFT_LOOP = 0x18 ++ IFT_MEDIAMAILOVERIP = 0x8b ++ IFT_MFSIGLINK = 0xa7 ++ IFT_MIOX25 = 0x26 ++ IFT_MODEM = 0x30 ++ IFT_MPC = 0x71 ++ IFT_MPLS = 0xa6 ++ IFT_MPLSTUNNEL = 0x96 ++ IFT_MSDSL = 0x8f ++ IFT_MVL = 0xbf ++ IFT_MYRINET = 0x63 ++ IFT_NFAS = 0xaf ++ IFT_NSIP = 0x1b ++ IFT_OPTICALCHANNEL = 0xc3 ++ IFT_OPTICALTRANSPORT = 0xc4 ++ IFT_OTHER = 0x1 ++ IFT_P10 = 0xc ++ IFT_P80 = 0xd ++ IFT_PARA = 0x22 ++ IFT_PFLOG = 0xf6 ++ IFT_PFSYNC = 0xf7 ++ IFT_PLC = 0xae ++ IFT_POS = 0xab ++ IFT_PPP = 0x17 ++ IFT_PPPMULTILINKBUNDLE = 0x6c ++ IFT_PROPBWAP2MP = 0xb8 ++ IFT_PROPCNLS = 0x59 ++ IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 ++ IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 ++ IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 ++ IFT_PROPMUX = 0x36 ++ IFT_PROPVIRTUAL = 0x35 ++ IFT_PROPWIRELESSP2P = 0x9d ++ IFT_PTPSERIAL = 0x16 ++ IFT_PVC = 0xf1 ++ IFT_QLLC = 0x44 ++ IFT_RADIOMAC = 0xbc ++ IFT_RADSL = 0x5f ++ IFT_REACHDSL = 0xc0 ++ IFT_RFC1483 = 0x9f ++ IFT_RS232 = 0x21 ++ IFT_RSRB = 0x4f ++ IFT_SDLC = 0x11 ++ IFT_SDSL = 0x60 ++ IFT_SHDSL = 0xa9 ++ IFT_SIP = 0x1f ++ IFT_SLIP = 0x1c ++ IFT_SMDSDXI = 0x2b ++ IFT_SMDSICIP = 0x34 ++ IFT_SONET = 0x27 ++ IFT_SONETOVERHEADCHANNEL = 0xb9 ++ IFT_SONETPATH = 0x32 ++ IFT_SONETVT = 0x33 ++ IFT_SRP = 0x97 ++ IFT_SS7SIGLINK = 0x9c ++ IFT_STACKTOSTACK = 0x6f ++ IFT_STARLAN = 0xb ++ IFT_STF = 0xd7 ++ IFT_T1 = 0x12 ++ IFT_TDLC = 0x74 ++ IFT_TERMPAD = 0x5b ++ IFT_TR008 = 0xb0 ++ IFT_TRANSPHDLC = 0x7b ++ IFT_TUNNEL = 0x83 ++ IFT_ULTRA = 0x1d ++ IFT_USB = 0xa0 ++ IFT_V11 = 0x40 ++ IFT_V35 = 0x2d ++ IFT_V36 = 0x41 ++ IFT_V37 = 0x78 ++ IFT_VDSL = 0x61 ++ IFT_VIRTUALIPADDRESS = 0x70 ++ IFT_VOICEEM = 0x64 ++ IFT_VOICEENCAP = 0x67 ++ IFT_VOICEFXO = 0x65 ++ IFT_VOICEFXS = 0x66 ++ IFT_VOICEOVERATM = 0x98 ++ IFT_VOICEOVERFRAMERELAY = 0x99 ++ IFT_VOICEOVERIP = 0x68 ++ IFT_X213 = 0x5d ++ IFT_X25 = 0x5 ++ IFT_X25DDN = 0x4 ++ IFT_X25HUNTGROUP = 0x7a ++ IFT_X25MLP = 0x79 ++ IFT_X25PLE = 0x28 ++ IFT_XETHER = 0x1a ++ IGNBRK = 0x1 ++ IGNCR = 0x80 ++ IGNPAR = 0x4 ++ IMAXBEL = 0x2000 ++ INLCR = 0x40 ++ INPCK = 0x10 ++ IN_CLASSA_HOST = 0xffffff ++ IN_CLASSA_MAX = 0x80 ++ IN_CLASSA_NET = 0xff000000 ++ IN_CLASSA_NSHIFT = 0x18 ++ IN_CLASSB_HOST = 0xffff ++ IN_CLASSB_MAX = 0x10000 ++ IN_CLASSB_NET = 0xffff0000 ++ IN_CLASSB_NSHIFT = 0x10 ++ IN_CLASSC_HOST = 0xff ++ IN_CLASSC_NET = 0xffffff00 ++ IN_CLASSC_NSHIFT = 0x8 ++ IN_CLASSD_HOST = 0xfffffff ++ IN_CLASSD_NET = 0xf0000000 ++ IN_CLASSD_NSHIFT = 0x1c ++ IN_LOOPBACKNET = 0x7f ++ IN_RFC3021_MASK = 0xfffffffe ++ IPPROTO_3PC = 0x22 ++ IPPROTO_ADFS = 0x44 ++ IPPROTO_AH = 0x33 ++ IPPROTO_AHIP = 0x3d ++ IPPROTO_APES = 0x63 ++ IPPROTO_ARGUS = 0xd ++ IPPROTO_AX25 = 0x5d ++ IPPROTO_BHA = 0x31 ++ IPPROTO_BLT = 0x1e ++ IPPROTO_BRSATMON = 0x4c ++ IPPROTO_CARP = 0x70 ++ IPPROTO_CFTP = 0x3e ++ IPPROTO_CHAOS = 0x10 ++ IPPROTO_CMTP = 0x26 ++ IPPROTO_CPHB = 0x49 ++ IPPROTO_CPNX = 0x48 ++ IPPROTO_DDP = 0x25 ++ IPPROTO_DGP = 0x56 ++ IPPROTO_DIVERT = 0x102 ++ IPPROTO_DONE = 0x101 ++ IPPROTO_DSTOPTS = 0x3c ++ IPPROTO_EGP = 0x8 ++ IPPROTO_EMCON = 0xe ++ IPPROTO_ENCAP = 0x62 ++ IPPROTO_EON = 0x50 ++ IPPROTO_ESP = 0x32 ++ IPPROTO_ETHERIP = 0x61 ++ IPPROTO_FRAGMENT = 0x2c ++ IPPROTO_GGP = 0x3 ++ IPPROTO_GMTP = 0x64 ++ IPPROTO_GRE = 0x2f ++ IPPROTO_HELLO = 0x3f ++ IPPROTO_HIP = 0x8b ++ IPPROTO_HMP = 0x14 ++ IPPROTO_HOPOPTS = 0x0 ++ IPPROTO_ICMP = 0x1 ++ IPPROTO_ICMPV6 = 0x3a ++ IPPROTO_IDP = 0x16 ++ IPPROTO_IDPR = 0x23 ++ IPPROTO_IDRP = 0x2d ++ IPPROTO_IGMP = 0x2 ++ IPPROTO_IGP = 0x55 ++ IPPROTO_IGRP = 0x58 ++ IPPROTO_IL = 0x28 ++ IPPROTO_INLSP = 0x34 ++ IPPROTO_INP = 0x20 ++ IPPROTO_IP = 0x0 ++ IPPROTO_IPCOMP = 0x6c ++ IPPROTO_IPCV = 0x47 ++ IPPROTO_IPEIP = 0x5e ++ IPPROTO_IPIP = 0x4 ++ IPPROTO_IPPC = 0x43 ++ IPPROTO_IPV4 = 0x4 ++ IPPROTO_IPV6 = 0x29 ++ IPPROTO_IRTP = 0x1c ++ IPPROTO_KRYPTOLAN = 0x41 ++ IPPROTO_LARP = 0x5b ++ IPPROTO_LEAF1 = 0x19 ++ IPPROTO_LEAF2 = 0x1a ++ IPPROTO_MAX = 0x100 ++ IPPROTO_MAXID = 0x34 ++ IPPROTO_MEAS = 0x13 ++ IPPROTO_MH = 0x87 ++ IPPROTO_MHRP = 0x30 ++ IPPROTO_MICP = 0x5f ++ IPPROTO_MOBILE = 0x37 ++ IPPROTO_MPLS = 0x89 ++ IPPROTO_MTP = 0x5c ++ IPPROTO_MUX = 0x12 ++ IPPROTO_ND = 0x4d ++ IPPROTO_NHRP = 0x36 ++ IPPROTO_NONE = 0x3b ++ IPPROTO_NSP = 0x1f ++ IPPROTO_NVPII = 0xb ++ IPPROTO_OLD_DIVERT = 0xfe ++ IPPROTO_OSPFIGP = 0x59 ++ IPPROTO_PFSYNC = 0xf0 ++ IPPROTO_PGM = 0x71 ++ IPPROTO_PIGP = 0x9 ++ IPPROTO_PIM = 0x67 ++ IPPROTO_PRM = 0x15 ++ IPPROTO_PUP = 0xc ++ IPPROTO_PVP = 0x4b ++ IPPROTO_RAW = 0xff ++ IPPROTO_RCCMON = 0xa ++ IPPROTO_RDP = 0x1b ++ IPPROTO_RESERVED_253 = 0xfd ++ IPPROTO_RESERVED_254 = 0xfe ++ IPPROTO_ROUTING = 0x2b ++ IPPROTO_RSVP = 0x2e ++ IPPROTO_RVD = 0x42 ++ IPPROTO_SATEXPAK = 0x40 ++ IPPROTO_SATMON = 0x45 ++ IPPROTO_SCCSP = 0x60 ++ IPPROTO_SCTP = 0x84 ++ IPPROTO_SDRP = 0x2a ++ IPPROTO_SEND = 0x103 ++ IPPROTO_SEP = 0x21 ++ IPPROTO_SHIM6 = 0x8c ++ IPPROTO_SKIP = 0x39 ++ IPPROTO_SPACER = 0x7fff ++ IPPROTO_SRPC = 0x5a ++ IPPROTO_ST = 0x7 ++ IPPROTO_SVMTP = 0x52 ++ IPPROTO_SWIPE = 0x35 ++ IPPROTO_TCF = 0x57 ++ IPPROTO_TCP = 0x6 ++ IPPROTO_TLSP = 0x38 ++ IPPROTO_TP = 0x1d ++ IPPROTO_TPXX = 0x27 ++ IPPROTO_TRUNK1 = 0x17 ++ IPPROTO_TRUNK2 = 0x18 ++ IPPROTO_TTP = 0x54 ++ IPPROTO_UDP = 0x11 ++ IPPROTO_UDPLITE = 0x88 ++ IPPROTO_VINES = 0x53 ++ IPPROTO_VISA = 0x46 ++ IPPROTO_VMTP = 0x51 ++ IPPROTO_WBEXPAK = 0x4f ++ IPPROTO_WBMON = 0x4e ++ IPPROTO_WSN = 0x4a ++ IPPROTO_XNET = 0xf ++ IPPROTO_XTP = 0x24 ++ IPV6_AUTOFLOWLABEL = 0x3b ++ IPV6_BINDANY = 0x40 ++ IPV6_BINDV6ONLY = 0x1b ++ IPV6_CHECKSUM = 0x1a ++ IPV6_DEFAULT_MULTICAST_HOPS = 0x1 ++ IPV6_DEFAULT_MULTICAST_LOOP = 0x1 ++ IPV6_DEFHLIM = 0x40 ++ IPV6_DONTFRAG = 0x3e ++ IPV6_DSTOPTS = 0x32 ++ IPV6_FAITH = 0x1d ++ IPV6_FLOWINFO_MASK = 0xffffff0f ++ IPV6_FLOWLABEL_MASK = 0xffff0f00 ++ IPV6_FRAGTTL = 0x78 ++ IPV6_FW_ADD = 0x1e ++ IPV6_FW_DEL = 0x1f ++ IPV6_FW_FLUSH = 0x20 ++ IPV6_FW_GET = 0x22 ++ IPV6_FW_ZERO = 0x21 ++ IPV6_HLIMDEC = 0x1 ++ IPV6_HOPLIMIT = 0x2f ++ IPV6_HOPOPTS = 0x31 ++ IPV6_IPSEC_POLICY = 0x1c ++ IPV6_JOIN_GROUP = 0xc ++ IPV6_LEAVE_GROUP = 0xd ++ IPV6_MAXHLIM = 0xff ++ IPV6_MAXOPTHDR = 0x800 ++ IPV6_MAXPACKET = 0xffff ++ IPV6_MAX_GROUP_SRC_FILTER = 0x200 ++ IPV6_MAX_MEMBERSHIPS = 0xfff ++ IPV6_MAX_SOCK_SRC_FILTER = 0x80 ++ IPV6_MIN_MEMBERSHIPS = 0x1f ++ IPV6_MMTU = 0x500 ++ IPV6_MSFILTER = 0x4a ++ IPV6_MULTICAST_HOPS = 0xa ++ IPV6_MULTICAST_IF = 0x9 ++ IPV6_MULTICAST_LOOP = 0xb ++ IPV6_NEXTHOP = 0x30 ++ IPV6_PATHMTU = 0x2c ++ IPV6_PKTINFO = 0x2e ++ IPV6_PORTRANGE = 0xe ++ IPV6_PORTRANGE_DEFAULT = 0x0 ++ IPV6_PORTRANGE_HIGH = 0x1 ++ IPV6_PORTRANGE_LOW = 0x2 ++ IPV6_PREFER_TEMPADDR = 0x3f ++ IPV6_RECVDSTOPTS = 0x28 ++ IPV6_RECVHOPLIMIT = 0x25 ++ IPV6_RECVHOPOPTS = 0x27 ++ IPV6_RECVPATHMTU = 0x2b ++ IPV6_RECVPKTINFO = 0x24 ++ IPV6_RECVRTHDR = 0x26 ++ IPV6_RECVTCLASS = 0x39 ++ IPV6_RTHDR = 0x33 ++ IPV6_RTHDRDSTOPTS = 0x23 ++ IPV6_RTHDR_LOOSE = 0x0 ++ IPV6_RTHDR_STRICT = 0x1 ++ IPV6_RTHDR_TYPE_0 = 0x0 ++ IPV6_SOCKOPT_RESERVED1 = 0x3 ++ IPV6_TCLASS = 0x3d ++ IPV6_UNICAST_HOPS = 0x4 ++ IPV6_USE_MIN_MTU = 0x2a ++ IPV6_V6ONLY = 0x1b ++ IPV6_VERSION = 0x60 ++ IPV6_VERSION_MASK = 0xf0 ++ IP_ADD_MEMBERSHIP = 0xc ++ IP_ADD_SOURCE_MEMBERSHIP = 0x46 ++ IP_BINDANY = 0x18 ++ IP_BLOCK_SOURCE = 0x48 ++ IP_DEFAULT_MULTICAST_LOOP = 0x1 ++ IP_DEFAULT_MULTICAST_TTL = 0x1 ++ IP_DF = 0x4000 ++ IP_DONTFRAG = 0x43 ++ IP_DROP_MEMBERSHIP = 0xd ++ IP_DROP_SOURCE_MEMBERSHIP = 0x47 ++ IP_DUMMYNET3 = 0x31 ++ IP_DUMMYNET_CONFIGURE = 0x3c ++ IP_DUMMYNET_DEL = 0x3d ++ IP_DUMMYNET_FLUSH = 0x3e ++ IP_DUMMYNET_GET = 0x40 ++ IP_FAITH = 0x16 ++ IP_FW3 = 0x30 ++ IP_FW_ADD = 0x32 ++ IP_FW_DEL = 0x33 ++ IP_FW_FLUSH = 0x34 ++ IP_FW_GET = 0x36 ++ IP_FW_NAT_CFG = 0x38 ++ IP_FW_NAT_DEL = 0x39 ++ IP_FW_NAT_GET_CONFIG = 0x3a ++ IP_FW_NAT_GET_LOG = 0x3b ++ IP_FW_RESETLOG = 0x37 ++ IP_FW_TABLE_ADD = 0x28 ++ IP_FW_TABLE_DEL = 0x29 ++ IP_FW_TABLE_FLUSH = 0x2a ++ IP_FW_TABLE_GETSIZE = 0x2b ++ IP_FW_TABLE_LIST = 0x2c ++ IP_FW_ZERO = 0x35 ++ IP_HDRINCL = 0x2 ++ IP_IPSEC_POLICY = 0x15 ++ IP_MAXPACKET = 0xffff ++ IP_MAX_GROUP_SRC_FILTER = 0x200 ++ IP_MAX_MEMBERSHIPS = 0xfff ++ IP_MAX_SOCK_MUTE_FILTER = 0x80 ++ IP_MAX_SOCK_SRC_FILTER = 0x80 ++ IP_MAX_SOURCE_FILTER = 0x400 ++ IP_MF = 0x2000 ++ IP_MINTTL = 0x42 ++ IP_MIN_MEMBERSHIPS = 0x1f ++ IP_MSFILTER = 0x4a ++ IP_MSS = 0x240 ++ IP_MULTICAST_IF = 0x9 ++ IP_MULTICAST_LOOP = 0xb ++ IP_MULTICAST_TTL = 0xa ++ IP_MULTICAST_VIF = 0xe ++ IP_OFFMASK = 0x1fff ++ IP_ONESBCAST = 0x17 ++ IP_OPTIONS = 0x1 ++ IP_PORTRANGE = 0x13 ++ IP_PORTRANGE_DEFAULT = 0x0 ++ IP_PORTRANGE_HIGH = 0x1 ++ IP_PORTRANGE_LOW = 0x2 ++ IP_RECVDSTADDR = 0x7 ++ IP_RECVIF = 0x14 ++ IP_RECVOPTS = 0x5 ++ IP_RECVRETOPTS = 0x6 ++ IP_RECVTOS = 0x44 ++ IP_RECVTTL = 0x41 ++ IP_RETOPTS = 0x8 ++ IP_RF = 0x8000 ++ IP_RSVP_OFF = 0x10 ++ IP_RSVP_ON = 0xf ++ IP_RSVP_VIF_OFF = 0x12 ++ IP_RSVP_VIF_ON = 0x11 ++ IP_SENDSRCADDR = 0x7 ++ IP_TOS = 0x3 ++ IP_TTL = 0x4 ++ IP_UNBLOCK_SOURCE = 0x49 ++ ISIG = 0x80 ++ ISTRIP = 0x20 ++ IXANY = 0x800 ++ IXOFF = 0x400 ++ IXON = 0x200 ++ LOCK_EX = 0x2 ++ LOCK_NB = 0x4 ++ LOCK_SH = 0x1 ++ LOCK_UN = 0x8 ++ MADV_AUTOSYNC = 0x7 ++ MADV_CORE = 0x9 ++ MADV_DONTNEED = 0x4 ++ MADV_FREE = 0x5 ++ MADV_NOCORE = 0x8 ++ MADV_NORMAL = 0x0 ++ MADV_NOSYNC = 0x6 ++ MADV_PROTECT = 0xa ++ MADV_RANDOM = 0x1 ++ MADV_SEQUENTIAL = 0x2 ++ MADV_WILLNEED = 0x3 ++ MAP_ALIGNED_SUPER = 0x1000000 ++ MAP_ALIGNMENT_MASK = -0x1000000 ++ MAP_ALIGNMENT_SHIFT = 0x18 ++ MAP_ANON = 0x1000 ++ MAP_ANONYMOUS = 0x1000 ++ MAP_COPY = 0x2 ++ MAP_EXCL = 0x4000 ++ MAP_FILE = 0x0 ++ MAP_FIXED = 0x10 ++ MAP_HASSEMAPHORE = 0x200 ++ MAP_NOCORE = 0x20000 ++ MAP_NORESERVE = 0x40 ++ MAP_NOSYNC = 0x800 ++ MAP_PREFAULT_READ = 0x40000 ++ MAP_PRIVATE = 0x2 ++ MAP_RENAME = 0x20 ++ MAP_RESERVED0080 = 0x80 ++ MAP_RESERVED0100 = 0x100 ++ MAP_SHARED = 0x1 ++ MAP_STACK = 0x400 ++ MCL_CURRENT = 0x1 ++ MCL_FUTURE = 0x2 ++ MSG_CMSG_CLOEXEC = 0x40000 ++ MSG_COMPAT = 0x8000 ++ MSG_CTRUNC = 0x20 ++ MSG_DONTROUTE = 0x4 ++ MSG_DONTWAIT = 0x80 ++ MSG_EOF = 0x100 ++ MSG_EOR = 0x8 ++ MSG_NBIO = 0x4000 ++ MSG_NOSIGNAL = 0x20000 ++ MSG_NOTIFICATION = 0x2000 ++ MSG_OOB = 0x1 ++ MSG_PEEK = 0x2 ++ MSG_TRUNC = 0x10 ++ MSG_WAITALL = 0x40 ++ MS_ASYNC = 0x1 ++ MS_INVALIDATE = 0x2 ++ MS_SYNC = 0x0 ++ NAME_MAX = 0xff ++ NET_RT_DUMP = 0x1 ++ NET_RT_FLAGS = 0x2 ++ NET_RT_IFLIST = 0x3 ++ NET_RT_IFLISTL = 0x5 ++ NET_RT_IFMALIST = 0x4 ++ NET_RT_MAXID = 0x6 ++ NOFLSH = 0x80000000 ++ NOTE_ATTRIB = 0x8 ++ NOTE_CHILD = 0x4 ++ NOTE_DELETE = 0x1 ++ NOTE_EXEC = 0x20000000 ++ NOTE_EXIT = 0x80000000 ++ NOTE_EXTEND = 0x4 ++ NOTE_FFAND = 0x40000000 ++ NOTE_FFCOPY = 0xc0000000 ++ NOTE_FFCTRLMASK = 0xc0000000 ++ NOTE_FFLAGSMASK = 0xffffff ++ NOTE_FFNOP = 0x0 ++ NOTE_FFOR = 0x80000000 ++ NOTE_FORK = 0x40000000 ++ NOTE_LINK = 0x10 ++ NOTE_LOWAT = 0x1 ++ NOTE_PCTRLMASK = 0xf0000000 ++ NOTE_PDATAMASK = 0xfffff ++ NOTE_RENAME = 0x20 ++ NOTE_REVOKE = 0x40 ++ NOTE_TRACK = 0x1 ++ NOTE_TRACKERR = 0x2 ++ NOTE_TRIGGER = 0x1000000 ++ NOTE_WRITE = 0x2 ++ OCRNL = 0x10 ++ ONLCR = 0x2 ++ ONLRET = 0x40 ++ ONOCR = 0x20 ++ ONOEOT = 0x8 ++ OPOST = 0x1 ++ O_ACCMODE = 0x3 ++ O_APPEND = 0x8 ++ O_ASYNC = 0x40 ++ O_CLOEXEC = 0x100000 ++ O_CREAT = 0x200 ++ O_DIRECT = 0x10000 ++ O_DIRECTORY = 0x20000 ++ O_EXCL = 0x800 ++ O_EXEC = 0x40000 ++ O_EXLOCK = 0x20 ++ O_FSYNC = 0x80 ++ O_NDELAY = 0x4 ++ O_NOCTTY = 0x8000 ++ O_NOFOLLOW = 0x100 ++ O_NONBLOCK = 0x4 ++ O_RDONLY = 0x0 ++ O_RDWR = 0x2 ++ O_SHLOCK = 0x10 ++ O_SYNC = 0x80 ++ O_TRUNC = 0x400 ++ O_TTY_INIT = 0x80000 ++ O_WRONLY = 0x1 ++ PARENB = 0x1000 ++ PARMRK = 0x8 ++ PARODD = 0x2000 ++ PENDIN = 0x20000000 ++ PRIO_PGRP = 0x1 ++ PRIO_PROCESS = 0x0 ++ PRIO_USER = 0x2 ++ PROT_EXEC = 0x4 ++ PROT_NONE = 0x0 ++ PROT_READ = 0x1 ++ PROT_WRITE = 0x2 ++ RLIMIT_AS = 0xa ++ RLIMIT_CORE = 0x4 ++ RLIMIT_CPU = 0x0 ++ RLIMIT_DATA = 0x2 ++ RLIMIT_FSIZE = 0x1 ++ RLIMIT_NOFILE = 0x8 ++ RLIMIT_STACK = 0x3 ++ RLIM_INFINITY = 0x7fffffffffffffff ++ RTAX_AUTHOR = 0x6 ++ RTAX_BRD = 0x7 ++ RTAX_DST = 0x0 ++ RTAX_GATEWAY = 0x1 ++ RTAX_GENMASK = 0x3 ++ RTAX_IFA = 0x5 ++ RTAX_IFP = 0x4 ++ RTAX_MAX = 0x8 ++ RTAX_NETMASK = 0x2 ++ RTA_AUTHOR = 0x40 ++ RTA_BRD = 0x80 ++ RTA_DST = 0x1 ++ RTA_GATEWAY = 0x2 ++ RTA_GENMASK = 0x8 ++ RTA_IFA = 0x20 ++ RTA_IFP = 0x10 ++ RTA_NETMASK = 0x4 ++ RTF_BLACKHOLE = 0x1000 ++ RTF_BROADCAST = 0x400000 ++ RTF_DONE = 0x40 ++ RTF_DYNAMIC = 0x10 ++ RTF_FMASK = 0x1004d808 ++ RTF_GATEWAY = 0x2 ++ RTF_GWFLAG_COMPAT = 0x80000000 ++ RTF_HOST = 0x4 ++ RTF_LLDATA = 0x400 ++ RTF_LLINFO = 0x400 ++ RTF_LOCAL = 0x200000 ++ RTF_MODIFIED = 0x20 ++ RTF_MULTICAST = 0x800000 ++ RTF_PINNED = 0x100000 ++ RTF_PRCLONING = 0x10000 ++ RTF_PROTO1 = 0x8000 ++ RTF_PROTO2 = 0x4000 ++ RTF_PROTO3 = 0x40000 ++ RTF_REJECT = 0x8 ++ RTF_RNH_LOCKED = 0x40000000 ++ RTF_STATIC = 0x800 ++ RTF_STICKY = 0x10000000 ++ RTF_UP = 0x1 ++ RTF_XRESOLVE = 0x200 ++ RTM_ADD = 0x1 ++ RTM_CHANGE = 0x3 ++ RTM_DELADDR = 0xd ++ RTM_DELETE = 0x2 ++ RTM_DELMADDR = 0x10 ++ RTM_GET = 0x4 ++ RTM_IEEE80211 = 0x12 ++ RTM_IFANNOUNCE = 0x11 ++ RTM_IFINFO = 0xe ++ RTM_LOCK = 0x8 ++ RTM_LOSING = 0x5 ++ RTM_MISS = 0x7 ++ RTM_NEWADDR = 0xc ++ RTM_NEWMADDR = 0xf ++ RTM_OLDADD = 0x9 ++ RTM_OLDDEL = 0xa ++ RTM_REDIRECT = 0x6 ++ RTM_RESOLVE = 0xb ++ RTM_RTTUNIT = 0xf4240 ++ RTM_VERSION = 0x5 ++ RTV_EXPIRE = 0x4 ++ RTV_HOPCOUNT = 0x2 ++ RTV_MTU = 0x1 ++ RTV_RPIPE = 0x8 ++ RTV_RTT = 0x40 ++ RTV_RTTVAR = 0x80 ++ RTV_SPIPE = 0x10 ++ RTV_SSTHRESH = 0x20 ++ RTV_WEIGHT = 0x100 ++ RT_ALL_FIBS = -0x1 ++ RT_CACHING_CONTEXT = 0x1 ++ RT_DEFAULT_FIB = 0x0 ++ RT_NORTREF = 0x2 ++ RUSAGE_CHILDREN = -0x1 ++ RUSAGE_SELF = 0x0 ++ RUSAGE_THREAD = 0x1 ++ SCM_BINTIME = 0x4 ++ SCM_CREDS = 0x3 ++ SCM_RIGHTS = 0x1 ++ SCM_TIMESTAMP = 0x2 ++ SHUT_RD = 0x0 ++ SHUT_RDWR = 0x2 ++ SHUT_WR = 0x1 ++ SIOCADDMULTI = 0x80206931 ++ SIOCADDRT = 0x8030720a ++ SIOCAIFADDR = 0x8040691a ++ SIOCAIFGROUP = 0x80246987 ++ SIOCALIFADDR = 0x8118691b ++ SIOCATMARK = 0x40047307 ++ SIOCDELMULTI = 0x80206932 ++ SIOCDELRT = 0x8030720b ++ SIOCDIFADDR = 0x80206919 ++ SIOCDIFGROUP = 0x80246989 ++ SIOCDIFPHYADDR = 0x80206949 ++ SIOCDLIFADDR = 0x8118691d ++ SIOCGDRVSPEC = 0xc01c697b ++ SIOCGETSGCNT = 0xc0147210 ++ SIOCGETVIFCNT = 0xc014720f ++ SIOCGHIWAT = 0x40047301 ++ SIOCGIFADDR = 0xc0206921 ++ SIOCGIFBRDADDR = 0xc0206923 ++ SIOCGIFCAP = 0xc020691f ++ SIOCGIFCONF = 0xc0086924 ++ SIOCGIFDESCR = 0xc020692a ++ SIOCGIFDSTADDR = 0xc0206922 ++ SIOCGIFFIB = 0xc020695c ++ SIOCGIFFLAGS = 0xc0206911 ++ SIOCGIFGENERIC = 0xc020693a ++ SIOCGIFGMEMB = 0xc024698a ++ SIOCGIFGROUP = 0xc0246988 ++ SIOCGIFINDEX = 0xc0206920 ++ SIOCGIFMAC = 0xc0206926 ++ SIOCGIFMEDIA = 0xc0286938 ++ SIOCGIFMETRIC = 0xc0206917 ++ SIOCGIFMTU = 0xc0206933 ++ SIOCGIFNETMASK = 0xc0206925 ++ SIOCGIFPDSTADDR = 0xc0206948 ++ SIOCGIFPHYS = 0xc0206935 ++ SIOCGIFPSRCADDR = 0xc0206947 ++ SIOCGIFSTATUS = 0xc331693b ++ SIOCGLIFADDR = 0xc118691c ++ SIOCGLIFPHYADDR = 0xc118694b ++ SIOCGLOWAT = 0x40047303 ++ SIOCGPGRP = 0x40047309 ++ SIOCGPRIVATE_0 = 0xc0206950 ++ SIOCGPRIVATE_1 = 0xc0206951 ++ SIOCIFCREATE = 0xc020697a ++ SIOCIFCREATE2 = 0xc020697c ++ SIOCIFDESTROY = 0x80206979 ++ SIOCIFGCLONERS = 0xc00c6978 ++ SIOCSDRVSPEC = 0x801c697b ++ SIOCSHIWAT = 0x80047300 ++ SIOCSIFADDR = 0x8020690c ++ SIOCSIFBRDADDR = 0x80206913 ++ SIOCSIFCAP = 0x8020691e ++ SIOCSIFDESCR = 0x80206929 ++ SIOCSIFDSTADDR = 0x8020690e ++ SIOCSIFFIB = 0x8020695d ++ SIOCSIFFLAGS = 0x80206910 ++ SIOCSIFGENERIC = 0x80206939 ++ SIOCSIFLLADDR = 0x8020693c ++ SIOCSIFMAC = 0x80206927 ++ SIOCSIFMEDIA = 0xc0206937 ++ SIOCSIFMETRIC = 0x80206918 ++ SIOCSIFMTU = 0x80206934 ++ SIOCSIFNAME = 0x80206928 ++ SIOCSIFNETMASK = 0x80206916 ++ SIOCSIFPHYADDR = 0x80406946 ++ SIOCSIFPHYS = 0x80206936 ++ SIOCSIFRVNET = 0xc020695b ++ SIOCSIFVNET = 0xc020695a ++ SIOCSLIFPHYADDR = 0x8118694a ++ SIOCSLOWAT = 0x80047302 ++ SIOCSPGRP = 0x80047308 ++ SOCK_CLOEXEC = 0x10000000 ++ SOCK_DGRAM = 0x2 ++ SOCK_MAXADDRLEN = 0xff ++ SOCK_NONBLOCK = 0x20000000 ++ SOCK_RAW = 0x3 ++ SOCK_RDM = 0x4 ++ SOCK_SEQPACKET = 0x5 ++ SOCK_STREAM = 0x1 ++ SOL_SOCKET = 0xffff ++ SOMAXCONN = 0x80 ++ SO_ACCEPTCONN = 0x2 ++ SO_ACCEPTFILTER = 0x1000 ++ SO_BINTIME = 0x2000 ++ SO_BROADCAST = 0x20 ++ SO_DEBUG = 0x1 ++ SO_DONTROUTE = 0x10 ++ SO_ERROR = 0x1007 ++ SO_KEEPALIVE = 0x8 ++ SO_LABEL = 0x1009 ++ SO_LINGER = 0x80 ++ SO_LISTENINCQLEN = 0x1013 ++ SO_LISTENQLEN = 0x1012 ++ SO_LISTENQLIMIT = 0x1011 ++ SO_NOSIGPIPE = 0x800 ++ SO_NO_DDP = 0x8000 ++ SO_NO_OFFLOAD = 0x4000 ++ SO_OOBINLINE = 0x100 ++ SO_PEERLABEL = 0x1010 ++ SO_PROTOCOL = 0x1016 ++ SO_PROTOTYPE = 0x1016 ++ SO_RCVBUF = 0x1002 ++ SO_RCVLOWAT = 0x1004 ++ SO_RCVTIMEO = 0x1006 ++ SO_REUSEADDR = 0x4 ++ SO_REUSEPORT = 0x200 ++ SO_SETFIB = 0x1014 ++ SO_SNDBUF = 0x1001 ++ SO_SNDLOWAT = 0x1003 ++ SO_SNDTIMEO = 0x1005 ++ SO_TIMESTAMP = 0x400 ++ SO_TYPE = 0x1008 ++ SO_USELOOPBACK = 0x40 ++ SO_USER_COOKIE = 0x1015 ++ SO_VENDOR = 0x80000000 ++ TCIFLUSH = 0x1 ++ TCIOFLUSH = 0x3 ++ TCOFLUSH = 0x2 ++ TCP_CA_NAME_MAX = 0x10 ++ TCP_CONGESTION = 0x40 ++ TCP_INFO = 0x20 ++ TCP_KEEPCNT = 0x400 ++ TCP_KEEPIDLE = 0x100 ++ TCP_KEEPINIT = 0x80 ++ TCP_KEEPINTVL = 0x200 ++ TCP_MAXBURST = 0x4 ++ TCP_MAXHLEN = 0x3c ++ TCP_MAXOLEN = 0x28 ++ TCP_MAXSEG = 0x2 ++ TCP_MAXWIN = 0xffff ++ TCP_MAX_SACK = 0x4 ++ TCP_MAX_WINSHIFT = 0xe ++ TCP_MD5SIG = 0x10 ++ TCP_MINMSS = 0xd8 ++ TCP_MSS = 0x218 ++ TCP_NODELAY = 0x1 ++ TCP_NOOPT = 0x8 ++ TCP_NOPUSH = 0x4 ++ TCP_VENDOR = 0x80000000 ++ TCSAFLUSH = 0x2 ++ TIOCCBRK = 0x2000747a ++ TIOCCDTR = 0x20007478 ++ TIOCCONS = 0x80047462 ++ TIOCDRAIN = 0x2000745e ++ TIOCEXCL = 0x2000740d ++ TIOCEXT = 0x80047460 ++ TIOCFLUSH = 0x80047410 ++ TIOCGDRAINWAIT = 0x40047456 ++ TIOCGETA = 0x402c7413 ++ TIOCGETD = 0x4004741a ++ TIOCGPGRP = 0x40047477 ++ TIOCGPTN = 0x4004740f ++ TIOCGSID = 0x40047463 ++ TIOCGWINSZ = 0x40087468 ++ TIOCMBIC = 0x8004746b ++ TIOCMBIS = 0x8004746c ++ TIOCMGDTRWAIT = 0x4004745a ++ TIOCMGET = 0x4004746a ++ TIOCMSDTRWAIT = 0x8004745b ++ TIOCMSET = 0x8004746d ++ TIOCM_CAR = 0x40 ++ TIOCM_CD = 0x40 ++ TIOCM_CTS = 0x20 ++ TIOCM_DCD = 0x40 ++ TIOCM_DSR = 0x100 ++ TIOCM_DTR = 0x2 ++ TIOCM_LE = 0x1 ++ TIOCM_RI = 0x80 ++ TIOCM_RNG = 0x80 ++ TIOCM_RTS = 0x4 ++ TIOCM_SR = 0x10 ++ TIOCM_ST = 0x8 ++ TIOCNOTTY = 0x20007471 ++ TIOCNXCL = 0x2000740e ++ TIOCOUTQ = 0x40047473 ++ TIOCPKT = 0x80047470 ++ TIOCPKT_DATA = 0x0 ++ TIOCPKT_DOSTOP = 0x20 ++ TIOCPKT_FLUSHREAD = 0x1 ++ TIOCPKT_FLUSHWRITE = 0x2 ++ TIOCPKT_IOCTL = 0x40 ++ TIOCPKT_NOSTOP = 0x10 ++ TIOCPKT_START = 0x8 ++ TIOCPKT_STOP = 0x4 ++ TIOCPTMASTER = 0x2000741c ++ TIOCSBRK = 0x2000747b ++ TIOCSCTTY = 0x20007461 ++ TIOCSDRAINWAIT = 0x80047457 ++ TIOCSDTR = 0x20007479 ++ TIOCSETA = 0x802c7414 ++ TIOCSETAF = 0x802c7416 ++ TIOCSETAW = 0x802c7415 ++ TIOCSETD = 0x8004741b ++ TIOCSIG = 0x2004745f ++ TIOCSPGRP = 0x80047476 ++ TIOCSTART = 0x2000746e ++ TIOCSTAT = 0x20007465 ++ TIOCSTI = 0x80017472 ++ TIOCSTOP = 0x2000746f ++ TIOCSWINSZ = 0x80087467 ++ TIOCTIMESTAMP = 0x40087459 ++ TIOCUCNTL = 0x80047466 ++ TOSTOP = 0x400000 ++ VDISCARD = 0xf ++ VDSUSP = 0xb ++ VEOF = 0x0 ++ VEOL = 0x1 ++ VEOL2 = 0x2 ++ VERASE = 0x3 ++ VERASE2 = 0x7 ++ VINTR = 0x8 ++ VKILL = 0x5 ++ VLNEXT = 0xe ++ VMIN = 0x10 ++ VQUIT = 0x9 ++ VREPRINT = 0x6 ++ VSTART = 0xc ++ VSTATUS = 0x12 ++ VSTOP = 0xd ++ VSUSP = 0xa ++ VTIME = 0x11 ++ VWERASE = 0x4 ++ WCONTINUED = 0x4 ++ WCOREFLAG = 0x80 ++ WEXITED = 0x10 ++ WLINUXCLONE = 0x80000000 ++ WNOHANG = 0x1 ++ WNOWAIT = 0x8 ++ WSTOPPED = 0x2 ++ WTRAPPED = 0x20 ++ WUNTRACED = 0x2 ++) ++ ++// Errors ++const ( ++ E2BIG = syscall.Errno(0x7) ++ EACCES = syscall.Errno(0xd) ++ EADDRINUSE = syscall.Errno(0x30) ++ EADDRNOTAVAIL = syscall.Errno(0x31) ++ EAFNOSUPPORT = syscall.Errno(0x2f) ++ EAGAIN = syscall.Errno(0x23) ++ EALREADY = syscall.Errno(0x25) ++ EAUTH = syscall.Errno(0x50) ++ EBADF = syscall.Errno(0x9) ++ EBADMSG = syscall.Errno(0x59) ++ EBADRPC = syscall.Errno(0x48) ++ EBUSY = syscall.Errno(0x10) ++ ECANCELED = syscall.Errno(0x55) ++ ECAPMODE = syscall.Errno(0x5e) ++ ECHILD = syscall.Errno(0xa) ++ ECONNABORTED = syscall.Errno(0x35) ++ ECONNREFUSED = syscall.Errno(0x3d) ++ ECONNRESET = syscall.Errno(0x36) ++ EDEADLK = syscall.Errno(0xb) ++ EDESTADDRREQ = syscall.Errno(0x27) ++ EDOM = syscall.Errno(0x21) ++ EDOOFUS = syscall.Errno(0x58) ++ EDQUOT = syscall.Errno(0x45) ++ EEXIST = syscall.Errno(0x11) ++ EFAULT = syscall.Errno(0xe) ++ EFBIG = syscall.Errno(0x1b) ++ EFTYPE = syscall.Errno(0x4f) ++ EHOSTDOWN = syscall.Errno(0x40) ++ EHOSTUNREACH = syscall.Errno(0x41) ++ EIDRM = syscall.Errno(0x52) ++ EILSEQ = syscall.Errno(0x56) ++ EINPROGRESS = syscall.Errno(0x24) ++ EINTR = syscall.Errno(0x4) ++ EINVAL = syscall.Errno(0x16) ++ EIO = syscall.Errno(0x5) ++ EISCONN = syscall.Errno(0x38) ++ EISDIR = syscall.Errno(0x15) ++ ELAST = syscall.Errno(0x60) ++ ELOOP = syscall.Errno(0x3e) ++ EMFILE = syscall.Errno(0x18) ++ EMLINK = syscall.Errno(0x1f) ++ EMSGSIZE = syscall.Errno(0x28) ++ EMULTIHOP = syscall.Errno(0x5a) ++ ENAMETOOLONG = syscall.Errno(0x3f) ++ ENEEDAUTH = syscall.Errno(0x51) ++ ENETDOWN = syscall.Errno(0x32) ++ ENETRESET = syscall.Errno(0x34) ++ ENETUNREACH = syscall.Errno(0x33) ++ ENFILE = syscall.Errno(0x17) ++ ENOATTR = syscall.Errno(0x57) ++ ENOBUFS = syscall.Errno(0x37) ++ ENODEV = syscall.Errno(0x13) ++ ENOENT = syscall.Errno(0x2) ++ ENOEXEC = syscall.Errno(0x8) ++ ENOLCK = syscall.Errno(0x4d) ++ ENOLINK = syscall.Errno(0x5b) ++ ENOMEM = syscall.Errno(0xc) ++ ENOMSG = syscall.Errno(0x53) ++ ENOPROTOOPT = syscall.Errno(0x2a) ++ ENOSPC = syscall.Errno(0x1c) ++ ENOSYS = syscall.Errno(0x4e) ++ ENOTBLK = syscall.Errno(0xf) ++ ENOTCAPABLE = syscall.Errno(0x5d) ++ ENOTCONN = syscall.Errno(0x39) ++ ENOTDIR = syscall.Errno(0x14) ++ ENOTEMPTY = syscall.Errno(0x42) ++ ENOTRECOVERABLE = syscall.Errno(0x5f) ++ ENOTSOCK = syscall.Errno(0x26) ++ ENOTSUP = syscall.Errno(0x2d) ++ ENOTTY = syscall.Errno(0x19) ++ ENXIO = syscall.Errno(0x6) ++ EOPNOTSUPP = syscall.Errno(0x2d) ++ EOVERFLOW = syscall.Errno(0x54) ++ EOWNERDEAD = syscall.Errno(0x60) ++ EPERM = syscall.Errno(0x1) ++ EPFNOSUPPORT = syscall.Errno(0x2e) ++ EPIPE = syscall.Errno(0x20) ++ EPROCLIM = syscall.Errno(0x43) ++ EPROCUNAVAIL = syscall.Errno(0x4c) ++ EPROGMISMATCH = syscall.Errno(0x4b) ++ EPROGUNAVAIL = syscall.Errno(0x4a) ++ EPROTO = syscall.Errno(0x5c) ++ EPROTONOSUPPORT = syscall.Errno(0x2b) ++ EPROTOTYPE = syscall.Errno(0x29) ++ ERANGE = syscall.Errno(0x22) ++ EREMOTE = syscall.Errno(0x47) ++ EROFS = syscall.Errno(0x1e) ++ ERPCMISMATCH = syscall.Errno(0x49) ++ ESHUTDOWN = syscall.Errno(0x3a) ++ ESOCKTNOSUPPORT = syscall.Errno(0x2c) ++ ESPIPE = syscall.Errno(0x1d) ++ ESRCH = syscall.Errno(0x3) ++ ESTALE = syscall.Errno(0x46) ++ ETIMEDOUT = syscall.Errno(0x3c) ++ ETOOMANYREFS = syscall.Errno(0x3b) ++ ETXTBSY = syscall.Errno(0x1a) ++ EUSERS = syscall.Errno(0x44) ++ EWOULDBLOCK = syscall.Errno(0x23) ++ EXDEV = syscall.Errno(0x12) ++) ++ ++// Signals ++const ( ++ SIGABRT = syscall.Signal(0x6) ++ SIGALRM = syscall.Signal(0xe) ++ SIGBUS = syscall.Signal(0xa) ++ SIGCHLD = syscall.Signal(0x14) ++ SIGCONT = syscall.Signal(0x13) ++ SIGEMT = syscall.Signal(0x7) ++ SIGFPE = syscall.Signal(0x8) ++ SIGHUP = syscall.Signal(0x1) ++ SIGILL = syscall.Signal(0x4) ++ SIGINFO = syscall.Signal(0x1d) ++ SIGINT = syscall.Signal(0x2) ++ SIGIO = syscall.Signal(0x17) ++ SIGIOT = syscall.Signal(0x6) ++ SIGKILL = syscall.Signal(0x9) ++ SIGLIBRT = syscall.Signal(0x21) ++ SIGLWP = syscall.Signal(0x20) ++ SIGPIPE = syscall.Signal(0xd) ++ SIGPROF = syscall.Signal(0x1b) ++ SIGQUIT = syscall.Signal(0x3) ++ SIGSEGV = syscall.Signal(0xb) ++ SIGSTOP = syscall.Signal(0x11) ++ SIGSYS = syscall.Signal(0xc) ++ SIGTERM = syscall.Signal(0xf) ++ SIGTHR = syscall.Signal(0x20) ++ SIGTRAP = syscall.Signal(0x5) ++ SIGTSTP = syscall.Signal(0x12) ++ SIGTTIN = syscall.Signal(0x15) ++ SIGTTOU = syscall.Signal(0x16) ++ SIGURG = syscall.Signal(0x10) ++ SIGUSR1 = syscall.Signal(0x1e) ++ SIGUSR2 = syscall.Signal(0x1f) ++ SIGVTALRM = syscall.Signal(0x1a) ++ SIGWINCH = syscall.Signal(0x1c) ++ SIGXCPU = syscall.Signal(0x18) ++ SIGXFSZ = syscall.Signal(0x19) ++) ++ ++// Error table ++var errors = [...]string{ ++ 1: "operation not permitted", ++ 2: "no such file or directory", ++ 3: "no such process", ++ 4: "interrupted system call", ++ 5: "input/output error", ++ 6: "device not configured", ++ 7: "argument list too long", ++ 8: "exec format error", ++ 9: "bad file descriptor", ++ 10: "no child processes", ++ 11: "resource deadlock avoided", ++ 12: "cannot allocate memory", ++ 13: "permission denied", ++ 14: "bad address", ++ 15: "block device required", ++ 16: "device busy", ++ 17: "file exists", ++ 18: "cross-device link", ++ 19: "operation not supported by device", ++ 20: "not a directory", ++ 21: "is a directory", ++ 22: "invalid argument", ++ 23: "too many open files in system", ++ 24: "too many open files", ++ 25: "inappropriate ioctl for device", ++ 26: "text file busy", ++ 27: "file too large", ++ 28: "no space left on device", ++ 29: "illegal seek", ++ 30: "read-only file system", ++ 31: "too many links", ++ 32: "broken pipe", ++ 33: "numerical argument out of domain", ++ 34: "result too large", ++ 35: "resource temporarily unavailable", ++ 36: "operation now in progress", ++ 37: "operation already in progress", ++ 38: "socket operation on non-socket", ++ 39: "destination address required", ++ 40: "message too long", ++ 41: "protocol wrong type for socket", ++ 42: "protocol not available", ++ 43: "protocol not supported", ++ 44: "socket type not supported", ++ 45: "operation not supported", ++ 46: "protocol family not supported", ++ 47: "address family not supported by protocol family", ++ 48: "address already in use", ++ 49: "can't assign requested address", ++ 50: "network is down", ++ 51: "network is unreachable", ++ 52: "network dropped connection on reset", ++ 53: "software caused connection abort", ++ 54: "connection reset by peer", ++ 55: "no buffer space available", ++ 56: "socket is already connected", ++ 57: "socket is not connected", ++ 58: "can't send after socket shutdown", ++ 59: "too many references: can't splice", ++ 60: "operation timed out", ++ 61: "connection refused", ++ 62: "too many levels of symbolic links", ++ 63: "file name too long", ++ 64: "host is down", ++ 65: "no route to host", ++ 66: "directory not empty", ++ 67: "too many processes", ++ 68: "too many users", ++ 69: "disc quota exceeded", ++ 70: "stale NFS file handle", ++ 71: "too many levels of remote in path", ++ 72: "RPC struct is bad", ++ 73: "RPC version wrong", ++ 74: "RPC prog. not avail", ++ 75: "program version wrong", ++ 76: "bad procedure for program", ++ 77: "no locks available", ++ 78: "function not implemented", ++ 79: "inappropriate file type or format", ++ 80: "authentication error", ++ 81: "need authenticator", ++ 82: "identifier removed", ++ 83: "no message of desired type", ++ 84: "value too large to be stored in data type", ++ 85: "operation canceled", ++ 86: "illegal byte sequence", ++ 87: "attribute not found", ++ 88: "programming error", ++ 89: "bad message", ++ 90: "multihop attempted", ++ 91: "link has been severed", ++ 92: "protocol error", ++ 93: "capabilities insufficient", ++ 94: "not permitted in capability mode", ++ 95: "state not recoverable", ++ 96: "previous owner died", ++} ++ ++// Signal table ++var signals = [...]string{ ++ 1: "hangup", ++ 2: "interrupt", ++ 3: "quit", ++ 4: "illegal instruction", ++ 5: "trace/BPT trap", ++ 6: "abort trap", ++ 7: "EMT trap", ++ 8: "floating point exception", ++ 9: "killed", ++ 10: "bus error", ++ 11: "segmentation fault", ++ 12: "bad system call", ++ 13: "broken pipe", ++ 14: "alarm clock", ++ 15: "terminated", ++ 16: "urgent I/O condition", ++ 17: "suspended (signal)", ++ 18: "suspended", ++ 19: "continued", ++ 20: "child exited", ++ 21: "stopped (tty input)", ++ 22: "stopped (tty output)", ++ 23: "I/O possible", ++ 24: "cputime limit exceeded", ++ 25: "filesize limit exceeded", ++ 26: "virtual timer expired", ++ 27: "profiling timer expired", ++ 28: "window size changes", ++ 29: "information request", ++ 30: "user defined signal 1", ++ 31: "user defined signal 2", ++ 32: "unknown signal", ++ 33: "unknown signal", ++} +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +new file mode 100644 +index 0000000..2d02caf +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +@@ -0,0 +1,1887 @@ ++// mkerrors.sh -m32 ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build 386,linux ++ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- -m32 _const.go ++ ++package unix ++ ++import "syscall" ++ ++const ( ++ AF_ALG = 0x26 ++ AF_APPLETALK = 0x5 ++ AF_ASH = 0x12 ++ AF_ATMPVC = 0x8 ++ AF_ATMSVC = 0x14 ++ AF_AX25 = 0x3 ++ AF_BLUETOOTH = 0x1f ++ AF_BRIDGE = 0x7 ++ AF_CAIF = 0x25 ++ AF_CAN = 0x1d ++ AF_DECnet = 0xc ++ AF_ECONET = 0x13 ++ AF_FILE = 0x1 ++ AF_IEEE802154 = 0x24 ++ AF_INET = 0x2 ++ AF_INET6 = 0xa ++ AF_IPX = 0x4 ++ AF_IRDA = 0x17 ++ AF_ISDN = 0x22 ++ AF_IUCV = 0x20 ++ AF_KEY = 0xf ++ AF_LLC = 0x1a ++ AF_LOCAL = 0x1 ++ AF_MAX = 0x28 ++ AF_NETBEUI = 0xd ++ AF_NETLINK = 0x10 ++ AF_NETROM = 0x6 ++ AF_NFC = 0x27 ++ AF_PACKET = 0x11 ++ AF_PHONET = 0x23 ++ AF_PPPOX = 0x18 ++ AF_RDS = 0x15 ++ AF_ROSE = 0xb ++ AF_ROUTE = 0x10 ++ AF_RXRPC = 0x21 ++ AF_SECURITY = 0xe ++ AF_SNA = 0x16 ++ AF_TIPC = 0x1e ++ AF_UNIX = 0x1 ++ AF_UNSPEC = 0x0 ++ AF_VSOCK = 0x28 ++ AF_WANPIPE = 0x19 ++ AF_X25 = 0x9 ++ ALG_OP_DECRYPT = 0x0 ++ ALG_OP_ENCRYPT = 0x1 ++ ALG_SET_AEAD_ASSOCLEN = 0x4 ++ ALG_SET_AEAD_AUTHSIZE = 0x5 ++ ALG_SET_IV = 0x2 ++ ALG_SET_KEY = 0x1 ++ ALG_SET_OP = 0x3 ++ ARPHRD_ADAPT = 0x108 ++ ARPHRD_APPLETLK = 0x8 ++ ARPHRD_ARCNET = 0x7 ++ ARPHRD_ASH = 0x30d ++ ARPHRD_ATM = 0x13 ++ ARPHRD_AX25 = 0x3 ++ ARPHRD_BIF = 0x307 ++ ARPHRD_CAIF = 0x336 ++ ARPHRD_CAN = 0x118 ++ ARPHRD_CHAOS = 0x5 ++ ARPHRD_CISCO = 0x201 ++ ARPHRD_CSLIP = 0x101 ++ ARPHRD_CSLIP6 = 0x103 ++ ARPHRD_DDCMP = 0x205 ++ ARPHRD_DLCI = 0xf ++ ARPHRD_ECONET = 0x30e ++ ARPHRD_EETHER = 0x2 ++ ARPHRD_ETHER = 0x1 ++ ARPHRD_EUI64 = 0x1b ++ ARPHRD_FCAL = 0x311 ++ ARPHRD_FCFABRIC = 0x313 ++ ARPHRD_FCPL = 0x312 ++ ARPHRD_FCPP = 0x310 ++ ARPHRD_FDDI = 0x306 ++ ARPHRD_FRAD = 0x302 ++ ARPHRD_HDLC = 0x201 ++ ARPHRD_HIPPI = 0x30c ++ ARPHRD_HWX25 = 0x110 ++ ARPHRD_IEEE1394 = 0x18 ++ ARPHRD_IEEE802 = 0x6 ++ ARPHRD_IEEE80211 = 0x321 ++ ARPHRD_IEEE80211_PRISM = 0x322 ++ ARPHRD_IEEE80211_RADIOTAP = 0x323 ++ ARPHRD_IEEE802154 = 0x324 ++ ARPHRD_IEEE802_TR = 0x320 ++ ARPHRD_INFINIBAND = 0x20 ++ ARPHRD_IPDDP = 0x309 ++ ARPHRD_IPGRE = 0x30a ++ ARPHRD_IRDA = 0x30f ++ ARPHRD_LAPB = 0x204 ++ ARPHRD_LOCALTLK = 0x305 ++ ARPHRD_LOOPBACK = 0x304 ++ ARPHRD_METRICOM = 0x17 ++ ARPHRD_NETROM = 0x0 ++ ARPHRD_NONE = 0xfffe ++ ARPHRD_PHONET = 0x334 ++ ARPHRD_PHONET_PIPE = 0x335 ++ ARPHRD_PIMREG = 0x30b ++ ARPHRD_PPP = 0x200 ++ ARPHRD_PRONET = 0x4 ++ ARPHRD_RAWHDLC = 0x206 ++ ARPHRD_ROSE = 0x10e ++ ARPHRD_RSRVD = 0x104 ++ ARPHRD_SIT = 0x308 ++ ARPHRD_SKIP = 0x303 ++ ARPHRD_SLIP = 0x100 ++ ARPHRD_SLIP6 = 0x102 ++ ARPHRD_TUNNEL = 0x300 ++ ARPHRD_TUNNEL6 = 0x301 ++ ARPHRD_VOID = 0xffff ++ ARPHRD_X25 = 0x10f ++ B0 = 0x0 ++ B1000000 = 0x1008 ++ B110 = 0x3 ++ B115200 = 0x1002 ++ B1152000 = 0x1009 ++ B1200 = 0x9 ++ B134 = 0x4 ++ B150 = 0x5 ++ B1500000 = 0x100a ++ B1800 = 0xa ++ B19200 = 0xe ++ B200 = 0x6 ++ B2000000 = 0x100b ++ B230400 = 0x1003 ++ B2400 = 0xb ++ B2500000 = 0x100c ++ B300 = 0x7 ++ B3000000 = 0x100d ++ B3500000 = 0x100e ++ B38400 = 0xf ++ B4000000 = 0x100f ++ B460800 = 0x1004 ++ B4800 = 0xc ++ B50 = 0x1 ++ B500000 = 0x1005 ++ B57600 = 0x1001 ++ B576000 = 0x1006 ++ B600 = 0x8 ++ B75 = 0x2 ++ B921600 = 0x1007 ++ B9600 = 0xd ++ BLKBSZGET = 0x80041270 ++ BLKBSZSET = 0x40041271 ++ BLKFLSBUF = 0x1261 ++ BLKFRAGET = 0x1265 ++ BLKFRASET = 0x1264 ++ BLKGETSIZE = 0x1260 ++ BLKGETSIZE64 = 0x80041272 ++ BLKRAGET = 0x1263 ++ BLKRASET = 0x1262 ++ BLKROGET = 0x125e ++ BLKROSET = 0x125d ++ BLKRRPART = 0x125f ++ BLKSECTGET = 0x1267 ++ BLKSECTSET = 0x1266 ++ BLKSSZGET = 0x1268 ++ BOTHER = 0x1000 ++ BPF_A = 0x10 ++ BPF_ABS = 0x20 ++ BPF_ADD = 0x0 ++ BPF_ALU = 0x4 ++ BPF_AND = 0x50 ++ BPF_B = 0x10 ++ BPF_DIV = 0x30 ++ BPF_H = 0x8 ++ BPF_IMM = 0x0 ++ BPF_IND = 0x40 ++ BPF_JA = 0x0 ++ BPF_JEQ = 0x10 ++ BPF_JGE = 0x30 ++ BPF_JGT = 0x20 ++ BPF_JMP = 0x5 ++ BPF_JSET = 0x40 ++ BPF_K = 0x0 ++ BPF_LD = 0x0 ++ BPF_LDX = 0x1 ++ BPF_LEN = 0x80 ++ BPF_LSH = 0x60 ++ BPF_MAJOR_VERSION = 0x1 ++ BPF_MAXINSNS = 0x1000 ++ BPF_MEM = 0x60 ++ BPF_MEMWORDS = 0x10 ++ BPF_MINOR_VERSION = 0x1 ++ BPF_MISC = 0x7 ++ BPF_MSH = 0xa0 ++ BPF_MUL = 0x20 ++ BPF_NEG = 0x80 ++ BPF_OR = 0x40 ++ BPF_RET = 0x6 ++ BPF_RSH = 0x70 ++ BPF_ST = 0x2 ++ BPF_STX = 0x3 ++ BPF_SUB = 0x10 ++ BPF_TAX = 0x0 ++ BPF_TXA = 0x80 ++ BPF_W = 0x0 ++ BPF_X = 0x8 ++ BRKINT = 0x2 ++ BS0 = 0x0 ++ BS1 = 0x2000 ++ BSDLY = 0x2000 ++ CAN_BCM = 0x2 ++ CAN_EFF_FLAG = 0x80000000 ++ CAN_EFF_ID_BITS = 0x1d ++ CAN_EFF_MASK = 0x1fffffff ++ CAN_ERR_FLAG = 0x20000000 ++ CAN_ERR_MASK = 0x1fffffff ++ CAN_INV_FILTER = 0x20000000 ++ CAN_ISOTP = 0x6 ++ CAN_MAX_DLC = 0x8 ++ CAN_MAX_DLEN = 0x8 ++ CAN_MCNET = 0x5 ++ CAN_MTU = 0x10 ++ CAN_NPROTO = 0x7 ++ CAN_RAW = 0x1 ++ CAN_RTR_FLAG = 0x40000000 ++ CAN_SFF_ID_BITS = 0xb ++ CAN_SFF_MASK = 0x7ff ++ CAN_TP16 = 0x3 ++ CAN_TP20 = 0x4 ++ CBAUD = 0x100f ++ CBAUDEX = 0x1000 ++ CFLUSH = 0xf ++ CIBAUD = 0x100f0000 ++ CLOCAL = 0x800 ++ CLOCK_BOOTTIME = 0x7 ++ CLOCK_BOOTTIME_ALARM = 0x9 ++ CLOCK_DEFAULT = 0x0 ++ CLOCK_EXT = 0x1 ++ CLOCK_INT = 0x2 ++ CLOCK_MONOTONIC = 0x1 ++ CLOCK_MONOTONIC_COARSE = 0x6 ++ CLOCK_MONOTONIC_RAW = 0x4 ++ CLOCK_PROCESS_CPUTIME_ID = 0x2 ++ CLOCK_REALTIME = 0x0 ++ CLOCK_REALTIME_ALARM = 0x8 ++ CLOCK_REALTIME_COARSE = 0x5 ++ CLOCK_THREAD_CPUTIME_ID = 0x3 ++ CLOCK_TXFROMRX = 0x4 ++ CLOCK_TXINT = 0x3 ++ CLONE_CHILD_CLEARTID = 0x200000 ++ CLONE_CHILD_SETTID = 0x1000000 ++ CLONE_DETACHED = 0x400000 ++ CLONE_FILES = 0x400 ++ CLONE_FS = 0x200 ++ CLONE_IO = 0x80000000 ++ CLONE_NEWCGROUP = 0x2000000 ++ CLONE_NEWIPC = 0x8000000 ++ CLONE_NEWNET = 0x40000000 ++ CLONE_NEWNS = 0x20000 ++ CLONE_NEWPID = 0x20000000 ++ CLONE_NEWUSER = 0x10000000 ++ CLONE_NEWUTS = 0x4000000 ++ CLONE_PARENT = 0x8000 ++ CLONE_PARENT_SETTID = 0x100000 ++ CLONE_PTRACE = 0x2000 ++ CLONE_SETTLS = 0x80000 ++ CLONE_SIGHAND = 0x800 ++ CLONE_SYSVSEM = 0x40000 ++ CLONE_THREAD = 0x10000 ++ CLONE_UNTRACED = 0x800000 ++ CLONE_VFORK = 0x4000 ++ CLONE_VM = 0x100 ++ CMSPAR = 0x40000000 ++ CR0 = 0x0 ++ CR1 = 0x200 ++ CR2 = 0x400 ++ CR3 = 0x600 ++ CRDLY = 0x600 ++ CREAD = 0x80 ++ CRTSCTS = 0x80000000 ++ CS5 = 0x0 ++ CS6 = 0x10 ++ CS7 = 0x20 ++ CS8 = 0x30 ++ CSIGNAL = 0xff ++ CSIZE = 0x30 ++ CSTART = 0x11 ++ CSTATUS = 0x0 ++ CSTOP = 0x13 ++ CSTOPB = 0x40 ++ CSUSP = 0x1a ++ DT_BLK = 0x6 ++ DT_CHR = 0x2 ++ DT_DIR = 0x4 ++ DT_FIFO = 0x1 ++ DT_LNK = 0xa ++ DT_REG = 0x8 ++ DT_SOCK = 0xc ++ DT_UNKNOWN = 0x0 ++ DT_WHT = 0xe ++ ECHO = 0x8 ++ ECHOCTL = 0x200 ++ ECHOE = 0x10 ++ ECHOK = 0x20 ++ ECHOKE = 0x800 ++ ECHONL = 0x40 ++ ECHOPRT = 0x400 ++ ENCODING_DEFAULT = 0x0 ++ ENCODING_FM_MARK = 0x3 ++ ENCODING_FM_SPACE = 0x4 ++ ENCODING_MANCHESTER = 0x5 ++ ENCODING_NRZ = 0x1 ++ ENCODING_NRZI = 0x2 ++ EPOLLERR = 0x8 ++ EPOLLET = 0x80000000 ++ EPOLLHUP = 0x10 ++ EPOLLIN = 0x1 ++ EPOLLMSG = 0x400 ++ EPOLLONESHOT = 0x40000000 ++ EPOLLOUT = 0x4 ++ EPOLLPRI = 0x2 ++ EPOLLRDBAND = 0x80 ++ EPOLLRDHUP = 0x2000 ++ EPOLLRDNORM = 0x40 ++ EPOLLWRBAND = 0x200 ++ EPOLLWRNORM = 0x100 ++ EPOLL_CLOEXEC = 0x80000 ++ EPOLL_CTL_ADD = 0x1 ++ EPOLL_CTL_DEL = 0x2 ++ EPOLL_CTL_MOD = 0x3 ++ EPOLL_NONBLOCK = 0x800 ++ ETH_P_1588 = 0x88f7 ++ ETH_P_8021AD = 0x88a8 ++ ETH_P_8021AH = 0x88e7 ++ ETH_P_8021Q = 0x8100 ++ ETH_P_802_2 = 0x4 ++ ETH_P_802_3 = 0x1 ++ ETH_P_AARP = 0x80f3 ++ ETH_P_AF_IUCV = 0xfbfb ++ ETH_P_ALL = 0x3 ++ ETH_P_AOE = 0x88a2 ++ ETH_P_ARCNET = 0x1a ++ ETH_P_ARP = 0x806 ++ ETH_P_ATALK = 0x809b ++ ETH_P_ATMFATE = 0x8884 ++ ETH_P_ATMMPOA = 0x884c ++ ETH_P_AX25 = 0x2 ++ ETH_P_BPQ = 0x8ff ++ ETH_P_CAIF = 0xf7 ++ ETH_P_CAN = 0xc ++ ETH_P_CONTROL = 0x16 ++ ETH_P_CUST = 0x6006 ++ ETH_P_DDCMP = 0x6 ++ ETH_P_DEC = 0x6000 ++ ETH_P_DIAG = 0x6005 ++ ETH_P_DNA_DL = 0x6001 ++ ETH_P_DNA_RC = 0x6002 ++ ETH_P_DNA_RT = 0x6003 ++ ETH_P_DSA = 0x1b ++ ETH_P_ECONET = 0x18 ++ ETH_P_EDSA = 0xdada ++ ETH_P_FCOE = 0x8906 ++ ETH_P_FIP = 0x8914 ++ ETH_P_HDLC = 0x19 ++ ETH_P_IEEE802154 = 0xf6 ++ ETH_P_IEEEPUP = 0xa00 ++ ETH_P_IEEEPUPAT = 0xa01 ++ ETH_P_IP = 0x800 ++ ETH_P_IPV6 = 0x86dd ++ ETH_P_IPX = 0x8137 ++ ETH_P_IRDA = 0x17 ++ ETH_P_LAT = 0x6004 ++ ETH_P_LINK_CTL = 0x886c ++ ETH_P_LOCALTALK = 0x9 ++ ETH_P_LOOP = 0x60 ++ ETH_P_MOBITEX = 0x15 ++ ETH_P_MPLS_MC = 0x8848 ++ ETH_P_MPLS_UC = 0x8847 ++ ETH_P_PAE = 0x888e ++ ETH_P_PAUSE = 0x8808 ++ ETH_P_PHONET = 0xf5 ++ ETH_P_PPPTALK = 0x10 ++ ETH_P_PPP_DISC = 0x8863 ++ ETH_P_PPP_MP = 0x8 ++ ETH_P_PPP_SES = 0x8864 ++ ETH_P_PUP = 0x200 ++ ETH_P_PUPAT = 0x201 ++ ETH_P_QINQ1 = 0x9100 ++ ETH_P_QINQ2 = 0x9200 ++ ETH_P_QINQ3 = 0x9300 ++ ETH_P_RARP = 0x8035 ++ ETH_P_SCA = 0x6007 ++ ETH_P_SLOW = 0x8809 ++ ETH_P_SNAP = 0x5 ++ ETH_P_TDLS = 0x890d ++ ETH_P_TEB = 0x6558 ++ ETH_P_TIPC = 0x88ca ++ ETH_P_TRAILER = 0x1c ++ ETH_P_TR_802_2 = 0x11 ++ ETH_P_WAN_PPP = 0x7 ++ ETH_P_WCCP = 0x883e ++ ETH_P_X25 = 0x805 ++ EXTA = 0xe ++ EXTB = 0xf ++ EXTPROC = 0x10000 ++ FALLOC_FL_COLLAPSE_RANGE = 0x8 ++ FALLOC_FL_INSERT_RANGE = 0x20 ++ FALLOC_FL_KEEP_SIZE = 0x1 ++ FALLOC_FL_NO_HIDE_STALE = 0x4 ++ FALLOC_FL_PUNCH_HOLE = 0x2 ++ FALLOC_FL_ZERO_RANGE = 0x10 ++ FD_CLOEXEC = 0x1 ++ FD_SETSIZE = 0x400 ++ FF0 = 0x0 ++ FF1 = 0x8000 ++ FFDLY = 0x8000 ++ FLUSHO = 0x1000 ++ F_DUPFD = 0x0 ++ F_DUPFD_CLOEXEC = 0x406 ++ F_EXLCK = 0x4 ++ F_GETFD = 0x1 ++ F_GETFL = 0x3 ++ F_GETLEASE = 0x401 ++ F_GETLK = 0xc ++ F_GETLK64 = 0xc ++ F_GETOWN = 0x9 ++ F_GETOWN_EX = 0x10 ++ F_GETPIPE_SZ = 0x408 ++ F_GETSIG = 0xb ++ F_LOCK = 0x1 ++ F_NOTIFY = 0x402 ++ F_OK = 0x0 ++ F_RDLCK = 0x0 ++ F_SETFD = 0x2 ++ F_SETFL = 0x4 ++ F_SETLEASE = 0x400 ++ F_SETLK = 0xd ++ F_SETLK64 = 0xd ++ F_SETLKW = 0xe ++ F_SETLKW64 = 0xe ++ F_SETOWN = 0x8 ++ F_SETOWN_EX = 0xf ++ F_SETPIPE_SZ = 0x407 ++ F_SETSIG = 0xa ++ F_SHLCK = 0x8 ++ F_TEST = 0x3 ++ F_TLOCK = 0x2 ++ F_ULOCK = 0x0 ++ F_UNLCK = 0x2 ++ F_WRLCK = 0x1 ++ GRND_NONBLOCK = 0x1 ++ GRND_RANDOM = 0x2 ++ HUPCL = 0x400 ++ IBSHIFT = 0x10 ++ ICANON = 0x2 ++ ICMPV6_FILTER = 0x1 ++ ICRNL = 0x100 ++ IEXTEN = 0x8000 ++ IFA_F_DADFAILED = 0x8 ++ IFA_F_DEPRECATED = 0x20 ++ IFA_F_HOMEADDRESS = 0x10 ++ IFA_F_NODAD = 0x2 ++ IFA_F_OPTIMISTIC = 0x4 ++ IFA_F_PERMANENT = 0x80 ++ IFA_F_SECONDARY = 0x1 ++ IFA_F_TEMPORARY = 0x1 ++ IFA_F_TENTATIVE = 0x40 ++ IFA_MAX = 0x7 ++ IFF_802_1Q_VLAN = 0x1 ++ IFF_ALLMULTI = 0x200 ++ IFF_AUTOMEDIA = 0x4000 ++ IFF_BONDING = 0x20 ++ IFF_BRIDGE_PORT = 0x4000 ++ IFF_BROADCAST = 0x2 ++ IFF_DEBUG = 0x4 ++ IFF_DISABLE_NETPOLL = 0x1000 ++ IFF_DONT_BRIDGE = 0x800 ++ IFF_DORMANT = 0x20000 ++ IFF_DYNAMIC = 0x8000 ++ IFF_EBRIDGE = 0x2 ++ IFF_ECHO = 0x40000 ++ IFF_ISATAP = 0x80 ++ IFF_LOOPBACK = 0x8 ++ IFF_LOWER_UP = 0x10000 ++ IFF_MACVLAN_PORT = 0x2000 ++ IFF_MASTER = 0x400 ++ IFF_MASTER_8023AD = 0x8 ++ IFF_MASTER_ALB = 0x10 ++ IFF_MASTER_ARPMON = 0x100 ++ IFF_MULTICAST = 0x1000 ++ IFF_NOARP = 0x80 ++ IFF_NOTRAILERS = 0x20 ++ IFF_NO_PI = 0x1000 ++ IFF_ONE_QUEUE = 0x2000 ++ IFF_OVS_DATAPATH = 0x8000 ++ IFF_POINTOPOINT = 0x10 ++ IFF_PORTSEL = 0x2000 ++ IFF_PROMISC = 0x100 ++ IFF_RUNNING = 0x40 ++ IFF_SLAVE = 0x800 ++ IFF_SLAVE_INACTIVE = 0x4 ++ IFF_SLAVE_NEEDARP = 0x40 ++ IFF_TAP = 0x2 ++ IFF_TUN = 0x1 ++ IFF_TUN_EXCL = 0x8000 ++ IFF_TX_SKB_SHARING = 0x10000 ++ IFF_UNICAST_FLT = 0x20000 ++ IFF_UP = 0x1 ++ IFF_VNET_HDR = 0x4000 ++ IFF_VOLATILE = 0x70c5a ++ IFF_WAN_HDLC = 0x200 ++ IFF_XMIT_DST_RELEASE = 0x400 ++ IFNAMSIZ = 0x10 ++ IGNBRK = 0x1 ++ IGNCR = 0x80 ++ IGNPAR = 0x4 ++ IMAXBEL = 0x2000 ++ INLCR = 0x40 ++ INPCK = 0x10 ++ IN_ACCESS = 0x1 ++ IN_ALL_EVENTS = 0xfff ++ IN_ATTRIB = 0x4 ++ IN_CLASSA_HOST = 0xffffff ++ IN_CLASSA_MAX = 0x80 ++ IN_CLASSA_NET = 0xff000000 ++ IN_CLASSA_NSHIFT = 0x18 ++ IN_CLASSB_HOST = 0xffff ++ IN_CLASSB_MAX = 0x10000 ++ IN_CLASSB_NET = 0xffff0000 ++ IN_CLASSB_NSHIFT = 0x10 ++ IN_CLASSC_HOST = 0xff ++ IN_CLASSC_NET = 0xffffff00 ++ IN_CLASSC_NSHIFT = 0x8 ++ IN_CLOEXEC = 0x80000 ++ IN_CLOSE = 0x18 ++ IN_CLOSE_NOWRITE = 0x10 ++ IN_CLOSE_WRITE = 0x8 ++ IN_CREATE = 0x100 ++ IN_DELETE = 0x200 ++ IN_DELETE_SELF = 0x400 ++ IN_DONT_FOLLOW = 0x2000000 ++ IN_EXCL_UNLINK = 0x4000000 ++ IN_IGNORED = 0x8000 ++ IN_ISDIR = 0x40000000 ++ IN_LOOPBACKNET = 0x7f ++ IN_MASK_ADD = 0x20000000 ++ IN_MODIFY = 0x2 ++ IN_MOVE = 0xc0 ++ IN_MOVED_FROM = 0x40 ++ IN_MOVED_TO = 0x80 ++ IN_MOVE_SELF = 0x800 ++ IN_NONBLOCK = 0x800 ++ IN_ONESHOT = 0x80000000 ++ IN_ONLYDIR = 0x1000000 ++ IN_OPEN = 0x20 ++ IN_Q_OVERFLOW = 0x4000 ++ IN_UNMOUNT = 0x2000 ++ IPPROTO_AH = 0x33 ++ IPPROTO_COMP = 0x6c ++ IPPROTO_DCCP = 0x21 ++ IPPROTO_DSTOPTS = 0x3c ++ IPPROTO_EGP = 0x8 ++ IPPROTO_ENCAP = 0x62 ++ IPPROTO_ESP = 0x32 ++ IPPROTO_FRAGMENT = 0x2c ++ IPPROTO_GRE = 0x2f ++ IPPROTO_HOPOPTS = 0x0 ++ IPPROTO_ICMP = 0x1 ++ IPPROTO_ICMPV6 = 0x3a ++ IPPROTO_IDP = 0x16 ++ IPPROTO_IGMP = 0x2 ++ IPPROTO_IP = 0x0 ++ IPPROTO_IPIP = 0x4 ++ IPPROTO_IPV6 = 0x29 ++ IPPROTO_MTP = 0x5c ++ IPPROTO_NONE = 0x3b ++ IPPROTO_PIM = 0x67 ++ IPPROTO_PUP = 0xc ++ IPPROTO_RAW = 0xff ++ IPPROTO_ROUTING = 0x2b ++ IPPROTO_RSVP = 0x2e ++ IPPROTO_SCTP = 0x84 ++ IPPROTO_TCP = 0x6 ++ IPPROTO_TP = 0x1d ++ IPPROTO_UDP = 0x11 ++ IPPROTO_UDPLITE = 0x88 ++ IPV6_2292DSTOPTS = 0x4 ++ IPV6_2292HOPLIMIT = 0x8 ++ IPV6_2292HOPOPTS = 0x3 ++ IPV6_2292PKTINFO = 0x2 ++ IPV6_2292PKTOPTIONS = 0x6 ++ IPV6_2292RTHDR = 0x5 ++ IPV6_ADDRFORM = 0x1 ++ IPV6_ADD_MEMBERSHIP = 0x14 ++ IPV6_AUTHHDR = 0xa ++ IPV6_CHECKSUM = 0x7 ++ IPV6_DROP_MEMBERSHIP = 0x15 ++ IPV6_DSTOPTS = 0x3b ++ IPV6_HOPLIMIT = 0x34 ++ IPV6_HOPOPTS = 0x36 ++ IPV6_IPSEC_POLICY = 0x22 ++ IPV6_JOIN_ANYCAST = 0x1b ++ IPV6_JOIN_GROUP = 0x14 ++ IPV6_LEAVE_ANYCAST = 0x1c ++ IPV6_LEAVE_GROUP = 0x15 ++ IPV6_MTU = 0x18 ++ IPV6_MTU_DISCOVER = 0x17 ++ IPV6_MULTICAST_HOPS = 0x12 ++ IPV6_MULTICAST_IF = 0x11 ++ IPV6_MULTICAST_LOOP = 0x13 ++ IPV6_NEXTHOP = 0x9 ++ IPV6_PKTINFO = 0x32 ++ IPV6_PMTUDISC_DO = 0x2 ++ IPV6_PMTUDISC_DONT = 0x0 ++ IPV6_PMTUDISC_PROBE = 0x3 ++ IPV6_PMTUDISC_WANT = 0x1 ++ IPV6_RECVDSTOPTS = 0x3a ++ IPV6_RECVERR = 0x19 ++ IPV6_RECVHOPLIMIT = 0x33 ++ IPV6_RECVHOPOPTS = 0x35 ++ IPV6_RECVPKTINFO = 0x31 ++ IPV6_RECVRTHDR = 0x38 ++ IPV6_RECVTCLASS = 0x42 ++ IPV6_ROUTER_ALERT = 0x16 ++ IPV6_RTHDR = 0x39 ++ IPV6_RTHDRDSTOPTS = 0x37 ++ IPV6_RTHDR_LOOSE = 0x0 ++ IPV6_RTHDR_STRICT = 0x1 ++ IPV6_RTHDR_TYPE_0 = 0x0 ++ IPV6_RXDSTOPTS = 0x3b ++ IPV6_RXHOPOPTS = 0x36 ++ IPV6_TCLASS = 0x43 ++ IPV6_UNICAST_HOPS = 0x10 ++ IPV6_V6ONLY = 0x1a ++ IPV6_XFRM_POLICY = 0x23 ++ IP_ADD_MEMBERSHIP = 0x23 ++ IP_ADD_SOURCE_MEMBERSHIP = 0x27 ++ IP_BLOCK_SOURCE = 0x26 ++ IP_DEFAULT_MULTICAST_LOOP = 0x1 ++ IP_DEFAULT_MULTICAST_TTL = 0x1 ++ IP_DF = 0x4000 ++ IP_DROP_MEMBERSHIP = 0x24 ++ IP_DROP_SOURCE_MEMBERSHIP = 0x28 ++ IP_FREEBIND = 0xf ++ IP_HDRINCL = 0x3 ++ IP_IPSEC_POLICY = 0x10 ++ IP_MAXPACKET = 0xffff ++ IP_MAX_MEMBERSHIPS = 0x14 ++ IP_MF = 0x2000 ++ IP_MINTTL = 0x15 ++ IP_MSFILTER = 0x29 ++ IP_MSS = 0x240 ++ IP_MTU = 0xe ++ IP_MTU_DISCOVER = 0xa ++ IP_MULTICAST_ALL = 0x31 ++ IP_MULTICAST_IF = 0x20 ++ IP_MULTICAST_LOOP = 0x22 ++ IP_MULTICAST_TTL = 0x21 ++ IP_OFFMASK = 0x1fff ++ IP_OPTIONS = 0x4 ++ IP_ORIGDSTADDR = 0x14 ++ IP_PASSSEC = 0x12 ++ IP_PKTINFO = 0x8 ++ IP_PKTOPTIONS = 0x9 ++ IP_PMTUDISC = 0xa ++ IP_PMTUDISC_DO = 0x2 ++ IP_PMTUDISC_DONT = 0x0 ++ IP_PMTUDISC_PROBE = 0x3 ++ IP_PMTUDISC_WANT = 0x1 ++ IP_RECVERR = 0xb ++ IP_RECVOPTS = 0x6 ++ IP_RECVORIGDSTADDR = 0x14 ++ IP_RECVRETOPTS = 0x7 ++ IP_RECVTOS = 0xd ++ IP_RECVTTL = 0xc ++ IP_RETOPTS = 0x7 ++ IP_RF = 0x8000 ++ IP_ROUTER_ALERT = 0x5 ++ IP_TOS = 0x1 ++ IP_TRANSPARENT = 0x13 ++ IP_TTL = 0x2 ++ IP_UNBLOCK_SOURCE = 0x25 ++ IP_XFRM_POLICY = 0x11 ++ ISIG = 0x1 ++ ISTRIP = 0x20 ++ IUCLC = 0x200 ++ IUTF8 = 0x4000 ++ IXANY = 0x800 ++ IXOFF = 0x1000 ++ IXON = 0x400 ++ LINUX_REBOOT_CMD_CAD_OFF = 0x0 ++ LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef ++ LINUX_REBOOT_CMD_HALT = 0xcdef0123 ++ LINUX_REBOOT_CMD_KEXEC = 0x45584543 ++ LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc ++ LINUX_REBOOT_CMD_RESTART = 0x1234567 ++ LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 ++ LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 ++ LINUX_REBOOT_MAGIC1 = 0xfee1dead ++ LINUX_REBOOT_MAGIC2 = 0x28121969 ++ LOCK_EX = 0x2 ++ LOCK_NB = 0x4 ++ LOCK_SH = 0x1 ++ LOCK_UN = 0x8 ++ MADV_DOFORK = 0xb ++ MADV_DONTFORK = 0xa ++ MADV_DONTNEED = 0x4 ++ MADV_HUGEPAGE = 0xe ++ MADV_HWPOISON = 0x64 ++ MADV_MERGEABLE = 0xc ++ MADV_NOHUGEPAGE = 0xf ++ MADV_NORMAL = 0x0 ++ MADV_RANDOM = 0x1 ++ MADV_REMOVE = 0x9 ++ MADV_SEQUENTIAL = 0x2 ++ MADV_UNMERGEABLE = 0xd ++ MADV_WILLNEED = 0x3 ++ MAP_32BIT = 0x40 ++ MAP_ANON = 0x20 ++ MAP_ANONYMOUS = 0x20 ++ MAP_DENYWRITE = 0x800 ++ MAP_EXECUTABLE = 0x1000 ++ MAP_FILE = 0x0 ++ MAP_FIXED = 0x10 ++ MAP_GROWSDOWN = 0x100 ++ MAP_HUGETLB = 0x40000 ++ MAP_LOCKED = 0x2000 ++ MAP_NONBLOCK = 0x10000 ++ MAP_NORESERVE = 0x4000 ++ MAP_POPULATE = 0x8000 ++ MAP_PRIVATE = 0x2 ++ MAP_SHARED = 0x1 ++ MAP_STACK = 0x20000 ++ MAP_TYPE = 0xf ++ MCL_CURRENT = 0x1 ++ MCL_FUTURE = 0x2 ++ MNT_DETACH = 0x2 ++ MNT_EXPIRE = 0x4 ++ MNT_FORCE = 0x1 ++ MSG_CMSG_CLOEXEC = 0x40000000 ++ MSG_CONFIRM = 0x800 ++ MSG_CTRUNC = 0x8 ++ MSG_DONTROUTE = 0x4 ++ MSG_DONTWAIT = 0x40 ++ MSG_EOR = 0x80 ++ MSG_ERRQUEUE = 0x2000 ++ MSG_FASTOPEN = 0x20000000 ++ MSG_FIN = 0x200 ++ MSG_MORE = 0x8000 ++ MSG_NOSIGNAL = 0x4000 ++ MSG_OOB = 0x1 ++ MSG_PEEK = 0x2 ++ MSG_PROXY = 0x10 ++ MSG_RST = 0x1000 ++ MSG_SYN = 0x400 ++ MSG_TRUNC = 0x20 ++ MSG_TRYHARD = 0x4 ++ MSG_WAITALL = 0x100 ++ MSG_WAITFORONE = 0x10000 ++ MS_ACTIVE = 0x40000000 ++ MS_ASYNC = 0x1 ++ MS_BIND = 0x1000 ++ MS_DIRSYNC = 0x80 ++ MS_INVALIDATE = 0x2 ++ MS_I_VERSION = 0x800000 ++ MS_KERNMOUNT = 0x400000 ++ MS_MANDLOCK = 0x40 ++ MS_MGC_MSK = 0xffff0000 ++ MS_MGC_VAL = 0xc0ed0000 ++ MS_MOVE = 0x2000 ++ MS_NOATIME = 0x400 ++ MS_NODEV = 0x4 ++ MS_NODIRATIME = 0x800 ++ MS_NOEXEC = 0x8 ++ MS_NOSUID = 0x2 ++ MS_NOUSER = -0x80000000 ++ MS_POSIXACL = 0x10000 ++ MS_PRIVATE = 0x40000 ++ MS_RDONLY = 0x1 ++ MS_REC = 0x4000 ++ MS_RELATIME = 0x200000 ++ MS_REMOUNT = 0x20 ++ MS_RMT_MASK = 0x800051 ++ MS_SHARED = 0x100000 ++ MS_SILENT = 0x8000 ++ MS_SLAVE = 0x80000 ++ MS_STRICTATIME = 0x1000000 ++ MS_SYNC = 0x4 ++ MS_SYNCHRONOUS = 0x10 ++ MS_UNBINDABLE = 0x20000 ++ NAME_MAX = 0xff ++ NETLINK_ADD_MEMBERSHIP = 0x1 ++ NETLINK_AUDIT = 0x9 ++ NETLINK_BROADCAST_ERROR = 0x4 ++ NETLINK_CONNECTOR = 0xb ++ NETLINK_CRYPTO = 0x15 ++ NETLINK_DNRTMSG = 0xe ++ NETLINK_DROP_MEMBERSHIP = 0x2 ++ NETLINK_ECRYPTFS = 0x13 ++ NETLINK_FIB_LOOKUP = 0xa ++ NETLINK_FIREWALL = 0x3 ++ NETLINK_GENERIC = 0x10 ++ NETLINK_INET_DIAG = 0x4 ++ NETLINK_IP6_FW = 0xd ++ NETLINK_ISCSI = 0x8 ++ NETLINK_KOBJECT_UEVENT = 0xf ++ NETLINK_NETFILTER = 0xc ++ NETLINK_NFLOG = 0x5 ++ NETLINK_NO_ENOBUFS = 0x5 ++ NETLINK_PKTINFO = 0x3 ++ NETLINK_RDMA = 0x14 ++ NETLINK_ROUTE = 0x0 ++ NETLINK_SCSITRANSPORT = 0x12 ++ NETLINK_SELINUX = 0x7 ++ NETLINK_UNUSED = 0x1 ++ NETLINK_USERSOCK = 0x2 ++ NETLINK_XFRM = 0x6 ++ NL0 = 0x0 ++ NL1 = 0x100 ++ NLA_ALIGNTO = 0x4 ++ NLA_F_NESTED = 0x8000 ++ NLA_F_NET_BYTEORDER = 0x4000 ++ NLA_HDRLEN = 0x4 ++ NLDLY = 0x100 ++ NLMSG_ALIGNTO = 0x4 ++ NLMSG_DONE = 0x3 ++ NLMSG_ERROR = 0x2 ++ NLMSG_HDRLEN = 0x10 ++ NLMSG_MIN_TYPE = 0x10 ++ NLMSG_NOOP = 0x1 ++ NLMSG_OVERRUN = 0x4 ++ NLM_F_ACK = 0x4 ++ NLM_F_APPEND = 0x800 ++ NLM_F_ATOMIC = 0x400 ++ NLM_F_CREATE = 0x400 ++ NLM_F_DUMP = 0x300 ++ NLM_F_DUMP_FILTERED = 0x20 ++ NLM_F_DUMP_INTR = 0x10 ++ NLM_F_ECHO = 0x8 ++ NLM_F_EXCL = 0x200 ++ NLM_F_MATCH = 0x200 ++ NLM_F_MULTI = 0x2 ++ NLM_F_REPLACE = 0x100 ++ NLM_F_REQUEST = 0x1 ++ NLM_F_ROOT = 0x100 ++ NOFLSH = 0x80 ++ OCRNL = 0x8 ++ OFDEL = 0x80 ++ OFILL = 0x40 ++ OLCUC = 0x2 ++ ONLCR = 0x4 ++ ONLRET = 0x20 ++ ONOCR = 0x10 ++ OPOST = 0x1 ++ O_ACCMODE = 0x3 ++ O_APPEND = 0x400 ++ O_ASYNC = 0x2000 ++ O_CLOEXEC = 0x80000 ++ O_CREAT = 0x40 ++ O_DIRECT = 0x4000 ++ O_DIRECTORY = 0x10000 ++ O_DSYNC = 0x1000 ++ O_EXCL = 0x80 ++ O_FSYNC = 0x101000 ++ O_LARGEFILE = 0x8000 ++ O_NDELAY = 0x800 ++ O_NOATIME = 0x40000 ++ O_NOCTTY = 0x100 ++ O_NOFOLLOW = 0x20000 ++ O_NONBLOCK = 0x800 ++ O_PATH = 0x200000 ++ O_RDONLY = 0x0 ++ O_RDWR = 0x2 ++ O_RSYNC = 0x101000 ++ O_SYNC = 0x101000 ++ O_TMPFILE = 0x410000 ++ O_TRUNC = 0x200 ++ O_WRONLY = 0x1 ++ PACKET_ADD_MEMBERSHIP = 0x1 ++ PACKET_AUXDATA = 0x8 ++ PACKET_BROADCAST = 0x1 ++ PACKET_COPY_THRESH = 0x7 ++ PACKET_DROP_MEMBERSHIP = 0x2 ++ PACKET_FANOUT = 0x12 ++ PACKET_FANOUT_CPU = 0x2 ++ PACKET_FANOUT_FLAG_DEFRAG = 0x8000 ++ PACKET_FANOUT_HASH = 0x0 ++ PACKET_FANOUT_LB = 0x1 ++ PACKET_FASTROUTE = 0x6 ++ PACKET_HDRLEN = 0xb ++ PACKET_HOST = 0x0 ++ PACKET_LOOPBACK = 0x5 ++ PACKET_LOSS = 0xe ++ PACKET_MR_ALLMULTI = 0x2 ++ PACKET_MR_MULTICAST = 0x0 ++ PACKET_MR_PROMISC = 0x1 ++ PACKET_MR_UNICAST = 0x3 ++ PACKET_MULTICAST = 0x2 ++ PACKET_ORIGDEV = 0x9 ++ PACKET_OTHERHOST = 0x3 ++ PACKET_OUTGOING = 0x4 ++ PACKET_RECV_OUTPUT = 0x3 ++ PACKET_RESERVE = 0xc ++ PACKET_RX_RING = 0x5 ++ PACKET_STATISTICS = 0x6 ++ PACKET_TIMESTAMP = 0x11 ++ PACKET_TX_RING = 0xd ++ PACKET_TX_TIMESTAMP = 0x10 ++ PACKET_VERSION = 0xa ++ PACKET_VNET_HDR = 0xf ++ PARENB = 0x100 ++ PARITY_CRC16_PR0 = 0x2 ++ PARITY_CRC16_PR0_CCITT = 0x4 ++ PARITY_CRC16_PR1 = 0x3 ++ PARITY_CRC16_PR1_CCITT = 0x5 ++ PARITY_CRC32_PR0_CCITT = 0x6 ++ PARITY_CRC32_PR1_CCITT = 0x7 ++ PARITY_DEFAULT = 0x0 ++ PARITY_NONE = 0x1 ++ PARMRK = 0x8 ++ PARODD = 0x200 ++ PENDIN = 0x4000 ++ PRIO_PGRP = 0x1 ++ PRIO_PROCESS = 0x0 ++ PRIO_USER = 0x2 ++ PROT_EXEC = 0x4 ++ PROT_GROWSDOWN = 0x1000000 ++ PROT_GROWSUP = 0x2000000 ++ PROT_NONE = 0x0 ++ PROT_READ = 0x1 ++ PROT_WRITE = 0x2 ++ PR_CAPBSET_DROP = 0x18 ++ PR_CAPBSET_READ = 0x17 ++ PR_ENDIAN_BIG = 0x0 ++ PR_ENDIAN_LITTLE = 0x1 ++ PR_ENDIAN_PPC_LITTLE = 0x2 ++ PR_FPEMU_NOPRINT = 0x1 ++ PR_FPEMU_SIGFPE = 0x2 ++ PR_FP_EXC_ASYNC = 0x2 ++ PR_FP_EXC_DISABLED = 0x0 ++ PR_FP_EXC_DIV = 0x10000 ++ PR_FP_EXC_INV = 0x100000 ++ PR_FP_EXC_NONRECOV = 0x1 ++ PR_FP_EXC_OVF = 0x20000 ++ PR_FP_EXC_PRECISE = 0x3 ++ PR_FP_EXC_RES = 0x80000 ++ PR_FP_EXC_SW_ENABLE = 0x80 ++ PR_FP_EXC_UND = 0x40000 ++ PR_GET_DUMPABLE = 0x3 ++ PR_GET_ENDIAN = 0x13 ++ PR_GET_FPEMU = 0x9 ++ PR_GET_FPEXC = 0xb ++ PR_GET_KEEPCAPS = 0x7 ++ PR_GET_NAME = 0x10 ++ PR_GET_NO_NEW_PRIVS = 0x27 ++ PR_GET_PDEATHSIG = 0x2 ++ PR_GET_SECCOMP = 0x15 ++ PR_GET_SECUREBITS = 0x1b ++ PR_GET_TIMERSLACK = 0x1e ++ PR_GET_TIMING = 0xd ++ PR_GET_TSC = 0x19 ++ PR_GET_UNALIGN = 0x5 ++ PR_MCE_KILL = 0x21 ++ PR_MCE_KILL_CLEAR = 0x0 ++ PR_MCE_KILL_DEFAULT = 0x2 ++ PR_MCE_KILL_EARLY = 0x1 ++ PR_MCE_KILL_GET = 0x22 ++ PR_MCE_KILL_LATE = 0x0 ++ PR_MCE_KILL_SET = 0x1 ++ PR_SET_DUMPABLE = 0x4 ++ PR_SET_ENDIAN = 0x14 ++ PR_SET_FPEMU = 0xa ++ PR_SET_FPEXC = 0xc ++ PR_SET_KEEPCAPS = 0x8 ++ PR_SET_MM = 0x23 ++ PR_SET_MM_BRK = 0x7 ++ PR_SET_MM_END_CODE = 0x2 ++ PR_SET_MM_END_DATA = 0x4 ++ PR_SET_MM_START_BRK = 0x6 ++ PR_SET_MM_START_CODE = 0x1 ++ PR_SET_MM_START_DATA = 0x3 ++ PR_SET_MM_START_STACK = 0x5 ++ PR_SET_NAME = 0xf ++ PR_SET_NO_NEW_PRIVS = 0x26 ++ PR_SET_PDEATHSIG = 0x1 ++ PR_SET_PTRACER = 0x59616d61 ++ PR_SET_PTRACER_ANY = 0xffffffff ++ PR_SET_SECCOMP = 0x16 ++ PR_SET_SECUREBITS = 0x1c ++ PR_SET_TIMERSLACK = 0x1d ++ PR_SET_TIMING = 0xe ++ PR_SET_TSC = 0x1a ++ PR_SET_UNALIGN = 0x6 ++ PR_TASK_PERF_EVENTS_DISABLE = 0x1f ++ PR_TASK_PERF_EVENTS_ENABLE = 0x20 ++ PR_TIMING_STATISTICAL = 0x0 ++ PR_TIMING_TIMESTAMP = 0x1 ++ PR_TSC_ENABLE = 0x1 ++ PR_TSC_SIGSEGV = 0x2 ++ PR_UNALIGN_NOPRINT = 0x1 ++ PR_UNALIGN_SIGBUS = 0x2 ++ PTRACE_ATTACH = 0x10 ++ PTRACE_CONT = 0x7 ++ PTRACE_DETACH = 0x11 ++ PTRACE_EVENT_CLONE = 0x3 ++ PTRACE_EVENT_EXEC = 0x4 ++ PTRACE_EVENT_EXIT = 0x6 ++ PTRACE_EVENT_FORK = 0x1 ++ PTRACE_EVENT_SECCOMP = 0x7 ++ PTRACE_EVENT_STOP = 0x80 ++ PTRACE_EVENT_VFORK = 0x2 ++ PTRACE_EVENT_VFORK_DONE = 0x5 ++ PTRACE_GETEVENTMSG = 0x4201 ++ PTRACE_GETFPREGS = 0xe ++ PTRACE_GETFPXREGS = 0x12 ++ PTRACE_GETREGS = 0xc ++ PTRACE_GETREGSET = 0x4204 ++ PTRACE_GETSIGINFO = 0x4202 ++ PTRACE_GET_THREAD_AREA = 0x19 ++ PTRACE_INTERRUPT = 0x4207 ++ PTRACE_KILL = 0x8 ++ PTRACE_LISTEN = 0x4208 ++ PTRACE_OLDSETOPTIONS = 0x15 ++ PTRACE_O_MASK = 0xff ++ PTRACE_O_TRACECLONE = 0x8 ++ PTRACE_O_TRACEEXEC = 0x10 ++ PTRACE_O_TRACEEXIT = 0x40 ++ PTRACE_O_TRACEFORK = 0x2 ++ PTRACE_O_TRACESECCOMP = 0x80 ++ PTRACE_O_TRACESYSGOOD = 0x1 ++ PTRACE_O_TRACEVFORK = 0x4 ++ PTRACE_O_TRACEVFORKDONE = 0x20 ++ PTRACE_PEEKDATA = 0x2 ++ PTRACE_PEEKTEXT = 0x1 ++ PTRACE_PEEKUSR = 0x3 ++ PTRACE_POKEDATA = 0x5 ++ PTRACE_POKETEXT = 0x4 ++ PTRACE_POKEUSR = 0x6 ++ PTRACE_SEIZE = 0x4206 ++ PTRACE_SEIZE_DEVEL = 0x80000000 ++ PTRACE_SETFPREGS = 0xf ++ PTRACE_SETFPXREGS = 0x13 ++ PTRACE_SETOPTIONS = 0x4200 ++ PTRACE_SETREGS = 0xd ++ PTRACE_SETREGSET = 0x4205 ++ PTRACE_SETSIGINFO = 0x4203 ++ PTRACE_SET_THREAD_AREA = 0x1a ++ PTRACE_SINGLEBLOCK = 0x21 ++ PTRACE_SINGLESTEP = 0x9 ++ PTRACE_SYSCALL = 0x18 ++ PTRACE_SYSEMU = 0x1f ++ PTRACE_SYSEMU_SINGLESTEP = 0x20 ++ PTRACE_TRACEME = 0x0 ++ RLIMIT_AS = 0x9 ++ RLIMIT_CORE = 0x4 ++ RLIMIT_CPU = 0x0 ++ RLIMIT_DATA = 0x2 ++ RLIMIT_FSIZE = 0x1 ++ RLIMIT_NOFILE = 0x7 ++ RLIMIT_STACK = 0x3 ++ RLIM_INFINITY = -0x1 ++ RTAX_ADVMSS = 0x8 ++ RTAX_CWND = 0x7 ++ RTAX_FEATURES = 0xc ++ RTAX_FEATURE_ALLFRAG = 0x8 ++ RTAX_FEATURE_ECN = 0x1 ++ RTAX_FEATURE_SACK = 0x2 ++ RTAX_FEATURE_TIMESTAMP = 0x4 ++ RTAX_HOPLIMIT = 0xa ++ RTAX_INITCWND = 0xb ++ RTAX_INITRWND = 0xe ++ RTAX_LOCK = 0x1 ++ RTAX_MAX = 0xe ++ RTAX_MTU = 0x2 ++ RTAX_REORDERING = 0x9 ++ RTAX_RTO_MIN = 0xd ++ RTAX_RTT = 0x4 ++ RTAX_RTTVAR = 0x5 ++ RTAX_SSTHRESH = 0x6 ++ RTAX_UNSPEC = 0x0 ++ RTAX_WINDOW = 0x3 ++ RTA_ALIGNTO = 0x4 ++ RTA_MAX = 0x10 ++ RTCF_DIRECTSRC = 0x4000000 ++ RTCF_DOREDIRECT = 0x1000000 ++ RTCF_LOG = 0x2000000 ++ RTCF_MASQ = 0x400000 ++ RTCF_NAT = 0x800000 ++ RTCF_VALVE = 0x200000 ++ RTF_ADDRCLASSMASK = 0xf8000000 ++ RTF_ADDRCONF = 0x40000 ++ RTF_ALLONLINK = 0x20000 ++ RTF_BROADCAST = 0x10000000 ++ RTF_CACHE = 0x1000000 ++ RTF_DEFAULT = 0x10000 ++ RTF_DYNAMIC = 0x10 ++ RTF_FLOW = 0x2000000 ++ RTF_GATEWAY = 0x2 ++ RTF_HOST = 0x4 ++ RTF_INTERFACE = 0x40000000 ++ RTF_IRTT = 0x100 ++ RTF_LINKRT = 0x100000 ++ RTF_LOCAL = 0x80000000 ++ RTF_MODIFIED = 0x20 ++ RTF_MSS = 0x40 ++ RTF_MTU = 0x40 ++ RTF_MULTICAST = 0x20000000 ++ RTF_NAT = 0x8000000 ++ RTF_NOFORWARD = 0x1000 ++ RTF_NONEXTHOP = 0x200000 ++ RTF_NOPMTUDISC = 0x4000 ++ RTF_POLICY = 0x4000000 ++ RTF_REINSTATE = 0x8 ++ RTF_REJECT = 0x200 ++ RTF_STATIC = 0x400 ++ RTF_THROW = 0x2000 ++ RTF_UP = 0x1 ++ RTF_WINDOW = 0x80 ++ RTF_XRESOLVE = 0x800 ++ RTM_BASE = 0x10 ++ RTM_DELACTION = 0x31 ++ RTM_DELADDR = 0x15 ++ RTM_DELADDRLABEL = 0x49 ++ RTM_DELLINK = 0x11 ++ RTM_DELNEIGH = 0x1d ++ RTM_DELQDISC = 0x25 ++ RTM_DELROUTE = 0x19 ++ RTM_DELRULE = 0x21 ++ RTM_DELTCLASS = 0x29 ++ RTM_DELTFILTER = 0x2d ++ RTM_F_CLONED = 0x200 ++ RTM_F_EQUALIZE = 0x400 ++ RTM_F_NOTIFY = 0x100 ++ RTM_F_PREFIX = 0x800 ++ RTM_GETACTION = 0x32 ++ RTM_GETADDR = 0x16 ++ RTM_GETADDRLABEL = 0x4a ++ RTM_GETANYCAST = 0x3e ++ RTM_GETDCB = 0x4e ++ RTM_GETLINK = 0x12 ++ RTM_GETMULTICAST = 0x3a ++ RTM_GETNEIGH = 0x1e ++ RTM_GETNEIGHTBL = 0x42 ++ RTM_GETQDISC = 0x26 ++ RTM_GETROUTE = 0x1a ++ RTM_GETRULE = 0x22 ++ RTM_GETTCLASS = 0x2a ++ RTM_GETTFILTER = 0x2e ++ RTM_MAX = 0x4f ++ RTM_NEWACTION = 0x30 ++ RTM_NEWADDR = 0x14 ++ RTM_NEWADDRLABEL = 0x48 ++ RTM_NEWLINK = 0x10 ++ RTM_NEWNDUSEROPT = 0x44 ++ RTM_NEWNEIGH = 0x1c ++ RTM_NEWNEIGHTBL = 0x40 ++ RTM_NEWPREFIX = 0x34 ++ RTM_NEWQDISC = 0x24 ++ RTM_NEWROUTE = 0x18 ++ RTM_NEWRULE = 0x20 ++ RTM_NEWTCLASS = 0x28 ++ RTM_NEWTFILTER = 0x2c ++ RTM_NR_FAMILIES = 0x10 ++ RTM_NR_MSGTYPES = 0x40 ++ RTM_SETDCB = 0x4f ++ RTM_SETLINK = 0x13 ++ RTM_SETNEIGHTBL = 0x43 ++ RTNH_ALIGNTO = 0x4 ++ RTNH_F_DEAD = 0x1 ++ RTNH_F_ONLINK = 0x4 ++ RTNH_F_PERVASIVE = 0x2 ++ RTN_MAX = 0xb ++ RTPROT_BIRD = 0xc ++ RTPROT_BOOT = 0x3 ++ RTPROT_DHCP = 0x10 ++ RTPROT_DNROUTED = 0xd ++ RTPROT_GATED = 0x8 ++ RTPROT_KERNEL = 0x2 ++ RTPROT_MRT = 0xa ++ RTPROT_NTK = 0xf ++ RTPROT_RA = 0x9 ++ RTPROT_REDIRECT = 0x1 ++ RTPROT_STATIC = 0x4 ++ RTPROT_UNSPEC = 0x0 ++ RTPROT_XORP = 0xe ++ RTPROT_ZEBRA = 0xb ++ RT_CLASS_DEFAULT = 0xfd ++ RT_CLASS_LOCAL = 0xff ++ RT_CLASS_MAIN = 0xfe ++ RT_CLASS_MAX = 0xff ++ RT_CLASS_UNSPEC = 0x0 ++ RUSAGE_CHILDREN = -0x1 ++ RUSAGE_SELF = 0x0 ++ RUSAGE_THREAD = 0x1 ++ SCM_CREDENTIALS = 0x2 ++ SCM_RIGHTS = 0x1 ++ SCM_TIMESTAMP = 0x1d ++ SCM_TIMESTAMPING = 0x25 ++ SCM_TIMESTAMPNS = 0x23 ++ SHUT_RD = 0x0 ++ SHUT_RDWR = 0x2 ++ SHUT_WR = 0x1 ++ SIOCADDDLCI = 0x8980 ++ SIOCADDMULTI = 0x8931 ++ SIOCADDRT = 0x890b ++ SIOCATMARK = 0x8905 ++ SIOCDARP = 0x8953 ++ SIOCDELDLCI = 0x8981 ++ SIOCDELMULTI = 0x8932 ++ SIOCDELRT = 0x890c ++ SIOCDEVPRIVATE = 0x89f0 ++ SIOCDIFADDR = 0x8936 ++ SIOCDRARP = 0x8960 ++ SIOCGARP = 0x8954 ++ SIOCGIFADDR = 0x8915 ++ SIOCGIFBR = 0x8940 ++ SIOCGIFBRDADDR = 0x8919 ++ SIOCGIFCONF = 0x8912 ++ SIOCGIFCOUNT = 0x8938 ++ SIOCGIFDSTADDR = 0x8917 ++ SIOCGIFENCAP = 0x8925 ++ SIOCGIFFLAGS = 0x8913 ++ SIOCGIFHWADDR = 0x8927 ++ SIOCGIFINDEX = 0x8933 ++ SIOCGIFMAP = 0x8970 ++ SIOCGIFMEM = 0x891f ++ SIOCGIFMETRIC = 0x891d ++ SIOCGIFMTU = 0x8921 ++ SIOCGIFNAME = 0x8910 ++ SIOCGIFNETMASK = 0x891b ++ SIOCGIFPFLAGS = 0x8935 ++ SIOCGIFSLAVE = 0x8929 ++ SIOCGIFTXQLEN = 0x8942 ++ SIOCGPGRP = 0x8904 ++ SIOCGRARP = 0x8961 ++ SIOCGSTAMP = 0x8906 ++ SIOCGSTAMPNS = 0x8907 ++ SIOCPROTOPRIVATE = 0x89e0 ++ SIOCRTMSG = 0x890d ++ SIOCSARP = 0x8955 ++ SIOCSIFADDR = 0x8916 ++ SIOCSIFBR = 0x8941 ++ SIOCSIFBRDADDR = 0x891a ++ SIOCSIFDSTADDR = 0x8918 ++ SIOCSIFENCAP = 0x8926 ++ SIOCSIFFLAGS = 0x8914 ++ SIOCSIFHWADDR = 0x8924 ++ SIOCSIFHWBROADCAST = 0x8937 ++ SIOCSIFLINK = 0x8911 ++ SIOCSIFMAP = 0x8971 ++ SIOCSIFMEM = 0x8920 ++ SIOCSIFMETRIC = 0x891e ++ SIOCSIFMTU = 0x8922 ++ SIOCSIFNAME = 0x8923 ++ SIOCSIFNETMASK = 0x891c ++ SIOCSIFPFLAGS = 0x8934 ++ SIOCSIFSLAVE = 0x8930 ++ SIOCSIFTXQLEN = 0x8943 ++ SIOCSPGRP = 0x8902 ++ SIOCSRARP = 0x8962 ++ SOCK_CLOEXEC = 0x80000 ++ SOCK_DCCP = 0x6 ++ SOCK_DGRAM = 0x2 ++ SOCK_NONBLOCK = 0x800 ++ SOCK_PACKET = 0xa ++ SOCK_RAW = 0x3 ++ SOCK_RDM = 0x4 ++ SOCK_SEQPACKET = 0x5 ++ SOCK_STREAM = 0x1 ++ SOL_AAL = 0x109 ++ SOL_ATM = 0x108 ++ SOL_DECNET = 0x105 ++ SOL_ICMPV6 = 0x3a ++ SOL_IP = 0x0 ++ SOL_IPV6 = 0x29 ++ SOL_IRDA = 0x10a ++ SOL_NETLINK = 0x10e ++ SOL_PACKET = 0x107 ++ SOL_RAW = 0xff ++ SOL_SOCKET = 0x1 ++ SOL_TCP = 0x6 ++ SOL_X25 = 0x106 ++ SOMAXCONN = 0x80 ++ SO_ACCEPTCONN = 0x1e ++ SO_ATTACH_FILTER = 0x1a ++ SO_BINDTODEVICE = 0x19 ++ SO_BROADCAST = 0x6 ++ SO_BSDCOMPAT = 0xe ++ SO_DEBUG = 0x1 ++ SO_DETACH_FILTER = 0x1b ++ SO_DOMAIN = 0x27 ++ SO_DONTROUTE = 0x5 ++ SO_ERROR = 0x4 ++ SO_KEEPALIVE = 0x9 ++ SO_LINGER = 0xd ++ SO_MARK = 0x24 ++ SO_NO_CHECK = 0xb ++ SO_OOBINLINE = 0xa ++ SO_PASSCRED = 0x10 ++ SO_PASSSEC = 0x22 ++ SO_PEERCRED = 0x11 ++ SO_PEERNAME = 0x1c ++ SO_PEERSEC = 0x1f ++ SO_PRIORITY = 0xc ++ SO_PROTOCOL = 0x26 ++ SO_RCVBUF = 0x8 ++ SO_RCVBUFFORCE = 0x21 ++ SO_RCVLOWAT = 0x12 ++ SO_RCVTIMEO = 0x14 ++ SO_REUSEADDR = 0x2 ++ SO_RXQ_OVFL = 0x28 ++ SO_SECURITY_AUTHENTICATION = 0x16 ++ SO_SECURITY_ENCRYPTION_NETWORK = 0x18 ++ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 ++ SO_SNDBUF = 0x7 ++ SO_SNDBUFFORCE = 0x20 ++ SO_SNDLOWAT = 0x13 ++ SO_SNDTIMEO = 0x15 ++ SO_TIMESTAMP = 0x1d ++ SO_TIMESTAMPING = 0x25 ++ SO_TIMESTAMPNS = 0x23 ++ SO_TYPE = 0x3 ++ SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 ++ SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 ++ SO_VM_SOCKETS_BUFFER_SIZE = 0x0 ++ SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 ++ SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 ++ SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 ++ SO_VM_SOCKETS_TRUSTED = 0x5 ++ SPLICE_F_GIFT = 0x8 ++ SPLICE_F_MORE = 0x4 ++ SPLICE_F_MOVE = 0x1 ++ SPLICE_F_NONBLOCK = 0x2 ++ S_BLKSIZE = 0x200 ++ S_IEXEC = 0x40 ++ S_IFBLK = 0x6000 ++ S_IFCHR = 0x2000 ++ S_IFDIR = 0x4000 ++ S_IFIFO = 0x1000 ++ S_IFLNK = 0xa000 ++ S_IFMT = 0xf000 ++ S_IFREG = 0x8000 ++ S_IFSOCK = 0xc000 ++ S_IREAD = 0x100 ++ S_IRGRP = 0x20 ++ S_IROTH = 0x4 ++ S_IRUSR = 0x100 ++ S_IRWXG = 0x38 ++ S_IRWXO = 0x7 ++ S_IRWXU = 0x1c0 ++ S_ISGID = 0x400 ++ S_ISUID = 0x800 ++ S_ISVTX = 0x200 ++ S_IWGRP = 0x10 ++ S_IWOTH = 0x2 ++ S_IWRITE = 0x80 ++ S_IWUSR = 0x80 ++ S_IXGRP = 0x8 ++ S_IXOTH = 0x1 ++ S_IXUSR = 0x40 ++ TAB0 = 0x0 ++ TAB1 = 0x800 ++ TAB2 = 0x1000 ++ TAB3 = 0x1800 ++ TABDLY = 0x1800 ++ TCFLSH = 0x540b ++ TCGETA = 0x5405 ++ TCGETS = 0x5401 ++ TCGETS2 = 0x802c542a ++ TCGETX = 0x5432 ++ TCIFLUSH = 0x0 ++ TCIOFF = 0x2 ++ TCIOFLUSH = 0x2 ++ TCION = 0x3 ++ TCOFLUSH = 0x1 ++ TCOOFF = 0x0 ++ TCOON = 0x1 ++ TCP_CONGESTION = 0xd ++ TCP_CORK = 0x3 ++ TCP_DEFER_ACCEPT = 0x9 ++ TCP_INFO = 0xb ++ TCP_KEEPCNT = 0x6 ++ TCP_KEEPIDLE = 0x4 ++ TCP_KEEPINTVL = 0x5 ++ TCP_LINGER2 = 0x8 ++ TCP_MAXSEG = 0x2 ++ TCP_MAXWIN = 0xffff ++ TCP_MAX_WINSHIFT = 0xe ++ TCP_MD5SIG = 0xe ++ TCP_MD5SIG_MAXKEYLEN = 0x50 ++ TCP_MSS = 0x200 ++ TCP_NODELAY = 0x1 ++ TCP_QUICKACK = 0xc ++ TCP_SYNCNT = 0x7 ++ TCP_WINDOW_CLAMP = 0xa ++ TCSAFLUSH = 0x2 ++ TCSBRK = 0x5409 ++ TCSBRKP = 0x5425 ++ TCSETA = 0x5406 ++ TCSETAF = 0x5408 ++ TCSETAW = 0x5407 ++ TCSETS = 0x5402 ++ TCSETS2 = 0x402c542b ++ TCSETSF = 0x5404 ++ TCSETSF2 = 0x402c542d ++ TCSETSW = 0x5403 ++ TCSETSW2 = 0x402c542c ++ TCSETX = 0x5433 ++ TCSETXF = 0x5434 ++ TCSETXW = 0x5435 ++ TCXONC = 0x540a ++ TIOCCBRK = 0x5428 ++ TIOCCONS = 0x541d ++ TIOCEXCL = 0x540c ++ TIOCGDEV = 0x80045432 ++ TIOCGETD = 0x5424 ++ TIOCGEXCL = 0x80045440 ++ TIOCGICOUNT = 0x545d ++ TIOCGLCKTRMIOS = 0x5456 ++ TIOCGPGRP = 0x540f ++ TIOCGPKT = 0x80045438 ++ TIOCGPTLCK = 0x80045439 ++ TIOCGPTN = 0x80045430 ++ TIOCGRS485 = 0x542e ++ TIOCGSERIAL = 0x541e ++ TIOCGSID = 0x5429 ++ TIOCGSOFTCAR = 0x5419 ++ TIOCGWINSZ = 0x5413 ++ TIOCINQ = 0x541b ++ TIOCLINUX = 0x541c ++ TIOCMBIC = 0x5417 ++ TIOCMBIS = 0x5416 ++ TIOCMGET = 0x5415 ++ TIOCMIWAIT = 0x545c ++ TIOCMSET = 0x5418 ++ TIOCM_CAR = 0x40 ++ TIOCM_CD = 0x40 ++ TIOCM_CTS = 0x20 ++ TIOCM_DSR = 0x100 ++ TIOCM_DTR = 0x2 ++ TIOCM_LE = 0x1 ++ TIOCM_RI = 0x80 ++ TIOCM_RNG = 0x80 ++ TIOCM_RTS = 0x4 ++ TIOCM_SR = 0x10 ++ TIOCM_ST = 0x8 ++ TIOCNOTTY = 0x5422 ++ TIOCNXCL = 0x540d ++ TIOCOUTQ = 0x5411 ++ TIOCPKT = 0x5420 ++ TIOCPKT_DATA = 0x0 ++ TIOCPKT_DOSTOP = 0x20 ++ TIOCPKT_FLUSHREAD = 0x1 ++ TIOCPKT_FLUSHWRITE = 0x2 ++ TIOCPKT_IOCTL = 0x40 ++ TIOCPKT_NOSTOP = 0x10 ++ TIOCPKT_START = 0x8 ++ TIOCPKT_STOP = 0x4 ++ TIOCSBRK = 0x5427 ++ TIOCSCTTY = 0x540e ++ TIOCSERCONFIG = 0x5453 ++ TIOCSERGETLSR = 0x5459 ++ TIOCSERGETMULTI = 0x545a ++ TIOCSERGSTRUCT = 0x5458 ++ TIOCSERGWILD = 0x5454 ++ TIOCSERSETMULTI = 0x545b ++ TIOCSERSWILD = 0x5455 ++ TIOCSER_TEMT = 0x1 ++ TIOCSETD = 0x5423 ++ TIOCSIG = 0x40045436 ++ TIOCSLCKTRMIOS = 0x5457 ++ TIOCSPGRP = 0x5410 ++ TIOCSPTLCK = 0x40045431 ++ TIOCSRS485 = 0x542f ++ TIOCSSERIAL = 0x541f ++ TIOCSSOFTCAR = 0x541a ++ TIOCSTI = 0x5412 ++ TIOCSWINSZ = 0x5414 ++ TIOCVHANGUP = 0x5437 ++ TOSTOP = 0x100 ++ TUNATTACHFILTER = 0x400854d5 ++ TUNDETACHFILTER = 0x400854d6 ++ TUNGETFEATURES = 0x800454cf ++ TUNGETIFF = 0x800454d2 ++ TUNGETSNDBUF = 0x800454d3 ++ TUNGETVNETHDRSZ = 0x800454d7 ++ TUNSETDEBUG = 0x400454c9 ++ TUNSETGROUP = 0x400454ce ++ TUNSETIFF = 0x400454ca ++ TUNSETLINK = 0x400454cd ++ TUNSETNOCSUM = 0x400454c8 ++ TUNSETOFFLOAD = 0x400454d0 ++ TUNSETOWNER = 0x400454cc ++ TUNSETPERSIST = 0x400454cb ++ TUNSETSNDBUF = 0x400454d4 ++ TUNSETTXFILTER = 0x400454d1 ++ TUNSETVNETHDRSZ = 0x400454d8 ++ VDISCARD = 0xd ++ VEOF = 0x4 ++ VEOL = 0xb ++ VEOL2 = 0x10 ++ VERASE = 0x2 ++ VINTR = 0x0 ++ VKILL = 0x3 ++ VLNEXT = 0xf ++ VMADDR_CID_ANY = 0xffffffff ++ VMADDR_CID_HOST = 0x2 ++ VMADDR_CID_HYPERVISOR = 0x0 ++ VMADDR_CID_RESERVED = 0x1 ++ VMADDR_PORT_ANY = 0xffffffff ++ VMIN = 0x6 ++ VQUIT = 0x1 ++ VREPRINT = 0xc ++ VSTART = 0x8 ++ VSTOP = 0x9 ++ VSUSP = 0xa ++ VSWTC = 0x7 ++ VT0 = 0x0 ++ VT1 = 0x4000 ++ VTDLY = 0x4000 ++ VTIME = 0x5 ++ VWERASE = 0xe ++ WALL = 0x40000000 ++ WCLONE = 0x80000000 ++ WCONTINUED = 0x8 ++ WEXITED = 0x4 ++ WNOHANG = 0x1 ++ WNOTHREAD = 0x20000000 ++ WNOWAIT = 0x1000000 ++ WORDSIZE = 0x20 ++ WSTOPPED = 0x2 ++ WUNTRACED = 0x2 ++ XCASE = 0x4 ++ XTABS = 0x1800 ++) ++ ++// Errors ++const ( ++ E2BIG = syscall.Errno(0x7) ++ EACCES = syscall.Errno(0xd) ++ EADDRINUSE = syscall.Errno(0x62) ++ EADDRNOTAVAIL = syscall.Errno(0x63) ++ EADV = syscall.Errno(0x44) ++ EAFNOSUPPORT = syscall.Errno(0x61) ++ EAGAIN = syscall.Errno(0xb) ++ EALREADY = syscall.Errno(0x72) ++ EBADE = syscall.Errno(0x34) ++ EBADF = syscall.Errno(0x9) ++ EBADFD = syscall.Errno(0x4d) ++ EBADMSG = syscall.Errno(0x4a) ++ EBADR = syscall.Errno(0x35) ++ EBADRQC = syscall.Errno(0x38) ++ EBADSLT = syscall.Errno(0x39) ++ EBFONT = syscall.Errno(0x3b) ++ EBUSY = syscall.Errno(0x10) ++ ECANCELED = syscall.Errno(0x7d) ++ ECHILD = syscall.Errno(0xa) ++ ECHRNG = syscall.Errno(0x2c) ++ ECOMM = syscall.Errno(0x46) ++ ECONNABORTED = syscall.Errno(0x67) ++ ECONNREFUSED = syscall.Errno(0x6f) ++ ECONNRESET = syscall.Errno(0x68) ++ EDEADLK = syscall.Errno(0x23) ++ EDEADLOCK = syscall.Errno(0x23) ++ EDESTADDRREQ = syscall.Errno(0x59) ++ EDOM = syscall.Errno(0x21) ++ EDOTDOT = syscall.Errno(0x49) ++ EDQUOT = syscall.Errno(0x7a) ++ EEXIST = syscall.Errno(0x11) ++ EFAULT = syscall.Errno(0xe) ++ EFBIG = syscall.Errno(0x1b) ++ EHOSTDOWN = syscall.Errno(0x70) ++ EHOSTUNREACH = syscall.Errno(0x71) ++ EHWPOISON = syscall.Errno(0x85) ++ EIDRM = syscall.Errno(0x2b) ++ EILSEQ = syscall.Errno(0x54) ++ EINPROGRESS = syscall.Errno(0x73) ++ EINTR = syscall.Errno(0x4) ++ EINVAL = syscall.Errno(0x16) ++ EIO = syscall.Errno(0x5) ++ EISCONN = syscall.Errno(0x6a) ++ EISDIR = syscall.Errno(0x15) ++ EISNAM = syscall.Errno(0x78) ++ EKEYEXPIRED = syscall.Errno(0x7f) ++ EKEYREJECTED = syscall.Errno(0x81) ++ EKEYREVOKED = syscall.Errno(0x80) ++ EL2HLT = syscall.Errno(0x33) ++ EL2NSYNC = syscall.Errno(0x2d) ++ EL3HLT = syscall.Errno(0x2e) ++ EL3RST = syscall.Errno(0x2f) ++ ELIBACC = syscall.Errno(0x4f) ++ ELIBBAD = syscall.Errno(0x50) ++ ELIBEXEC = syscall.Errno(0x53) ++ ELIBMAX = syscall.Errno(0x52) ++ ELIBSCN = syscall.Errno(0x51) ++ ELNRNG = syscall.Errno(0x30) ++ ELOOP = syscall.Errno(0x28) ++ EMEDIUMTYPE = syscall.Errno(0x7c) ++ EMFILE = syscall.Errno(0x18) ++ EMLINK = syscall.Errno(0x1f) ++ EMSGSIZE = syscall.Errno(0x5a) ++ EMULTIHOP = syscall.Errno(0x48) ++ ENAMETOOLONG = syscall.Errno(0x24) ++ ENAVAIL = syscall.Errno(0x77) ++ ENETDOWN = syscall.Errno(0x64) ++ ENETRESET = syscall.Errno(0x66) ++ ENETUNREACH = syscall.Errno(0x65) ++ ENFILE = syscall.Errno(0x17) ++ ENOANO = syscall.Errno(0x37) ++ ENOBUFS = syscall.Errno(0x69) ++ ENOCSI = syscall.Errno(0x32) ++ ENODATA = syscall.Errno(0x3d) ++ ENODEV = syscall.Errno(0x13) ++ ENOENT = syscall.Errno(0x2) ++ ENOEXEC = syscall.Errno(0x8) ++ ENOKEY = syscall.Errno(0x7e) ++ ENOLCK = syscall.Errno(0x25) ++ ENOLINK = syscall.Errno(0x43) ++ ENOMEDIUM = syscall.Errno(0x7b) ++ ENOMEM = syscall.Errno(0xc) ++ ENOMSG = syscall.Errno(0x2a) ++ ENONET = syscall.Errno(0x40) ++ ENOPKG = syscall.Errno(0x41) ++ ENOPROTOOPT = syscall.Errno(0x5c) ++ ENOSPC = syscall.Errno(0x1c) ++ ENOSR = syscall.Errno(0x3f) ++ ENOSTR = syscall.Errno(0x3c) ++ ENOSYS = syscall.Errno(0x26) ++ ENOTBLK = syscall.Errno(0xf) ++ ENOTCONN = syscall.Errno(0x6b) ++ ENOTDIR = syscall.Errno(0x14) ++ ENOTEMPTY = syscall.Errno(0x27) ++ ENOTNAM = syscall.Errno(0x76) ++ ENOTRECOVERABLE = syscall.Errno(0x83) ++ ENOTSOCK = syscall.Errno(0x58) ++ ENOTSUP = syscall.Errno(0x5f) ++ ENOTTY = syscall.Errno(0x19) ++ ENOTUNIQ = syscall.Errno(0x4c) ++ ENXIO = syscall.Errno(0x6) ++ EOPNOTSUPP = syscall.Errno(0x5f) ++ EOVERFLOW = syscall.Errno(0x4b) ++ EOWNERDEAD = syscall.Errno(0x82) ++ EPERM = syscall.Errno(0x1) ++ EPFNOSUPPORT = syscall.Errno(0x60) ++ EPIPE = syscall.Errno(0x20) ++ EPROTO = syscall.Errno(0x47) ++ EPROTONOSUPPORT = syscall.Errno(0x5d) ++ EPROTOTYPE = syscall.Errno(0x5b) ++ ERANGE = syscall.Errno(0x22) ++ EREMCHG = syscall.Errno(0x4e) ++ EREMOTE = syscall.Errno(0x42) ++ EREMOTEIO = syscall.Errno(0x79) ++ ERESTART = syscall.Errno(0x55) ++ ERFKILL = syscall.Errno(0x84) ++ EROFS = syscall.Errno(0x1e) ++ ESHUTDOWN = syscall.Errno(0x6c) ++ ESOCKTNOSUPPORT = syscall.Errno(0x5e) ++ ESPIPE = syscall.Errno(0x1d) ++ ESRCH = syscall.Errno(0x3) ++ ESRMNT = syscall.Errno(0x45) ++ ESTALE = syscall.Errno(0x74) ++ ESTRPIPE = syscall.Errno(0x56) ++ ETIME = syscall.Errno(0x3e) ++ ETIMEDOUT = syscall.Errno(0x6e) ++ ETOOMANYREFS = syscall.Errno(0x6d) ++ ETXTBSY = syscall.Errno(0x1a) ++ EUCLEAN = syscall.Errno(0x75) ++ EUNATCH = syscall.Errno(0x31) ++ EUSERS = syscall.Errno(0x57) ++ EWOULDBLOCK = syscall.Errno(0xb) ++ EXDEV = syscall.Errno(0x12) ++ EXFULL = syscall.Errno(0x36) ++) ++ ++// Signals ++const ( ++ SIGABRT = syscall.Signal(0x6) ++ SIGALRM = syscall.Signal(0xe) ++ SIGBUS = syscall.Signal(0x7) ++ SIGCHLD = syscall.Signal(0x11) ++ SIGCLD = syscall.Signal(0x11) ++ SIGCONT = syscall.Signal(0x12) ++ SIGFPE = syscall.Signal(0x8) ++ SIGHUP = syscall.Signal(0x1) ++ SIGILL = syscall.Signal(0x4) ++ SIGINT = syscall.Signal(0x2) ++ SIGIO = syscall.Signal(0x1d) ++ SIGIOT = syscall.Signal(0x6) ++ SIGKILL = syscall.Signal(0x9) ++ SIGPIPE = syscall.Signal(0xd) ++ SIGPOLL = syscall.Signal(0x1d) ++ SIGPROF = syscall.Signal(0x1b) ++ SIGPWR = syscall.Signal(0x1e) ++ SIGQUIT = syscall.Signal(0x3) ++ SIGSEGV = syscall.Signal(0xb) ++ SIGSTKFLT = syscall.Signal(0x10) ++ SIGSTOP = syscall.Signal(0x13) ++ SIGSYS = syscall.Signal(0x1f) ++ SIGTERM = syscall.Signal(0xf) ++ SIGTRAP = syscall.Signal(0x5) ++ SIGTSTP = syscall.Signal(0x14) ++ SIGTTIN = syscall.Signal(0x15) ++ SIGTTOU = syscall.Signal(0x16) ++ SIGUNUSED = syscall.Signal(0x1f) ++ SIGURG = syscall.Signal(0x17) ++ SIGUSR1 = syscall.Signal(0xa) ++ SIGUSR2 = syscall.Signal(0xc) ++ SIGVTALRM = syscall.Signal(0x1a) ++ SIGWINCH = syscall.Signal(0x1c) ++ SIGXCPU = syscall.Signal(0x18) ++ SIGXFSZ = syscall.Signal(0x19) ++) ++ ++// Error table ++var errors = [...]string{ ++ 1: "operation not permitted", ++ 2: "no such file or directory", ++ 3: "no such process", ++ 4: "interrupted system call", ++ 5: "input/output error", ++ 6: "no such device or address", ++ 7: "argument list too long", ++ 8: "exec format error", ++ 9: "bad file descriptor", ++ 10: "no child processes", ++ 11: "resource temporarily unavailable", ++ 12: "cannot allocate memory", ++ 13: "permission denied", ++ 14: "bad address", ++ 15: "block device required", ++ 16: "device or resource busy", ++ 17: "file exists", ++ 18: "invalid cross-device link", ++ 19: "no such device", ++ 20: "not a directory", ++ 21: "is a directory", ++ 22: "invalid argument", ++ 23: "too many open files in system", ++ 24: "too many open files", ++ 25: "inappropriate ioctl for device", ++ 26: "text file busy", ++ 27: "file too large", ++ 28: "no space left on device", ++ 29: "illegal seek", ++ 30: "read-only file system", ++ 31: "too many links", ++ 32: "broken pipe", ++ 33: "numerical argument out of domain", ++ 34: "numerical result out of range", ++ 35: "resource deadlock avoided", ++ 36: "file name too long", ++ 37: "no locks available", ++ 38: "function not implemented", ++ 39: "directory not empty", ++ 40: "too many levels of symbolic links", ++ 42: "no message of desired type", ++ 43: "identifier removed", ++ 44: "channel number out of range", ++ 45: "level 2 not synchronized", ++ 46: "level 3 halted", ++ 47: "level 3 reset", ++ 48: "link number out of range", ++ 49: "protocol driver not attached", ++ 50: "no CSI structure available", ++ 51: "level 2 halted", ++ 52: "invalid exchange", ++ 53: "invalid request descriptor", ++ 54: "exchange full", ++ 55: "no anode", ++ 56: "invalid request code", ++ 57: "invalid slot", ++ 59: "bad font file format", ++ 60: "device not a stream", ++ 61: "no data available", ++ 62: "timer expired", ++ 63: "out of streams resources", ++ 64: "machine is not on the network", ++ 65: "package not installed", ++ 66: "object is remote", ++ 67: "link has been severed", ++ 68: "advertise error", ++ 69: "srmount error", ++ 70: "communication error on send", ++ 71: "protocol error", ++ 72: "multihop attempted", ++ 73: "RFS specific error", ++ 74: "bad message", ++ 75: "value too large for defined data type", ++ 76: "name not unique on network", ++ 77: "file descriptor in bad state", ++ 78: "remote address changed", ++ 79: "can not access a needed shared library", ++ 80: "accessing a corrupted shared library", ++ 81: ".lib section in a.out corrupted", ++ 82: "attempting to link in too many shared libraries", ++ 83: "cannot exec a shared library directly", ++ 84: "invalid or incomplete multibyte or wide character", ++ 85: "interrupted system call should be restarted", ++ 86: "streams pipe error", ++ 87: "too many users", ++ 88: "socket operation on non-socket", ++ 89: "destination address required", ++ 90: "message too long", ++ 91: "protocol wrong type for socket", ++ 92: "protocol not available", ++ 93: "protocol not supported", ++ 94: "socket type not supported", ++ 95: "operation not supported", ++ 96: "protocol family not supported", ++ 97: "address family not supported by protocol", ++ 98: "address already in use", ++ 99: "cannot assign requested address", ++ 100: "network is down", ++ 101: "network is unreachable", ++ 102: "network dropped connection on reset", ++ 103: "software caused connection abort", ++ 104: "connection reset by peer", ++ 105: "no buffer space available", ++ 106: "transport endpoint is already connected", ++ 107: "transport endpoint is not connected", ++ 108: "cannot send after transport endpoint shutdown", ++ 109: "too many references: cannot splice", ++ 110: "connection timed out", ++ 111: "connection refused", ++ 112: "host is down", ++ 113: "no route to host", ++ 114: "operation already in progress", ++ 115: "operation now in progress", ++ 116: "stale NFS file handle", ++ 117: "structure needs cleaning", ++ 118: "not a XENIX named type file", ++ 119: "no XENIX semaphores available", ++ 120: "is a named type file", ++ 121: "remote I/O error", ++ 122: "disk quota exceeded", ++ 123: "no medium found", ++ 124: "wrong medium type", ++ 125: "operation canceled", ++ 126: "required key not available", ++ 127: "key has expired", ++ 128: "key has been revoked", ++ 129: "key was rejected by service", ++ 130: "owner died", ++ 131: "state not recoverable", ++ 132: "operation not possible due to RF-kill", ++ 133: "unknown error 133", ++} ++ ++// Signal table ++var signals = [...]string{ ++ 1: "hangup", ++ 2: "interrupt", ++ 3: "quit", ++ 4: "illegal instruction", ++ 5: "trace/breakpoint trap", ++ 6: "aborted", ++ 7: "bus error", ++ 8: "floating point exception", ++ 9: "killed", ++ 10: "user defined signal 1", ++ 11: "segmentation fault", ++ 12: "user defined signal 2", ++ 13: "broken pipe", ++ 14: "alarm clock", ++ 15: "terminated", ++ 16: "stack fault", ++ 17: "child exited", ++ 18: "continued", ++ 19: "stopped (signal)", ++ 20: "stopped", ++ 21: "stopped (tty input)", ++ 22: "stopped (tty output)", ++ 23: "urgent I/O condition", ++ 24: "CPU time limit exceeded", ++ 25: "file size limit exceeded", ++ 26: "virtual timer expired", ++ 27: "profiling timer expired", ++ 28: "window changed", ++ 29: "I/O possible", ++ 30: "power failure", ++ 31: "bad system call", ++} +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +new file mode 100644 +index 0000000..f21dcd9 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +@@ -0,0 +1,1895 @@ ++// mkerrors.sh -m64 ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build amd64,linux ++ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- -m64 _const.go ++ ++package unix ++ ++import "syscall" ++ ++const ( ++ AF_ALG = 0x26 ++ AF_APPLETALK = 0x5 ++ AF_ASH = 0x12 ++ AF_ATMPVC = 0x8 ++ AF_ATMSVC = 0x14 ++ AF_AX25 = 0x3 ++ AF_BLUETOOTH = 0x1f ++ AF_BRIDGE = 0x7 ++ AF_CAIF = 0x25 ++ AF_CAN = 0x1d ++ AF_DECnet = 0xc ++ AF_ECONET = 0x13 ++ AF_FILE = 0x1 ++ AF_IEEE802154 = 0x24 ++ AF_INET = 0x2 ++ AF_INET6 = 0xa ++ AF_IPX = 0x4 ++ AF_IRDA = 0x17 ++ AF_ISDN = 0x22 ++ AF_IUCV = 0x20 ++ AF_KEY = 0xf ++ AF_LLC = 0x1a ++ AF_LOCAL = 0x1 ++ AF_MAX = 0x28 ++ AF_NETBEUI = 0xd ++ AF_NETLINK = 0x10 ++ AF_NETROM = 0x6 ++ AF_NFC = 0x27 ++ AF_PACKET = 0x11 ++ AF_PHONET = 0x23 ++ AF_PPPOX = 0x18 ++ AF_RDS = 0x15 ++ AF_ROSE = 0xb ++ AF_ROUTE = 0x10 ++ AF_RXRPC = 0x21 ++ AF_SECURITY = 0xe ++ AF_SNA = 0x16 ++ AF_TIPC = 0x1e ++ AF_UNIX = 0x1 ++ AF_UNSPEC = 0x0 ++ AF_VSOCK = 0x28 ++ AF_WANPIPE = 0x19 ++ AF_X25 = 0x9 ++ ALG_OP_DECRYPT = 0x0 ++ ALG_OP_ENCRYPT = 0x1 ++ ALG_SET_AEAD_ASSOCLEN = 0x4 ++ ALG_SET_AEAD_AUTHSIZE = 0x5 ++ ALG_SET_IV = 0x2 ++ ALG_SET_KEY = 0x1 ++ ALG_SET_OP = 0x3 ++ ARPHRD_ADAPT = 0x108 ++ ARPHRD_APPLETLK = 0x8 ++ ARPHRD_ARCNET = 0x7 ++ ARPHRD_ASH = 0x30d ++ ARPHRD_ATM = 0x13 ++ ARPHRD_AX25 = 0x3 ++ ARPHRD_BIF = 0x307 ++ ARPHRD_CAIF = 0x336 ++ ARPHRD_CAN = 0x118 ++ ARPHRD_CHAOS = 0x5 ++ ARPHRD_CISCO = 0x201 ++ ARPHRD_CSLIP = 0x101 ++ ARPHRD_CSLIP6 = 0x103 ++ ARPHRD_DDCMP = 0x205 ++ ARPHRD_DLCI = 0xf ++ ARPHRD_ECONET = 0x30e ++ ARPHRD_EETHER = 0x2 ++ ARPHRD_ETHER = 0x1 ++ ARPHRD_EUI64 = 0x1b ++ ARPHRD_FCAL = 0x311 ++ ARPHRD_FCFABRIC = 0x313 ++ ARPHRD_FCPL = 0x312 ++ ARPHRD_FCPP = 0x310 ++ ARPHRD_FDDI = 0x306 ++ ARPHRD_FRAD = 0x302 ++ ARPHRD_HDLC = 0x201 ++ ARPHRD_HIPPI = 0x30c ++ ARPHRD_HWX25 = 0x110 ++ ARPHRD_IEEE1394 = 0x18 ++ ARPHRD_IEEE802 = 0x6 ++ ARPHRD_IEEE80211 = 0x321 ++ ARPHRD_IEEE80211_PRISM = 0x322 ++ ARPHRD_IEEE80211_RADIOTAP = 0x323 ++ ARPHRD_IEEE802154 = 0x324 ++ ARPHRD_IEEE802_TR = 0x320 ++ ARPHRD_INFINIBAND = 0x20 ++ ARPHRD_IPDDP = 0x309 ++ ARPHRD_IPGRE = 0x30a ++ ARPHRD_IRDA = 0x30f ++ ARPHRD_LAPB = 0x204 ++ ARPHRD_LOCALTLK = 0x305 ++ ARPHRD_LOOPBACK = 0x304 ++ ARPHRD_METRICOM = 0x17 ++ ARPHRD_NETROM = 0x0 ++ ARPHRD_NONE = 0xfffe ++ ARPHRD_PHONET = 0x334 ++ ARPHRD_PHONET_PIPE = 0x335 ++ ARPHRD_PIMREG = 0x30b ++ ARPHRD_PPP = 0x200 ++ ARPHRD_PRONET = 0x4 ++ ARPHRD_RAWHDLC = 0x206 ++ ARPHRD_ROSE = 0x10e ++ ARPHRD_RSRVD = 0x104 ++ ARPHRD_SIT = 0x308 ++ ARPHRD_SKIP = 0x303 ++ ARPHRD_SLIP = 0x100 ++ ARPHRD_SLIP6 = 0x102 ++ ARPHRD_TUNNEL = 0x300 ++ ARPHRD_TUNNEL6 = 0x301 ++ ARPHRD_VOID = 0xffff ++ ARPHRD_X25 = 0x10f ++ B0 = 0x0 ++ B1000000 = 0x1008 ++ B110 = 0x3 ++ B115200 = 0x1002 ++ B1152000 = 0x1009 ++ B1200 = 0x9 ++ B134 = 0x4 ++ B150 = 0x5 ++ B1500000 = 0x100a ++ B1800 = 0xa ++ B19200 = 0xe ++ B200 = 0x6 ++ B2000000 = 0x100b ++ B230400 = 0x1003 ++ B2400 = 0xb ++ B2500000 = 0x100c ++ B300 = 0x7 ++ B3000000 = 0x100d ++ B3500000 = 0x100e ++ B38400 = 0xf ++ B4000000 = 0x100f ++ B460800 = 0x1004 ++ B4800 = 0xc ++ B50 = 0x1 ++ B500000 = 0x1005 ++ B57600 = 0x1001 ++ B576000 = 0x1006 ++ B600 = 0x8 ++ B75 = 0x2 ++ B921600 = 0x1007 ++ B9600 = 0xd ++ BLKBSZGET = 0x80081270 ++ BLKBSZSET = 0x40081271 ++ BLKFLSBUF = 0x1261 ++ BLKFRAGET = 0x1265 ++ BLKFRASET = 0x1264 ++ BLKGETSIZE = 0x1260 ++ BLKGETSIZE64 = 0x80081272 ++ BLKRAGET = 0x1263 ++ BLKRASET = 0x1262 ++ BLKROGET = 0x125e ++ BLKROSET = 0x125d ++ BLKRRPART = 0x125f ++ BLKSECTGET = 0x1267 ++ BLKSECTSET = 0x1266 ++ BLKSSZGET = 0x1268 ++ BOTHER = 0x1000 ++ BPF_A = 0x10 ++ BPF_ABS = 0x20 ++ BPF_ADD = 0x0 ++ BPF_ALU = 0x4 ++ BPF_AND = 0x50 ++ BPF_B = 0x10 ++ BPF_DIV = 0x30 ++ BPF_H = 0x8 ++ BPF_IMM = 0x0 ++ BPF_IND = 0x40 ++ BPF_JA = 0x0 ++ BPF_JEQ = 0x10 ++ BPF_JGE = 0x30 ++ BPF_JGT = 0x20 ++ BPF_JMP = 0x5 ++ BPF_JSET = 0x40 ++ BPF_K = 0x0 ++ BPF_LD = 0x0 ++ BPF_LDX = 0x1 ++ BPF_LEN = 0x80 ++ BPF_LSH = 0x60 ++ BPF_MAJOR_VERSION = 0x1 ++ BPF_MAXINSNS = 0x1000 ++ BPF_MEM = 0x60 ++ BPF_MEMWORDS = 0x10 ++ BPF_MINOR_VERSION = 0x1 ++ BPF_MISC = 0x7 ++ BPF_MSH = 0xa0 ++ BPF_MUL = 0x20 ++ BPF_NEG = 0x80 ++ BPF_OR = 0x40 ++ BPF_RET = 0x6 ++ BPF_RSH = 0x70 ++ BPF_ST = 0x2 ++ BPF_STX = 0x3 ++ BPF_SUB = 0x10 ++ BPF_TAX = 0x0 ++ BPF_TXA = 0x80 ++ BPF_W = 0x0 ++ BPF_X = 0x8 ++ BRKINT = 0x2 ++ BS0 = 0x0 ++ BS1 = 0x2000 ++ BSDLY = 0x2000 ++ CAN_BCM = 0x2 ++ CAN_EFF_FLAG = 0x80000000 ++ CAN_EFF_ID_BITS = 0x1d ++ CAN_EFF_MASK = 0x1fffffff ++ CAN_ERR_FLAG = 0x20000000 ++ CAN_ERR_MASK = 0x1fffffff ++ CAN_INV_FILTER = 0x20000000 ++ CAN_ISOTP = 0x6 ++ CAN_MAX_DLC = 0x8 ++ CAN_MAX_DLEN = 0x8 ++ CAN_MCNET = 0x5 ++ CAN_MTU = 0x10 ++ CAN_NPROTO = 0x7 ++ CAN_RAW = 0x1 ++ CAN_RTR_FLAG = 0x40000000 ++ CAN_SFF_ID_BITS = 0xb ++ CAN_SFF_MASK = 0x7ff ++ CAN_TP16 = 0x3 ++ CAN_TP20 = 0x4 ++ CBAUD = 0x100f ++ CBAUDEX = 0x1000 ++ CFLUSH = 0xf ++ CIBAUD = 0x100f0000 ++ CLOCAL = 0x800 ++ CLOCK_BOOTTIME = 0x7 ++ CLOCK_BOOTTIME_ALARM = 0x9 ++ CLOCK_DEFAULT = 0x0 ++ CLOCK_EXT = 0x1 ++ CLOCK_INT = 0x2 ++ CLOCK_MONOTONIC = 0x1 ++ CLOCK_MONOTONIC_COARSE = 0x6 ++ CLOCK_MONOTONIC_RAW = 0x4 ++ CLOCK_PROCESS_CPUTIME_ID = 0x2 ++ CLOCK_REALTIME = 0x0 ++ CLOCK_REALTIME_ALARM = 0x8 ++ CLOCK_REALTIME_COARSE = 0x5 ++ CLOCK_THREAD_CPUTIME_ID = 0x3 ++ CLOCK_TXFROMRX = 0x4 ++ CLOCK_TXINT = 0x3 ++ CLONE_CHILD_CLEARTID = 0x200000 ++ CLONE_CHILD_SETTID = 0x1000000 ++ CLONE_DETACHED = 0x400000 ++ CLONE_FILES = 0x400 ++ CLONE_FS = 0x200 ++ CLONE_IO = 0x80000000 ++ CLONE_NEWCGROUP = 0x2000000 ++ CLONE_NEWIPC = 0x8000000 ++ CLONE_NEWNET = 0x40000000 ++ CLONE_NEWNS = 0x20000 ++ CLONE_NEWPID = 0x20000000 ++ CLONE_NEWUSER = 0x10000000 ++ CLONE_NEWUTS = 0x4000000 ++ CLONE_PARENT = 0x8000 ++ CLONE_PARENT_SETTID = 0x100000 ++ CLONE_PTRACE = 0x2000 ++ CLONE_SETTLS = 0x80000 ++ CLONE_SIGHAND = 0x800 ++ CLONE_SYSVSEM = 0x40000 ++ CLONE_THREAD = 0x10000 ++ CLONE_UNTRACED = 0x800000 ++ CLONE_VFORK = 0x4000 ++ CLONE_VM = 0x100 ++ CMSPAR = 0x40000000 ++ CR0 = 0x0 ++ CR1 = 0x200 ++ CR2 = 0x400 ++ CR3 = 0x600 ++ CRDLY = 0x600 ++ CREAD = 0x80 ++ CRTSCTS = 0x80000000 ++ CS5 = 0x0 ++ CS6 = 0x10 ++ CS7 = 0x20 ++ CS8 = 0x30 ++ CSIGNAL = 0xff ++ CSIZE = 0x30 ++ CSTART = 0x11 ++ CSTATUS = 0x0 ++ CSTOP = 0x13 ++ CSTOPB = 0x40 ++ CSUSP = 0x1a ++ DT_BLK = 0x6 ++ DT_CHR = 0x2 ++ DT_DIR = 0x4 ++ DT_FIFO = 0x1 ++ DT_LNK = 0xa ++ DT_REG = 0x8 ++ DT_SOCK = 0xc ++ DT_UNKNOWN = 0x0 ++ DT_WHT = 0xe ++ ECHO = 0x8 ++ ECHOCTL = 0x200 ++ ECHOE = 0x10 ++ ECHOK = 0x20 ++ ECHOKE = 0x800 ++ ECHONL = 0x40 ++ ECHOPRT = 0x400 ++ ENCODING_DEFAULT = 0x0 ++ ENCODING_FM_MARK = 0x3 ++ ENCODING_FM_SPACE = 0x4 ++ ENCODING_MANCHESTER = 0x5 ++ ENCODING_NRZ = 0x1 ++ ENCODING_NRZI = 0x2 ++ EPOLLERR = 0x8 ++ EPOLLET = 0x80000000 ++ EPOLLHUP = 0x10 ++ EPOLLIN = 0x1 ++ EPOLLMSG = 0x400 ++ EPOLLONESHOT = 0x40000000 ++ EPOLLOUT = 0x4 ++ EPOLLPRI = 0x2 ++ EPOLLRDBAND = 0x80 ++ EPOLLRDHUP = 0x2000 ++ EPOLLRDNORM = 0x40 ++ EPOLLWRBAND = 0x200 ++ EPOLLWRNORM = 0x100 ++ EPOLL_CLOEXEC = 0x80000 ++ EPOLL_CTL_ADD = 0x1 ++ EPOLL_CTL_DEL = 0x2 ++ EPOLL_CTL_MOD = 0x3 ++ EPOLL_NONBLOCK = 0x800 ++ ETH_P_1588 = 0x88f7 ++ ETH_P_8021AD = 0x88a8 ++ ETH_P_8021AH = 0x88e7 ++ ETH_P_8021Q = 0x8100 ++ ETH_P_802_2 = 0x4 ++ ETH_P_802_3 = 0x1 ++ ETH_P_AARP = 0x80f3 ++ ETH_P_AF_IUCV = 0xfbfb ++ ETH_P_ALL = 0x3 ++ ETH_P_AOE = 0x88a2 ++ ETH_P_ARCNET = 0x1a ++ ETH_P_ARP = 0x806 ++ ETH_P_ATALK = 0x809b ++ ETH_P_ATMFATE = 0x8884 ++ ETH_P_ATMMPOA = 0x884c ++ ETH_P_AX25 = 0x2 ++ ETH_P_BPQ = 0x8ff ++ ETH_P_CAIF = 0xf7 ++ ETH_P_CAN = 0xc ++ ETH_P_CONTROL = 0x16 ++ ETH_P_CUST = 0x6006 ++ ETH_P_DDCMP = 0x6 ++ ETH_P_DEC = 0x6000 ++ ETH_P_DIAG = 0x6005 ++ ETH_P_DNA_DL = 0x6001 ++ ETH_P_DNA_RC = 0x6002 ++ ETH_P_DNA_RT = 0x6003 ++ ETH_P_DSA = 0x1b ++ ETH_P_ECONET = 0x18 ++ ETH_P_EDSA = 0xdada ++ ETH_P_FCOE = 0x8906 ++ ETH_P_FIP = 0x8914 ++ ETH_P_HDLC = 0x19 ++ ETH_P_IEEE802154 = 0xf6 ++ ETH_P_IEEEPUP = 0xa00 ++ ETH_P_IEEEPUPAT = 0xa01 ++ ETH_P_IP = 0x800 ++ ETH_P_IPV6 = 0x86dd ++ ETH_P_IPX = 0x8137 ++ ETH_P_IRDA = 0x17 ++ ETH_P_LAT = 0x6004 ++ ETH_P_LINK_CTL = 0x886c ++ ETH_P_LOCALTALK = 0x9 ++ ETH_P_LOOP = 0x60 ++ ETH_P_MOBITEX = 0x15 ++ ETH_P_MPLS_MC = 0x8848 ++ ETH_P_MPLS_UC = 0x8847 ++ ETH_P_PAE = 0x888e ++ ETH_P_PAUSE = 0x8808 ++ ETH_P_PHONET = 0xf5 ++ ETH_P_PPPTALK = 0x10 ++ ETH_P_PPP_DISC = 0x8863 ++ ETH_P_PPP_MP = 0x8 ++ ETH_P_PPP_SES = 0x8864 ++ ETH_P_PUP = 0x200 ++ ETH_P_PUPAT = 0x201 ++ ETH_P_QINQ1 = 0x9100 ++ ETH_P_QINQ2 = 0x9200 ++ ETH_P_QINQ3 = 0x9300 ++ ETH_P_RARP = 0x8035 ++ ETH_P_SCA = 0x6007 ++ ETH_P_SLOW = 0x8809 ++ ETH_P_SNAP = 0x5 ++ ETH_P_TDLS = 0x890d ++ ETH_P_TEB = 0x6558 ++ ETH_P_TIPC = 0x88ca ++ ETH_P_TRAILER = 0x1c ++ ETH_P_TR_802_2 = 0x11 ++ ETH_P_WAN_PPP = 0x7 ++ ETH_P_WCCP = 0x883e ++ ETH_P_X25 = 0x805 ++ EXTA = 0xe ++ EXTB = 0xf ++ EXTPROC = 0x10000 ++ FALLOC_FL_COLLAPSE_RANGE = 0x8 ++ FALLOC_FL_INSERT_RANGE = 0x20 ++ FALLOC_FL_KEEP_SIZE = 0x1 ++ FALLOC_FL_NO_HIDE_STALE = 0x4 ++ FALLOC_FL_PUNCH_HOLE = 0x2 ++ FALLOC_FL_ZERO_RANGE = 0x10 ++ FD_CLOEXEC = 0x1 ++ FD_SETSIZE = 0x400 ++ FF0 = 0x0 ++ FF1 = 0x8000 ++ FFDLY = 0x8000 ++ FLUSHO = 0x1000 ++ F_DUPFD = 0x0 ++ F_DUPFD_CLOEXEC = 0x406 ++ F_EXLCK = 0x4 ++ F_GETFD = 0x1 ++ F_GETFL = 0x3 ++ F_GETLEASE = 0x401 ++ F_GETLK = 0x5 ++ F_GETLK64 = 0x5 ++ F_GETOWN = 0x9 ++ F_GETOWN_EX = 0x10 ++ F_GETPIPE_SZ = 0x408 ++ F_GETSIG = 0xb ++ F_LOCK = 0x1 ++ F_NOTIFY = 0x402 ++ F_OK = 0x0 ++ F_RDLCK = 0x0 ++ F_SETFD = 0x2 ++ F_SETFL = 0x4 ++ F_SETLEASE = 0x400 ++ F_SETLK = 0x6 ++ F_SETLK64 = 0x6 ++ F_SETLKW = 0x7 ++ F_SETLKW64 = 0x7 ++ F_SETOWN = 0x8 ++ F_SETOWN_EX = 0xf ++ F_SETPIPE_SZ = 0x407 ++ F_SETSIG = 0xa ++ F_SHLCK = 0x8 ++ F_TEST = 0x3 ++ F_TLOCK = 0x2 ++ F_ULOCK = 0x0 ++ F_UNLCK = 0x2 ++ F_WRLCK = 0x1 ++ GRND_NONBLOCK = 0x1 ++ GRND_RANDOM = 0x2 ++ HUPCL = 0x400 ++ IBSHIFT = 0x10 ++ ICANON = 0x2 ++ ICMPV6_FILTER = 0x1 ++ ICRNL = 0x100 ++ IEXTEN = 0x8000 ++ IFA_F_DADFAILED = 0x8 ++ IFA_F_DEPRECATED = 0x20 ++ IFA_F_HOMEADDRESS = 0x10 ++ IFA_F_NODAD = 0x2 ++ IFA_F_OPTIMISTIC = 0x4 ++ IFA_F_PERMANENT = 0x80 ++ IFA_F_SECONDARY = 0x1 ++ IFA_F_TEMPORARY = 0x1 ++ IFA_F_TENTATIVE = 0x40 ++ IFA_MAX = 0x7 ++ IFF_802_1Q_VLAN = 0x1 ++ IFF_ALLMULTI = 0x200 ++ IFF_AUTOMEDIA = 0x4000 ++ IFF_BONDING = 0x20 ++ IFF_BRIDGE_PORT = 0x4000 ++ IFF_BROADCAST = 0x2 ++ IFF_DEBUG = 0x4 ++ IFF_DISABLE_NETPOLL = 0x1000 ++ IFF_DONT_BRIDGE = 0x800 ++ IFF_DORMANT = 0x20000 ++ IFF_DYNAMIC = 0x8000 ++ IFF_EBRIDGE = 0x2 ++ IFF_ECHO = 0x40000 ++ IFF_ISATAP = 0x80 ++ IFF_LOOPBACK = 0x8 ++ IFF_LOWER_UP = 0x10000 ++ IFF_MACVLAN_PORT = 0x2000 ++ IFF_MASTER = 0x400 ++ IFF_MASTER_8023AD = 0x8 ++ IFF_MASTER_ALB = 0x10 ++ IFF_MASTER_ARPMON = 0x100 ++ IFF_MULTICAST = 0x1000 ++ IFF_NOARP = 0x80 ++ IFF_NOTRAILERS = 0x20 ++ IFF_NO_PI = 0x1000 ++ IFF_ONE_QUEUE = 0x2000 ++ IFF_OVS_DATAPATH = 0x8000 ++ IFF_POINTOPOINT = 0x10 ++ IFF_PORTSEL = 0x2000 ++ IFF_PROMISC = 0x100 ++ IFF_RUNNING = 0x40 ++ IFF_SLAVE = 0x800 ++ IFF_SLAVE_INACTIVE = 0x4 ++ IFF_SLAVE_NEEDARP = 0x40 ++ IFF_TAP = 0x2 ++ IFF_TUN = 0x1 ++ IFF_TUN_EXCL = 0x8000 ++ IFF_TX_SKB_SHARING = 0x10000 ++ IFF_UNICAST_FLT = 0x20000 ++ IFF_UP = 0x1 ++ IFF_VNET_HDR = 0x4000 ++ IFF_VOLATILE = 0x70c5a ++ IFF_WAN_HDLC = 0x200 ++ IFF_XMIT_DST_RELEASE = 0x400 ++ IFNAMSIZ = 0x10 ++ IGNBRK = 0x1 ++ IGNCR = 0x80 ++ IGNPAR = 0x4 ++ IMAXBEL = 0x2000 ++ INLCR = 0x40 ++ INPCK = 0x10 ++ IN_ACCESS = 0x1 ++ IN_ALL_EVENTS = 0xfff ++ IN_ATTRIB = 0x4 ++ IN_CLASSA_HOST = 0xffffff ++ IN_CLASSA_MAX = 0x80 ++ IN_CLASSA_NET = 0xff000000 ++ IN_CLASSA_NSHIFT = 0x18 ++ IN_CLASSB_HOST = 0xffff ++ IN_CLASSB_MAX = 0x10000 ++ IN_CLASSB_NET = 0xffff0000 ++ IN_CLASSB_NSHIFT = 0x10 ++ IN_CLASSC_HOST = 0xff ++ IN_CLASSC_NET = 0xffffff00 ++ IN_CLASSC_NSHIFT = 0x8 ++ IN_CLOEXEC = 0x80000 ++ IN_CLOSE = 0x18 ++ IN_CLOSE_NOWRITE = 0x10 ++ IN_CLOSE_WRITE = 0x8 ++ IN_CREATE = 0x100 ++ IN_DELETE = 0x200 ++ IN_DELETE_SELF = 0x400 ++ IN_DONT_FOLLOW = 0x2000000 ++ IN_EXCL_UNLINK = 0x4000000 ++ IN_IGNORED = 0x8000 ++ IN_ISDIR = 0x40000000 ++ IN_LOOPBACKNET = 0x7f ++ IN_MASK_ADD = 0x20000000 ++ IN_MODIFY = 0x2 ++ IN_MOVE = 0xc0 ++ IN_MOVED_FROM = 0x40 ++ IN_MOVED_TO = 0x80 ++ IN_MOVE_SELF = 0x800 ++ IN_NONBLOCK = 0x800 ++ IN_ONESHOT = 0x80000000 ++ IN_ONLYDIR = 0x1000000 ++ IN_OPEN = 0x20 ++ IN_Q_OVERFLOW = 0x4000 ++ IN_UNMOUNT = 0x2000 ++ IPPROTO_AH = 0x33 ++ IPPROTO_COMP = 0x6c ++ IPPROTO_DCCP = 0x21 ++ IPPROTO_DSTOPTS = 0x3c ++ IPPROTO_EGP = 0x8 ++ IPPROTO_ENCAP = 0x62 ++ IPPROTO_ESP = 0x32 ++ IPPROTO_FRAGMENT = 0x2c ++ IPPROTO_GRE = 0x2f ++ IPPROTO_HOPOPTS = 0x0 ++ IPPROTO_ICMP = 0x1 ++ IPPROTO_ICMPV6 = 0x3a ++ IPPROTO_IDP = 0x16 ++ IPPROTO_IGMP = 0x2 ++ IPPROTO_IP = 0x0 ++ IPPROTO_IPIP = 0x4 ++ IPPROTO_IPV6 = 0x29 ++ IPPROTO_MTP = 0x5c ++ IPPROTO_NONE = 0x3b ++ IPPROTO_PIM = 0x67 ++ IPPROTO_PUP = 0xc ++ IPPROTO_RAW = 0xff ++ IPPROTO_ROUTING = 0x2b ++ IPPROTO_RSVP = 0x2e ++ IPPROTO_SCTP = 0x84 ++ IPPROTO_TCP = 0x6 ++ IPPROTO_TP = 0x1d ++ IPPROTO_UDP = 0x11 ++ IPPROTO_UDPLITE = 0x88 ++ IPV6_2292DSTOPTS = 0x4 ++ IPV6_2292HOPLIMIT = 0x8 ++ IPV6_2292HOPOPTS = 0x3 ++ IPV6_2292PKTINFO = 0x2 ++ IPV6_2292PKTOPTIONS = 0x6 ++ IPV6_2292RTHDR = 0x5 ++ IPV6_ADDRFORM = 0x1 ++ IPV6_ADD_MEMBERSHIP = 0x14 ++ IPV6_AUTHHDR = 0xa ++ IPV6_CHECKSUM = 0x7 ++ IPV6_DROP_MEMBERSHIP = 0x15 ++ IPV6_DSTOPTS = 0x3b ++ IPV6_HOPLIMIT = 0x34 ++ IPV6_HOPOPTS = 0x36 ++ IPV6_IPSEC_POLICY = 0x22 ++ IPV6_JOIN_ANYCAST = 0x1b ++ IPV6_JOIN_GROUP = 0x14 ++ IPV6_LEAVE_ANYCAST = 0x1c ++ IPV6_LEAVE_GROUP = 0x15 ++ IPV6_MTU = 0x18 ++ IPV6_MTU_DISCOVER = 0x17 ++ IPV6_MULTICAST_HOPS = 0x12 ++ IPV6_MULTICAST_IF = 0x11 ++ IPV6_MULTICAST_LOOP = 0x13 ++ IPV6_NEXTHOP = 0x9 ++ IPV6_PKTINFO = 0x32 ++ IPV6_PMTUDISC_DO = 0x2 ++ IPV6_PMTUDISC_DONT = 0x0 ++ IPV6_PMTUDISC_PROBE = 0x3 ++ IPV6_PMTUDISC_WANT = 0x1 ++ IPV6_RECVDSTOPTS = 0x3a ++ IPV6_RECVERR = 0x19 ++ IPV6_RECVHOPLIMIT = 0x33 ++ IPV6_RECVHOPOPTS = 0x35 ++ IPV6_RECVPKTINFO = 0x31 ++ IPV6_RECVRTHDR = 0x38 ++ IPV6_RECVTCLASS = 0x42 ++ IPV6_ROUTER_ALERT = 0x16 ++ IPV6_RTHDR = 0x39 ++ IPV6_RTHDRDSTOPTS = 0x37 ++ IPV6_RTHDR_LOOSE = 0x0 ++ IPV6_RTHDR_STRICT = 0x1 ++ IPV6_RTHDR_TYPE_0 = 0x0 ++ IPV6_RXDSTOPTS = 0x3b ++ IPV6_RXHOPOPTS = 0x36 ++ IPV6_TCLASS = 0x43 ++ IPV6_UNICAST_HOPS = 0x10 ++ IPV6_V6ONLY = 0x1a ++ IPV6_XFRM_POLICY = 0x23 ++ IP_ADD_MEMBERSHIP = 0x23 ++ IP_ADD_SOURCE_MEMBERSHIP = 0x27 ++ IP_BLOCK_SOURCE = 0x26 ++ IP_DEFAULT_MULTICAST_LOOP = 0x1 ++ IP_DEFAULT_MULTICAST_TTL = 0x1 ++ IP_DF = 0x4000 ++ IP_DROP_MEMBERSHIP = 0x24 ++ IP_DROP_SOURCE_MEMBERSHIP = 0x28 ++ IP_FREEBIND = 0xf ++ IP_HDRINCL = 0x3 ++ IP_IPSEC_POLICY = 0x10 ++ IP_MAXPACKET = 0xffff ++ IP_MAX_MEMBERSHIPS = 0x14 ++ IP_MF = 0x2000 ++ IP_MINTTL = 0x15 ++ IP_MSFILTER = 0x29 ++ IP_MSS = 0x240 ++ IP_MTU = 0xe ++ IP_MTU_DISCOVER = 0xa ++ IP_MULTICAST_ALL = 0x31 ++ IP_MULTICAST_IF = 0x20 ++ IP_MULTICAST_LOOP = 0x22 ++ IP_MULTICAST_TTL = 0x21 ++ IP_OFFMASK = 0x1fff ++ IP_OPTIONS = 0x4 ++ IP_ORIGDSTADDR = 0x14 ++ IP_PASSSEC = 0x12 ++ IP_PKTINFO = 0x8 ++ IP_PKTOPTIONS = 0x9 ++ IP_PMTUDISC = 0xa ++ IP_PMTUDISC_DO = 0x2 ++ IP_PMTUDISC_DONT = 0x0 ++ IP_PMTUDISC_PROBE = 0x3 ++ IP_PMTUDISC_WANT = 0x1 ++ IP_RECVERR = 0xb ++ IP_RECVOPTS = 0x6 ++ IP_RECVORIGDSTADDR = 0x14 ++ IP_RECVRETOPTS = 0x7 ++ IP_RECVTOS = 0xd ++ IP_RECVTTL = 0xc ++ IP_RETOPTS = 0x7 ++ IP_RF = 0x8000 ++ IP_ROUTER_ALERT = 0x5 ++ IP_TOS = 0x1 ++ IP_TRANSPARENT = 0x13 ++ IP_TTL = 0x2 ++ IP_UNBLOCK_SOURCE = 0x25 ++ IP_XFRM_POLICY = 0x11 ++ ISIG = 0x1 ++ ISTRIP = 0x20 ++ IUCLC = 0x200 ++ IUTF8 = 0x4000 ++ IXANY = 0x800 ++ IXOFF = 0x1000 ++ IXON = 0x400 ++ LINUX_REBOOT_CMD_CAD_OFF = 0x0 ++ LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef ++ LINUX_REBOOT_CMD_HALT = 0xcdef0123 ++ LINUX_REBOOT_CMD_KEXEC = 0x45584543 ++ LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc ++ LINUX_REBOOT_CMD_RESTART = 0x1234567 ++ LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 ++ LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 ++ LINUX_REBOOT_MAGIC1 = 0xfee1dead ++ LINUX_REBOOT_MAGIC2 = 0x28121969 ++ LOCK_EX = 0x2 ++ LOCK_NB = 0x4 ++ LOCK_SH = 0x1 ++ LOCK_UN = 0x8 ++ MADV_DOFORK = 0xb ++ MADV_DONTFORK = 0xa ++ MADV_DONTNEED = 0x4 ++ MADV_HUGEPAGE = 0xe ++ MADV_HWPOISON = 0x64 ++ MADV_MERGEABLE = 0xc ++ MADV_NOHUGEPAGE = 0xf ++ MADV_NORMAL = 0x0 ++ MADV_RANDOM = 0x1 ++ MADV_REMOVE = 0x9 ++ MADV_SEQUENTIAL = 0x2 ++ MADV_UNMERGEABLE = 0xd ++ MADV_WILLNEED = 0x3 ++ MAP_32BIT = 0x40 ++ MAP_ANON = 0x20 ++ MAP_ANONYMOUS = 0x20 ++ MAP_DENYWRITE = 0x800 ++ MAP_EXECUTABLE = 0x1000 ++ MAP_FILE = 0x0 ++ MAP_FIXED = 0x10 ++ MAP_GROWSDOWN = 0x100 ++ MAP_HUGETLB = 0x40000 ++ MAP_LOCKED = 0x2000 ++ MAP_NONBLOCK = 0x10000 ++ MAP_NORESERVE = 0x4000 ++ MAP_POPULATE = 0x8000 ++ MAP_PRIVATE = 0x2 ++ MAP_SHARED = 0x1 ++ MAP_STACK = 0x20000 ++ MAP_TYPE = 0xf ++ MCL_CURRENT = 0x1 ++ MCL_FUTURE = 0x2 ++ MNT_DETACH = 0x2 ++ MNT_EXPIRE = 0x4 ++ MNT_FORCE = 0x1 ++ MSG_CMSG_CLOEXEC = 0x40000000 ++ MSG_CONFIRM = 0x800 ++ MSG_CTRUNC = 0x8 ++ MSG_DONTROUTE = 0x4 ++ MSG_DONTWAIT = 0x40 ++ MSG_EOR = 0x80 ++ MSG_ERRQUEUE = 0x2000 ++ MSG_FASTOPEN = 0x20000000 ++ MSG_FIN = 0x200 ++ MSG_MORE = 0x8000 ++ MSG_NOSIGNAL = 0x4000 ++ MSG_OOB = 0x1 ++ MSG_PEEK = 0x2 ++ MSG_PROXY = 0x10 ++ MSG_RST = 0x1000 ++ MSG_SYN = 0x400 ++ MSG_TRUNC = 0x20 ++ MSG_TRYHARD = 0x4 ++ MSG_WAITALL = 0x100 ++ MSG_WAITFORONE = 0x10000 ++ MS_ACTIVE = 0x40000000 ++ MS_ASYNC = 0x1 ++ MS_BIND = 0x1000 ++ MS_DIRSYNC = 0x80 ++ MS_INVALIDATE = 0x2 ++ MS_I_VERSION = 0x800000 ++ MS_KERNMOUNT = 0x400000 ++ MS_MANDLOCK = 0x40 ++ MS_MGC_MSK = 0xffff0000 ++ MS_MGC_VAL = 0xc0ed0000 ++ MS_MOVE = 0x2000 ++ MS_NOATIME = 0x400 ++ MS_NODEV = 0x4 ++ MS_NODIRATIME = 0x800 ++ MS_NOEXEC = 0x8 ++ MS_NOSUID = 0x2 ++ MS_NOUSER = -0x80000000 ++ MS_POSIXACL = 0x10000 ++ MS_PRIVATE = 0x40000 ++ MS_RDONLY = 0x1 ++ MS_REC = 0x4000 ++ MS_RELATIME = 0x200000 ++ MS_REMOUNT = 0x20 ++ MS_RMT_MASK = 0x800051 ++ MS_SHARED = 0x100000 ++ MS_SILENT = 0x8000 ++ MS_SLAVE = 0x80000 ++ MS_STRICTATIME = 0x1000000 ++ MS_SYNC = 0x4 ++ MS_SYNCHRONOUS = 0x10 ++ MS_UNBINDABLE = 0x20000 ++ NAME_MAX = 0xff ++ NETLINK_ADD_MEMBERSHIP = 0x1 ++ NETLINK_AUDIT = 0x9 ++ NETLINK_BROADCAST_ERROR = 0x4 ++ NETLINK_CAP_ACK = 0xa ++ NETLINK_CONNECTOR = 0xb ++ NETLINK_CRYPTO = 0x15 ++ NETLINK_DNRTMSG = 0xe ++ NETLINK_DROP_MEMBERSHIP = 0x2 ++ NETLINK_ECRYPTFS = 0x13 ++ NETLINK_FIB_LOOKUP = 0xa ++ NETLINK_FIREWALL = 0x3 ++ NETLINK_GENERIC = 0x10 ++ NETLINK_INET_DIAG = 0x4 ++ NETLINK_IP6_FW = 0xd ++ NETLINK_ISCSI = 0x8 ++ NETLINK_KOBJECT_UEVENT = 0xf ++ NETLINK_LISTEN_ALL_NSID = 0x8 ++ NETLINK_LIST_MEMBERSHIPS = 0x9 ++ NETLINK_NETFILTER = 0xc ++ NETLINK_NFLOG = 0x5 ++ NETLINK_NO_ENOBUFS = 0x5 ++ NETLINK_PKTINFO = 0x3 ++ NETLINK_RDMA = 0x14 ++ NETLINK_ROUTE = 0x0 ++ NETLINK_RX_RING = 0x6 ++ NETLINK_SCSITRANSPORT = 0x12 ++ NETLINK_SELINUX = 0x7 ++ NETLINK_SOCK_DIAG = 0x4 ++ NETLINK_TX_RING = 0x7 ++ NETLINK_UNUSED = 0x1 ++ NETLINK_USERSOCK = 0x2 ++ NETLINK_XFRM = 0x6 ++ NL0 = 0x0 ++ NL1 = 0x100 ++ NLA_ALIGNTO = 0x4 ++ NLA_F_NESTED = 0x8000 ++ NLA_F_NET_BYTEORDER = 0x4000 ++ NLA_HDRLEN = 0x4 ++ NLDLY = 0x100 ++ NLMSG_ALIGNTO = 0x4 ++ NLMSG_DONE = 0x3 ++ NLMSG_ERROR = 0x2 ++ NLMSG_HDRLEN = 0x10 ++ NLMSG_MIN_TYPE = 0x10 ++ NLMSG_NOOP = 0x1 ++ NLMSG_OVERRUN = 0x4 ++ NLM_F_ACK = 0x4 ++ NLM_F_APPEND = 0x800 ++ NLM_F_ATOMIC = 0x400 ++ NLM_F_CREATE = 0x400 ++ NLM_F_DUMP = 0x300 ++ NLM_F_DUMP_FILTERED = 0x20 ++ NLM_F_DUMP_INTR = 0x10 ++ NLM_F_ECHO = 0x8 ++ NLM_F_EXCL = 0x200 ++ NLM_F_MATCH = 0x200 ++ NLM_F_MULTI = 0x2 ++ NLM_F_REPLACE = 0x100 ++ NLM_F_REQUEST = 0x1 ++ NLM_F_ROOT = 0x100 ++ NOFLSH = 0x80 ++ OCRNL = 0x8 ++ OFDEL = 0x80 ++ OFILL = 0x40 ++ OLCUC = 0x2 ++ ONLCR = 0x4 ++ ONLRET = 0x20 ++ ONOCR = 0x10 ++ OPOST = 0x1 ++ O_ACCMODE = 0x3 ++ O_APPEND = 0x400 ++ O_ASYNC = 0x2000 ++ O_CLOEXEC = 0x80000 ++ O_CREAT = 0x40 ++ O_DIRECT = 0x4000 ++ O_DIRECTORY = 0x10000 ++ O_DSYNC = 0x1000 ++ O_EXCL = 0x80 ++ O_FSYNC = 0x101000 ++ O_LARGEFILE = 0x0 ++ O_NDELAY = 0x800 ++ O_NOATIME = 0x40000 ++ O_NOCTTY = 0x100 ++ O_NOFOLLOW = 0x20000 ++ O_NONBLOCK = 0x800 ++ O_PATH = 0x200000 ++ O_RDONLY = 0x0 ++ O_RDWR = 0x2 ++ O_RSYNC = 0x101000 ++ O_SYNC = 0x101000 ++ O_TMPFILE = 0x410000 ++ O_TRUNC = 0x200 ++ O_WRONLY = 0x1 ++ PACKET_ADD_MEMBERSHIP = 0x1 ++ PACKET_AUXDATA = 0x8 ++ PACKET_BROADCAST = 0x1 ++ PACKET_COPY_THRESH = 0x7 ++ PACKET_DROP_MEMBERSHIP = 0x2 ++ PACKET_FANOUT = 0x12 ++ PACKET_FANOUT_CPU = 0x2 ++ PACKET_FANOUT_FLAG_DEFRAG = 0x8000 ++ PACKET_FANOUT_HASH = 0x0 ++ PACKET_FANOUT_LB = 0x1 ++ PACKET_FASTROUTE = 0x6 ++ PACKET_HDRLEN = 0xb ++ PACKET_HOST = 0x0 ++ PACKET_LOOPBACK = 0x5 ++ PACKET_LOSS = 0xe ++ PACKET_MR_ALLMULTI = 0x2 ++ PACKET_MR_MULTICAST = 0x0 ++ PACKET_MR_PROMISC = 0x1 ++ PACKET_MR_UNICAST = 0x3 ++ PACKET_MULTICAST = 0x2 ++ PACKET_ORIGDEV = 0x9 ++ PACKET_OTHERHOST = 0x3 ++ PACKET_OUTGOING = 0x4 ++ PACKET_RECV_OUTPUT = 0x3 ++ PACKET_RESERVE = 0xc ++ PACKET_RX_RING = 0x5 ++ PACKET_STATISTICS = 0x6 ++ PACKET_TIMESTAMP = 0x11 ++ PACKET_TX_RING = 0xd ++ PACKET_TX_TIMESTAMP = 0x10 ++ PACKET_VERSION = 0xa ++ PACKET_VNET_HDR = 0xf ++ PARENB = 0x100 ++ PARITY_CRC16_PR0 = 0x2 ++ PARITY_CRC16_PR0_CCITT = 0x4 ++ PARITY_CRC16_PR1 = 0x3 ++ PARITY_CRC16_PR1_CCITT = 0x5 ++ PARITY_CRC32_PR0_CCITT = 0x6 ++ PARITY_CRC32_PR1_CCITT = 0x7 ++ PARITY_DEFAULT = 0x0 ++ PARITY_NONE = 0x1 ++ PARMRK = 0x8 ++ PARODD = 0x200 ++ PENDIN = 0x4000 ++ PRIO_PGRP = 0x1 ++ PRIO_PROCESS = 0x0 ++ PRIO_USER = 0x2 ++ PROT_EXEC = 0x4 ++ PROT_GROWSDOWN = 0x1000000 ++ PROT_GROWSUP = 0x2000000 ++ PROT_NONE = 0x0 ++ PROT_READ = 0x1 ++ PROT_WRITE = 0x2 ++ PR_CAPBSET_DROP = 0x18 ++ PR_CAPBSET_READ = 0x17 ++ PR_ENDIAN_BIG = 0x0 ++ PR_ENDIAN_LITTLE = 0x1 ++ PR_ENDIAN_PPC_LITTLE = 0x2 ++ PR_FPEMU_NOPRINT = 0x1 ++ PR_FPEMU_SIGFPE = 0x2 ++ PR_FP_EXC_ASYNC = 0x2 ++ PR_FP_EXC_DISABLED = 0x0 ++ PR_FP_EXC_DIV = 0x10000 ++ PR_FP_EXC_INV = 0x100000 ++ PR_FP_EXC_NONRECOV = 0x1 ++ PR_FP_EXC_OVF = 0x20000 ++ PR_FP_EXC_PRECISE = 0x3 ++ PR_FP_EXC_RES = 0x80000 ++ PR_FP_EXC_SW_ENABLE = 0x80 ++ PR_FP_EXC_UND = 0x40000 ++ PR_GET_DUMPABLE = 0x3 ++ PR_GET_ENDIAN = 0x13 ++ PR_GET_FPEMU = 0x9 ++ PR_GET_FPEXC = 0xb ++ PR_GET_KEEPCAPS = 0x7 ++ PR_GET_NAME = 0x10 ++ PR_GET_NO_NEW_PRIVS = 0x27 ++ PR_GET_PDEATHSIG = 0x2 ++ PR_GET_SECCOMP = 0x15 ++ PR_GET_SECUREBITS = 0x1b ++ PR_GET_TIMERSLACK = 0x1e ++ PR_GET_TIMING = 0xd ++ PR_GET_TSC = 0x19 ++ PR_GET_UNALIGN = 0x5 ++ PR_MCE_KILL = 0x21 ++ PR_MCE_KILL_CLEAR = 0x0 ++ PR_MCE_KILL_DEFAULT = 0x2 ++ PR_MCE_KILL_EARLY = 0x1 ++ PR_MCE_KILL_GET = 0x22 ++ PR_MCE_KILL_LATE = 0x0 ++ PR_MCE_KILL_SET = 0x1 ++ PR_SET_DUMPABLE = 0x4 ++ PR_SET_ENDIAN = 0x14 ++ PR_SET_FPEMU = 0xa ++ PR_SET_FPEXC = 0xc ++ PR_SET_KEEPCAPS = 0x8 ++ PR_SET_MM = 0x23 ++ PR_SET_MM_BRK = 0x7 ++ PR_SET_MM_END_CODE = 0x2 ++ PR_SET_MM_END_DATA = 0x4 ++ PR_SET_MM_START_BRK = 0x6 ++ PR_SET_MM_START_CODE = 0x1 ++ PR_SET_MM_START_DATA = 0x3 ++ PR_SET_MM_START_STACK = 0x5 ++ PR_SET_NAME = 0xf ++ PR_SET_NO_NEW_PRIVS = 0x26 ++ PR_SET_PDEATHSIG = 0x1 ++ PR_SET_PTRACER = 0x59616d61 ++ PR_SET_PTRACER_ANY = -0x1 ++ PR_SET_SECCOMP = 0x16 ++ PR_SET_SECUREBITS = 0x1c ++ PR_SET_TIMERSLACK = 0x1d ++ PR_SET_TIMING = 0xe ++ PR_SET_TSC = 0x1a ++ PR_SET_UNALIGN = 0x6 ++ PR_TASK_PERF_EVENTS_DISABLE = 0x1f ++ PR_TASK_PERF_EVENTS_ENABLE = 0x20 ++ PR_TIMING_STATISTICAL = 0x0 ++ PR_TIMING_TIMESTAMP = 0x1 ++ PR_TSC_ENABLE = 0x1 ++ PR_TSC_SIGSEGV = 0x2 ++ PR_UNALIGN_NOPRINT = 0x1 ++ PR_UNALIGN_SIGBUS = 0x2 ++ PTRACE_ARCH_PRCTL = 0x1e ++ PTRACE_ATTACH = 0x10 ++ PTRACE_CONT = 0x7 ++ PTRACE_DETACH = 0x11 ++ PTRACE_EVENT_CLONE = 0x3 ++ PTRACE_EVENT_EXEC = 0x4 ++ PTRACE_EVENT_EXIT = 0x6 ++ PTRACE_EVENT_FORK = 0x1 ++ PTRACE_EVENT_SECCOMP = 0x7 ++ PTRACE_EVENT_STOP = 0x80 ++ PTRACE_EVENT_VFORK = 0x2 ++ PTRACE_EVENT_VFORK_DONE = 0x5 ++ PTRACE_GETEVENTMSG = 0x4201 ++ PTRACE_GETFPREGS = 0xe ++ PTRACE_GETFPXREGS = 0x12 ++ PTRACE_GETREGS = 0xc ++ PTRACE_GETREGSET = 0x4204 ++ PTRACE_GETSIGINFO = 0x4202 ++ PTRACE_GET_THREAD_AREA = 0x19 ++ PTRACE_INTERRUPT = 0x4207 ++ PTRACE_KILL = 0x8 ++ PTRACE_LISTEN = 0x4208 ++ PTRACE_OLDSETOPTIONS = 0x15 ++ PTRACE_O_MASK = 0xff ++ PTRACE_O_TRACECLONE = 0x8 ++ PTRACE_O_TRACEEXEC = 0x10 ++ PTRACE_O_TRACEEXIT = 0x40 ++ PTRACE_O_TRACEFORK = 0x2 ++ PTRACE_O_TRACESECCOMP = 0x80 ++ PTRACE_O_TRACESYSGOOD = 0x1 ++ PTRACE_O_TRACEVFORK = 0x4 ++ PTRACE_O_TRACEVFORKDONE = 0x20 ++ PTRACE_PEEKDATA = 0x2 ++ PTRACE_PEEKTEXT = 0x1 ++ PTRACE_PEEKUSR = 0x3 ++ PTRACE_POKEDATA = 0x5 ++ PTRACE_POKETEXT = 0x4 ++ PTRACE_POKEUSR = 0x6 ++ PTRACE_SEIZE = 0x4206 ++ PTRACE_SEIZE_DEVEL = 0x80000000 ++ PTRACE_SETFPREGS = 0xf ++ PTRACE_SETFPXREGS = 0x13 ++ PTRACE_SETOPTIONS = 0x4200 ++ PTRACE_SETREGS = 0xd ++ PTRACE_SETREGSET = 0x4205 ++ PTRACE_SETSIGINFO = 0x4203 ++ PTRACE_SET_THREAD_AREA = 0x1a ++ PTRACE_SINGLEBLOCK = 0x21 ++ PTRACE_SINGLESTEP = 0x9 ++ PTRACE_SYSCALL = 0x18 ++ PTRACE_SYSEMU = 0x1f ++ PTRACE_SYSEMU_SINGLESTEP = 0x20 ++ PTRACE_TRACEME = 0x0 ++ RLIMIT_AS = 0x9 ++ RLIMIT_CORE = 0x4 ++ RLIMIT_CPU = 0x0 ++ RLIMIT_DATA = 0x2 ++ RLIMIT_FSIZE = 0x1 ++ RLIMIT_NOFILE = 0x7 ++ RLIMIT_STACK = 0x3 ++ RLIM_INFINITY = -0x1 ++ RTAX_ADVMSS = 0x8 ++ RTAX_CWND = 0x7 ++ RTAX_FEATURES = 0xc ++ RTAX_FEATURE_ALLFRAG = 0x8 ++ RTAX_FEATURE_ECN = 0x1 ++ RTAX_FEATURE_SACK = 0x2 ++ RTAX_FEATURE_TIMESTAMP = 0x4 ++ RTAX_HOPLIMIT = 0xa ++ RTAX_INITCWND = 0xb ++ RTAX_INITRWND = 0xe ++ RTAX_LOCK = 0x1 ++ RTAX_MAX = 0xe ++ RTAX_MTU = 0x2 ++ RTAX_REORDERING = 0x9 ++ RTAX_RTO_MIN = 0xd ++ RTAX_RTT = 0x4 ++ RTAX_RTTVAR = 0x5 ++ RTAX_SSTHRESH = 0x6 ++ RTAX_UNSPEC = 0x0 ++ RTAX_WINDOW = 0x3 ++ RTA_ALIGNTO = 0x4 ++ RTA_MAX = 0x10 ++ RTCF_DIRECTSRC = 0x4000000 ++ RTCF_DOREDIRECT = 0x1000000 ++ RTCF_LOG = 0x2000000 ++ RTCF_MASQ = 0x400000 ++ RTCF_NAT = 0x800000 ++ RTCF_VALVE = 0x200000 ++ RTF_ADDRCLASSMASK = 0xf8000000 ++ RTF_ADDRCONF = 0x40000 ++ RTF_ALLONLINK = 0x20000 ++ RTF_BROADCAST = 0x10000000 ++ RTF_CACHE = 0x1000000 ++ RTF_DEFAULT = 0x10000 ++ RTF_DYNAMIC = 0x10 ++ RTF_FLOW = 0x2000000 ++ RTF_GATEWAY = 0x2 ++ RTF_HOST = 0x4 ++ RTF_INTERFACE = 0x40000000 ++ RTF_IRTT = 0x100 ++ RTF_LINKRT = 0x100000 ++ RTF_LOCAL = 0x80000000 ++ RTF_MODIFIED = 0x20 ++ RTF_MSS = 0x40 ++ RTF_MTU = 0x40 ++ RTF_MULTICAST = 0x20000000 ++ RTF_NAT = 0x8000000 ++ RTF_NOFORWARD = 0x1000 ++ RTF_NONEXTHOP = 0x200000 ++ RTF_NOPMTUDISC = 0x4000 ++ RTF_POLICY = 0x4000000 ++ RTF_REINSTATE = 0x8 ++ RTF_REJECT = 0x200 ++ RTF_STATIC = 0x400 ++ RTF_THROW = 0x2000 ++ RTF_UP = 0x1 ++ RTF_WINDOW = 0x80 ++ RTF_XRESOLVE = 0x800 ++ RTM_BASE = 0x10 ++ RTM_DELACTION = 0x31 ++ RTM_DELADDR = 0x15 ++ RTM_DELADDRLABEL = 0x49 ++ RTM_DELLINK = 0x11 ++ RTM_DELNEIGH = 0x1d ++ RTM_DELQDISC = 0x25 ++ RTM_DELROUTE = 0x19 ++ RTM_DELRULE = 0x21 ++ RTM_DELTCLASS = 0x29 ++ RTM_DELTFILTER = 0x2d ++ RTM_F_CLONED = 0x200 ++ RTM_F_EQUALIZE = 0x400 ++ RTM_F_NOTIFY = 0x100 ++ RTM_F_PREFIX = 0x800 ++ RTM_GETACTION = 0x32 ++ RTM_GETADDR = 0x16 ++ RTM_GETADDRLABEL = 0x4a ++ RTM_GETANYCAST = 0x3e ++ RTM_GETDCB = 0x4e ++ RTM_GETLINK = 0x12 ++ RTM_GETMULTICAST = 0x3a ++ RTM_GETNEIGH = 0x1e ++ RTM_GETNEIGHTBL = 0x42 ++ RTM_GETQDISC = 0x26 ++ RTM_GETROUTE = 0x1a ++ RTM_GETRULE = 0x22 ++ RTM_GETTCLASS = 0x2a ++ RTM_GETTFILTER = 0x2e ++ RTM_MAX = 0x4f ++ RTM_NEWACTION = 0x30 ++ RTM_NEWADDR = 0x14 ++ RTM_NEWADDRLABEL = 0x48 ++ RTM_NEWLINK = 0x10 ++ RTM_NEWNDUSEROPT = 0x44 ++ RTM_NEWNEIGH = 0x1c ++ RTM_NEWNEIGHTBL = 0x40 ++ RTM_NEWPREFIX = 0x34 ++ RTM_NEWQDISC = 0x24 ++ RTM_NEWROUTE = 0x18 ++ RTM_NEWRULE = 0x20 ++ RTM_NEWTCLASS = 0x28 ++ RTM_NEWTFILTER = 0x2c ++ RTM_NR_FAMILIES = 0x10 ++ RTM_NR_MSGTYPES = 0x40 ++ RTM_SETDCB = 0x4f ++ RTM_SETLINK = 0x13 ++ RTM_SETNEIGHTBL = 0x43 ++ RTNH_ALIGNTO = 0x4 ++ RTNH_F_DEAD = 0x1 ++ RTNH_F_ONLINK = 0x4 ++ RTNH_F_PERVASIVE = 0x2 ++ RTN_MAX = 0xb ++ RTPROT_BIRD = 0xc ++ RTPROT_BOOT = 0x3 ++ RTPROT_DHCP = 0x10 ++ RTPROT_DNROUTED = 0xd ++ RTPROT_GATED = 0x8 ++ RTPROT_KERNEL = 0x2 ++ RTPROT_MRT = 0xa ++ RTPROT_NTK = 0xf ++ RTPROT_RA = 0x9 ++ RTPROT_REDIRECT = 0x1 ++ RTPROT_STATIC = 0x4 ++ RTPROT_UNSPEC = 0x0 ++ RTPROT_XORP = 0xe ++ RTPROT_ZEBRA = 0xb ++ RT_CLASS_DEFAULT = 0xfd ++ RT_CLASS_LOCAL = 0xff ++ RT_CLASS_MAIN = 0xfe ++ RT_CLASS_MAX = 0xff ++ RT_CLASS_UNSPEC = 0x0 ++ RUSAGE_CHILDREN = -0x1 ++ RUSAGE_SELF = 0x0 ++ RUSAGE_THREAD = 0x1 ++ SCM_CREDENTIALS = 0x2 ++ SCM_RIGHTS = 0x1 ++ SCM_TIMESTAMP = 0x1d ++ SCM_TIMESTAMPING = 0x25 ++ SCM_TIMESTAMPNS = 0x23 ++ SHUT_RD = 0x0 ++ SHUT_RDWR = 0x2 ++ SHUT_WR = 0x1 ++ SIOCADDDLCI = 0x8980 ++ SIOCADDMULTI = 0x8931 ++ SIOCADDRT = 0x890b ++ SIOCATMARK = 0x8905 ++ SIOCDARP = 0x8953 ++ SIOCDELDLCI = 0x8981 ++ SIOCDELMULTI = 0x8932 ++ SIOCDELRT = 0x890c ++ SIOCDEVPRIVATE = 0x89f0 ++ SIOCDIFADDR = 0x8936 ++ SIOCDRARP = 0x8960 ++ SIOCGARP = 0x8954 ++ SIOCGIFADDR = 0x8915 ++ SIOCGIFBR = 0x8940 ++ SIOCGIFBRDADDR = 0x8919 ++ SIOCGIFCONF = 0x8912 ++ SIOCGIFCOUNT = 0x8938 ++ SIOCGIFDSTADDR = 0x8917 ++ SIOCGIFENCAP = 0x8925 ++ SIOCGIFFLAGS = 0x8913 ++ SIOCGIFHWADDR = 0x8927 ++ SIOCGIFINDEX = 0x8933 ++ SIOCGIFMAP = 0x8970 ++ SIOCGIFMEM = 0x891f ++ SIOCGIFMETRIC = 0x891d ++ SIOCGIFMTU = 0x8921 ++ SIOCGIFNAME = 0x8910 ++ SIOCGIFNETMASK = 0x891b ++ SIOCGIFPFLAGS = 0x8935 ++ SIOCGIFSLAVE = 0x8929 ++ SIOCGIFTXQLEN = 0x8942 ++ SIOCGPGRP = 0x8904 ++ SIOCGRARP = 0x8961 ++ SIOCGSTAMP = 0x8906 ++ SIOCGSTAMPNS = 0x8907 ++ SIOCPROTOPRIVATE = 0x89e0 ++ SIOCRTMSG = 0x890d ++ SIOCSARP = 0x8955 ++ SIOCSIFADDR = 0x8916 ++ SIOCSIFBR = 0x8941 ++ SIOCSIFBRDADDR = 0x891a ++ SIOCSIFDSTADDR = 0x8918 ++ SIOCSIFENCAP = 0x8926 ++ SIOCSIFFLAGS = 0x8914 ++ SIOCSIFHWADDR = 0x8924 ++ SIOCSIFHWBROADCAST = 0x8937 ++ SIOCSIFLINK = 0x8911 ++ SIOCSIFMAP = 0x8971 ++ SIOCSIFMEM = 0x8920 ++ SIOCSIFMETRIC = 0x891e ++ SIOCSIFMTU = 0x8922 ++ SIOCSIFNAME = 0x8923 ++ SIOCSIFNETMASK = 0x891c ++ SIOCSIFPFLAGS = 0x8934 ++ SIOCSIFSLAVE = 0x8930 ++ SIOCSIFTXQLEN = 0x8943 ++ SIOCSPGRP = 0x8902 ++ SIOCSRARP = 0x8962 ++ SOCK_CLOEXEC = 0x80000 ++ SOCK_DCCP = 0x6 ++ SOCK_DGRAM = 0x2 ++ SOCK_NONBLOCK = 0x800 ++ SOCK_PACKET = 0xa ++ SOCK_RAW = 0x3 ++ SOCK_RDM = 0x4 ++ SOCK_SEQPACKET = 0x5 ++ SOCK_STREAM = 0x1 ++ SOL_AAL = 0x109 ++ SOL_ATM = 0x108 ++ SOL_DECNET = 0x105 ++ SOL_ICMPV6 = 0x3a ++ SOL_IP = 0x0 ++ SOL_IPV6 = 0x29 ++ SOL_IRDA = 0x10a ++ SOL_NETLINK = 0x10e ++ SOL_PACKET = 0x107 ++ SOL_RAW = 0xff ++ SOL_SOCKET = 0x1 ++ SOL_TCP = 0x6 ++ SOL_X25 = 0x106 ++ SOMAXCONN = 0x80 ++ SO_ACCEPTCONN = 0x1e ++ SO_ATTACH_FILTER = 0x1a ++ SO_BINDTODEVICE = 0x19 ++ SO_BROADCAST = 0x6 ++ SO_BSDCOMPAT = 0xe ++ SO_DEBUG = 0x1 ++ SO_DETACH_FILTER = 0x1b ++ SO_DOMAIN = 0x27 ++ SO_DONTROUTE = 0x5 ++ SO_ERROR = 0x4 ++ SO_KEEPALIVE = 0x9 ++ SO_LINGER = 0xd ++ SO_MARK = 0x24 ++ SO_NO_CHECK = 0xb ++ SO_OOBINLINE = 0xa ++ SO_PASSCRED = 0x10 ++ SO_PASSSEC = 0x22 ++ SO_PEERCRED = 0x11 ++ SO_PEERNAME = 0x1c ++ SO_PEERSEC = 0x1f ++ SO_PRIORITY = 0xc ++ SO_PROTOCOL = 0x26 ++ SO_RCVBUF = 0x8 ++ SO_RCVBUFFORCE = 0x21 ++ SO_RCVLOWAT = 0x12 ++ SO_RCVTIMEO = 0x14 ++ SO_REUSEADDR = 0x2 ++ SO_RXQ_OVFL = 0x28 ++ SO_SECURITY_AUTHENTICATION = 0x16 ++ SO_SECURITY_ENCRYPTION_NETWORK = 0x18 ++ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 ++ SO_SNDBUF = 0x7 ++ SO_SNDBUFFORCE = 0x20 ++ SO_SNDLOWAT = 0x13 ++ SO_SNDTIMEO = 0x15 ++ SO_TIMESTAMP = 0x1d ++ SO_TIMESTAMPING = 0x25 ++ SO_TIMESTAMPNS = 0x23 ++ SO_TYPE = 0x3 ++ SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 ++ SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 ++ SO_VM_SOCKETS_BUFFER_SIZE = 0x0 ++ SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 ++ SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 ++ SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 ++ SO_VM_SOCKETS_TRUSTED = 0x5 ++ SPLICE_F_GIFT = 0x8 ++ SPLICE_F_MORE = 0x4 ++ SPLICE_F_MOVE = 0x1 ++ SPLICE_F_NONBLOCK = 0x2 ++ S_BLKSIZE = 0x200 ++ S_IEXEC = 0x40 ++ S_IFBLK = 0x6000 ++ S_IFCHR = 0x2000 ++ S_IFDIR = 0x4000 ++ S_IFIFO = 0x1000 ++ S_IFLNK = 0xa000 ++ S_IFMT = 0xf000 ++ S_IFREG = 0x8000 ++ S_IFSOCK = 0xc000 ++ S_IREAD = 0x100 ++ S_IRGRP = 0x20 ++ S_IROTH = 0x4 ++ S_IRUSR = 0x100 ++ S_IRWXG = 0x38 ++ S_IRWXO = 0x7 ++ S_IRWXU = 0x1c0 ++ S_ISGID = 0x400 ++ S_ISUID = 0x800 ++ S_ISVTX = 0x200 ++ S_IWGRP = 0x10 ++ S_IWOTH = 0x2 ++ S_IWRITE = 0x80 ++ S_IWUSR = 0x80 ++ S_IXGRP = 0x8 ++ S_IXOTH = 0x1 ++ S_IXUSR = 0x40 ++ TAB0 = 0x0 ++ TAB1 = 0x800 ++ TAB2 = 0x1000 ++ TAB3 = 0x1800 ++ TABDLY = 0x1800 ++ TCFLSH = 0x540b ++ TCGETA = 0x5405 ++ TCGETS = 0x5401 ++ TCGETS2 = 0x802c542a ++ TCGETX = 0x5432 ++ TCIFLUSH = 0x0 ++ TCIOFF = 0x2 ++ TCIOFLUSH = 0x2 ++ TCION = 0x3 ++ TCOFLUSH = 0x1 ++ TCOOFF = 0x0 ++ TCOON = 0x1 ++ TCP_CONGESTION = 0xd ++ TCP_CORK = 0x3 ++ TCP_DEFER_ACCEPT = 0x9 ++ TCP_INFO = 0xb ++ TCP_KEEPCNT = 0x6 ++ TCP_KEEPIDLE = 0x4 ++ TCP_KEEPINTVL = 0x5 ++ TCP_LINGER2 = 0x8 ++ TCP_MAXSEG = 0x2 ++ TCP_MAXWIN = 0xffff ++ TCP_MAX_WINSHIFT = 0xe ++ TCP_MD5SIG = 0xe ++ TCP_MD5SIG_MAXKEYLEN = 0x50 ++ TCP_MSS = 0x200 ++ TCP_NODELAY = 0x1 ++ TCP_QUICKACK = 0xc ++ TCP_SYNCNT = 0x7 ++ TCP_WINDOW_CLAMP = 0xa ++ TCSAFLUSH = 0x2 ++ TCSBRK = 0x5409 ++ TCSBRKP = 0x5425 ++ TCSETA = 0x5406 ++ TCSETAF = 0x5408 ++ TCSETAW = 0x5407 ++ TCSETS = 0x5402 ++ TCSETS2 = 0x402c542b ++ TCSETSF = 0x5404 ++ TCSETSF2 = 0x402c542d ++ TCSETSW = 0x5403 ++ TCSETSW2 = 0x402c542c ++ TCSETX = 0x5433 ++ TCSETXF = 0x5434 ++ TCSETXW = 0x5435 ++ TCXONC = 0x540a ++ TIOCCBRK = 0x5428 ++ TIOCCONS = 0x541d ++ TIOCEXCL = 0x540c ++ TIOCGDEV = 0x80045432 ++ TIOCGETD = 0x5424 ++ TIOCGEXCL = 0x80045440 ++ TIOCGICOUNT = 0x545d ++ TIOCGLCKTRMIOS = 0x5456 ++ TIOCGPGRP = 0x540f ++ TIOCGPKT = 0x80045438 ++ TIOCGPTLCK = 0x80045439 ++ TIOCGPTN = 0x80045430 ++ TIOCGRS485 = 0x542e ++ TIOCGSERIAL = 0x541e ++ TIOCGSID = 0x5429 ++ TIOCGSOFTCAR = 0x5419 ++ TIOCGWINSZ = 0x5413 ++ TIOCINQ = 0x541b ++ TIOCLINUX = 0x541c ++ TIOCMBIC = 0x5417 ++ TIOCMBIS = 0x5416 ++ TIOCMGET = 0x5415 ++ TIOCMIWAIT = 0x545c ++ TIOCMSET = 0x5418 ++ TIOCM_CAR = 0x40 ++ TIOCM_CD = 0x40 ++ TIOCM_CTS = 0x20 ++ TIOCM_DSR = 0x100 ++ TIOCM_DTR = 0x2 ++ TIOCM_LE = 0x1 ++ TIOCM_RI = 0x80 ++ TIOCM_RNG = 0x80 ++ TIOCM_RTS = 0x4 ++ TIOCM_SR = 0x10 ++ TIOCM_ST = 0x8 ++ TIOCNOTTY = 0x5422 ++ TIOCNXCL = 0x540d ++ TIOCOUTQ = 0x5411 ++ TIOCPKT = 0x5420 ++ TIOCPKT_DATA = 0x0 ++ TIOCPKT_DOSTOP = 0x20 ++ TIOCPKT_FLUSHREAD = 0x1 ++ TIOCPKT_FLUSHWRITE = 0x2 ++ TIOCPKT_IOCTL = 0x40 ++ TIOCPKT_NOSTOP = 0x10 ++ TIOCPKT_START = 0x8 ++ TIOCPKT_STOP = 0x4 ++ TIOCSBRK = 0x5427 ++ TIOCSCTTY = 0x540e ++ TIOCSERCONFIG = 0x5453 ++ TIOCSERGETLSR = 0x5459 ++ TIOCSERGETMULTI = 0x545a ++ TIOCSERGSTRUCT = 0x5458 ++ TIOCSERGWILD = 0x5454 ++ TIOCSERSETMULTI = 0x545b ++ TIOCSERSWILD = 0x5455 ++ TIOCSER_TEMT = 0x1 ++ TIOCSETD = 0x5423 ++ TIOCSIG = 0x40045436 ++ TIOCSLCKTRMIOS = 0x5457 ++ TIOCSPGRP = 0x5410 ++ TIOCSPTLCK = 0x40045431 ++ TIOCSRS485 = 0x542f ++ TIOCSSERIAL = 0x541f ++ TIOCSSOFTCAR = 0x541a ++ TIOCSTI = 0x5412 ++ TIOCSWINSZ = 0x5414 ++ TIOCVHANGUP = 0x5437 ++ TOSTOP = 0x100 ++ TUNATTACHFILTER = 0x401054d5 ++ TUNDETACHFILTER = 0x401054d6 ++ TUNGETFEATURES = 0x800454cf ++ TUNGETIFF = 0x800454d2 ++ TUNGETSNDBUF = 0x800454d3 ++ TUNGETVNETHDRSZ = 0x800454d7 ++ TUNSETDEBUG = 0x400454c9 ++ TUNSETGROUP = 0x400454ce ++ TUNSETIFF = 0x400454ca ++ TUNSETLINK = 0x400454cd ++ TUNSETNOCSUM = 0x400454c8 ++ TUNSETOFFLOAD = 0x400454d0 ++ TUNSETOWNER = 0x400454cc ++ TUNSETPERSIST = 0x400454cb ++ TUNSETSNDBUF = 0x400454d4 ++ TUNSETTXFILTER = 0x400454d1 ++ TUNSETVNETHDRSZ = 0x400454d8 ++ VDISCARD = 0xd ++ VEOF = 0x4 ++ VEOL = 0xb ++ VEOL2 = 0x10 ++ VERASE = 0x2 ++ VINTR = 0x0 ++ VKILL = 0x3 ++ VLNEXT = 0xf ++ VMADDR_CID_ANY = 0xffffffff ++ VMADDR_CID_HOST = 0x2 ++ VMADDR_CID_HYPERVISOR = 0x0 ++ VMADDR_CID_RESERVED = 0x1 ++ VMADDR_PORT_ANY = 0xffffffff ++ VMIN = 0x6 ++ VM_SOCKETS_INVALID_VERSION = 0xffffffff ++ VQUIT = 0x1 ++ VREPRINT = 0xc ++ VSTART = 0x8 ++ VSTOP = 0x9 ++ VSUSP = 0xa ++ VSWTC = 0x7 ++ VT0 = 0x0 ++ VT1 = 0x4000 ++ VTDLY = 0x4000 ++ VTIME = 0x5 ++ VWERASE = 0xe ++ WALL = 0x40000000 ++ WCLONE = 0x80000000 ++ WCONTINUED = 0x8 ++ WEXITED = 0x4 ++ WNOHANG = 0x1 ++ WNOTHREAD = 0x20000000 ++ WNOWAIT = 0x1000000 ++ WORDSIZE = 0x40 ++ WSTOPPED = 0x2 ++ WUNTRACED = 0x2 ++ XCASE = 0x4 ++ XTABS = 0x1800 ++) ++ ++// Errors ++const ( ++ E2BIG = syscall.Errno(0x7) ++ EACCES = syscall.Errno(0xd) ++ EADDRINUSE = syscall.Errno(0x62) ++ EADDRNOTAVAIL = syscall.Errno(0x63) ++ EADV = syscall.Errno(0x44) ++ EAFNOSUPPORT = syscall.Errno(0x61) ++ EAGAIN = syscall.Errno(0xb) ++ EALREADY = syscall.Errno(0x72) ++ EBADE = syscall.Errno(0x34) ++ EBADF = syscall.Errno(0x9) ++ EBADFD = syscall.Errno(0x4d) ++ EBADMSG = syscall.Errno(0x4a) ++ EBADR = syscall.Errno(0x35) ++ EBADRQC = syscall.Errno(0x38) ++ EBADSLT = syscall.Errno(0x39) ++ EBFONT = syscall.Errno(0x3b) ++ EBUSY = syscall.Errno(0x10) ++ ECANCELED = syscall.Errno(0x7d) ++ ECHILD = syscall.Errno(0xa) ++ ECHRNG = syscall.Errno(0x2c) ++ ECOMM = syscall.Errno(0x46) ++ ECONNABORTED = syscall.Errno(0x67) ++ ECONNREFUSED = syscall.Errno(0x6f) ++ ECONNRESET = syscall.Errno(0x68) ++ EDEADLK = syscall.Errno(0x23) ++ EDEADLOCK = syscall.Errno(0x23) ++ EDESTADDRREQ = syscall.Errno(0x59) ++ EDOM = syscall.Errno(0x21) ++ EDOTDOT = syscall.Errno(0x49) ++ EDQUOT = syscall.Errno(0x7a) ++ EEXIST = syscall.Errno(0x11) ++ EFAULT = syscall.Errno(0xe) ++ EFBIG = syscall.Errno(0x1b) ++ EHOSTDOWN = syscall.Errno(0x70) ++ EHOSTUNREACH = syscall.Errno(0x71) ++ EHWPOISON = syscall.Errno(0x85) ++ EIDRM = syscall.Errno(0x2b) ++ EILSEQ = syscall.Errno(0x54) ++ EINPROGRESS = syscall.Errno(0x73) ++ EINTR = syscall.Errno(0x4) ++ EINVAL = syscall.Errno(0x16) ++ EIO = syscall.Errno(0x5) ++ EISCONN = syscall.Errno(0x6a) ++ EISDIR = syscall.Errno(0x15) ++ EISNAM = syscall.Errno(0x78) ++ EKEYEXPIRED = syscall.Errno(0x7f) ++ EKEYREJECTED = syscall.Errno(0x81) ++ EKEYREVOKED = syscall.Errno(0x80) ++ EL2HLT = syscall.Errno(0x33) ++ EL2NSYNC = syscall.Errno(0x2d) ++ EL3HLT = syscall.Errno(0x2e) ++ EL3RST = syscall.Errno(0x2f) ++ ELIBACC = syscall.Errno(0x4f) ++ ELIBBAD = syscall.Errno(0x50) ++ ELIBEXEC = syscall.Errno(0x53) ++ ELIBMAX = syscall.Errno(0x52) ++ ELIBSCN = syscall.Errno(0x51) ++ ELNRNG = syscall.Errno(0x30) ++ ELOOP = syscall.Errno(0x28) ++ EMEDIUMTYPE = syscall.Errno(0x7c) ++ EMFILE = syscall.Errno(0x18) ++ EMLINK = syscall.Errno(0x1f) ++ EMSGSIZE = syscall.Errno(0x5a) ++ EMULTIHOP = syscall.Errno(0x48) ++ ENAMETOOLONG = syscall.Errno(0x24) ++ ENAVAIL = syscall.Errno(0x77) ++ ENETDOWN = syscall.Errno(0x64) ++ ENETRESET = syscall.Errno(0x66) ++ ENETUNREACH = syscall.Errno(0x65) ++ ENFILE = syscall.Errno(0x17) ++ ENOANO = syscall.Errno(0x37) ++ ENOBUFS = syscall.Errno(0x69) ++ ENOCSI = syscall.Errno(0x32) ++ ENODATA = syscall.Errno(0x3d) ++ ENODEV = syscall.Errno(0x13) ++ ENOENT = syscall.Errno(0x2) ++ ENOEXEC = syscall.Errno(0x8) ++ ENOKEY = syscall.Errno(0x7e) ++ ENOLCK = syscall.Errno(0x25) ++ ENOLINK = syscall.Errno(0x43) ++ ENOMEDIUM = syscall.Errno(0x7b) ++ ENOMEM = syscall.Errno(0xc) ++ ENOMSG = syscall.Errno(0x2a) ++ ENONET = syscall.Errno(0x40) ++ ENOPKG = syscall.Errno(0x41) ++ ENOPROTOOPT = syscall.Errno(0x5c) ++ ENOSPC = syscall.Errno(0x1c) ++ ENOSR = syscall.Errno(0x3f) ++ ENOSTR = syscall.Errno(0x3c) ++ ENOSYS = syscall.Errno(0x26) ++ ENOTBLK = syscall.Errno(0xf) ++ ENOTCONN = syscall.Errno(0x6b) ++ ENOTDIR = syscall.Errno(0x14) ++ ENOTEMPTY = syscall.Errno(0x27) ++ ENOTNAM = syscall.Errno(0x76) ++ ENOTRECOVERABLE = syscall.Errno(0x83) ++ ENOTSOCK = syscall.Errno(0x58) ++ ENOTSUP = syscall.Errno(0x5f) ++ ENOTTY = syscall.Errno(0x19) ++ ENOTUNIQ = syscall.Errno(0x4c) ++ ENXIO = syscall.Errno(0x6) ++ EOPNOTSUPP = syscall.Errno(0x5f) ++ EOVERFLOW = syscall.Errno(0x4b) ++ EOWNERDEAD = syscall.Errno(0x82) ++ EPERM = syscall.Errno(0x1) ++ EPFNOSUPPORT = syscall.Errno(0x60) ++ EPIPE = syscall.Errno(0x20) ++ EPROTO = syscall.Errno(0x47) ++ EPROTONOSUPPORT = syscall.Errno(0x5d) ++ EPROTOTYPE = syscall.Errno(0x5b) ++ ERANGE = syscall.Errno(0x22) ++ EREMCHG = syscall.Errno(0x4e) ++ EREMOTE = syscall.Errno(0x42) ++ EREMOTEIO = syscall.Errno(0x79) ++ ERESTART = syscall.Errno(0x55) ++ ERFKILL = syscall.Errno(0x84) ++ EROFS = syscall.Errno(0x1e) ++ ESHUTDOWN = syscall.Errno(0x6c) ++ ESOCKTNOSUPPORT = syscall.Errno(0x5e) ++ ESPIPE = syscall.Errno(0x1d) ++ ESRCH = syscall.Errno(0x3) ++ ESRMNT = syscall.Errno(0x45) ++ ESTALE = syscall.Errno(0x74) ++ ESTRPIPE = syscall.Errno(0x56) ++ ETIME = syscall.Errno(0x3e) ++ ETIMEDOUT = syscall.Errno(0x6e) ++ ETOOMANYREFS = syscall.Errno(0x6d) ++ ETXTBSY = syscall.Errno(0x1a) ++ EUCLEAN = syscall.Errno(0x75) ++ EUNATCH = syscall.Errno(0x31) ++ EUSERS = syscall.Errno(0x57) ++ EWOULDBLOCK = syscall.Errno(0xb) ++ EXDEV = syscall.Errno(0x12) ++ EXFULL = syscall.Errno(0x36) ++) ++ ++// Signals ++const ( ++ SIGABRT = syscall.Signal(0x6) ++ SIGALRM = syscall.Signal(0xe) ++ SIGBUS = syscall.Signal(0x7) ++ SIGCHLD = syscall.Signal(0x11) ++ SIGCLD = syscall.Signal(0x11) ++ SIGCONT = syscall.Signal(0x12) ++ SIGFPE = syscall.Signal(0x8) ++ SIGHUP = syscall.Signal(0x1) ++ SIGILL = syscall.Signal(0x4) ++ SIGINT = syscall.Signal(0x2) ++ SIGIO = syscall.Signal(0x1d) ++ SIGIOT = syscall.Signal(0x6) ++ SIGKILL = syscall.Signal(0x9) ++ SIGPIPE = syscall.Signal(0xd) ++ SIGPOLL = syscall.Signal(0x1d) ++ SIGPROF = syscall.Signal(0x1b) ++ SIGPWR = syscall.Signal(0x1e) ++ SIGQUIT = syscall.Signal(0x3) ++ SIGSEGV = syscall.Signal(0xb) ++ SIGSTKFLT = syscall.Signal(0x10) ++ SIGSTOP = syscall.Signal(0x13) ++ SIGSYS = syscall.Signal(0x1f) ++ SIGTERM = syscall.Signal(0xf) ++ SIGTRAP = syscall.Signal(0x5) ++ SIGTSTP = syscall.Signal(0x14) ++ SIGTTIN = syscall.Signal(0x15) ++ SIGTTOU = syscall.Signal(0x16) ++ SIGUNUSED = syscall.Signal(0x1f) ++ SIGURG = syscall.Signal(0x17) ++ SIGUSR1 = syscall.Signal(0xa) ++ SIGUSR2 = syscall.Signal(0xc) ++ SIGVTALRM = syscall.Signal(0x1a) ++ SIGWINCH = syscall.Signal(0x1c) ++ SIGXCPU = syscall.Signal(0x18) ++ SIGXFSZ = syscall.Signal(0x19) ++) ++ ++// Error table ++var errors = [...]string{ ++ 1: "operation not permitted", ++ 2: "no such file or directory", ++ 3: "no such process", ++ 4: "interrupted system call", ++ 5: "input/output error", ++ 6: "no such device or address", ++ 7: "argument list too long", ++ 8: "exec format error", ++ 9: "bad file descriptor", ++ 10: "no child processes", ++ 11: "resource temporarily unavailable", ++ 12: "cannot allocate memory", ++ 13: "permission denied", ++ 14: "bad address", ++ 15: "block device required", ++ 16: "device or resource busy", ++ 17: "file exists", ++ 18: "invalid cross-device link", ++ 19: "no such device", ++ 20: "not a directory", ++ 21: "is a directory", ++ 22: "invalid argument", ++ 23: "too many open files in system", ++ 24: "too many open files", ++ 25: "inappropriate ioctl for device", ++ 26: "text file busy", ++ 27: "file too large", ++ 28: "no space left on device", ++ 29: "illegal seek", ++ 30: "read-only file system", ++ 31: "too many links", ++ 32: "broken pipe", ++ 33: "numerical argument out of domain", ++ 34: "numerical result out of range", ++ 35: "resource deadlock avoided", ++ 36: "file name too long", ++ 37: "no locks available", ++ 38: "function not implemented", ++ 39: "directory not empty", ++ 40: "too many levels of symbolic links", ++ 42: "no message of desired type", ++ 43: "identifier removed", ++ 44: "channel number out of range", ++ 45: "level 2 not synchronized", ++ 46: "level 3 halted", ++ 47: "level 3 reset", ++ 48: "link number out of range", ++ 49: "protocol driver not attached", ++ 50: "no CSI structure available", ++ 51: "level 2 halted", ++ 52: "invalid exchange", ++ 53: "invalid request descriptor", ++ 54: "exchange full", ++ 55: "no anode", ++ 56: "invalid request code", ++ 57: "invalid slot", ++ 59: "bad font file format", ++ 60: "device not a stream", ++ 61: "no data available", ++ 62: "timer expired", ++ 63: "out of streams resources", ++ 64: "machine is not on the network", ++ 65: "package not installed", ++ 66: "object is remote", ++ 67: "link has been severed", ++ 68: "advertise error", ++ 69: "srmount error", ++ 70: "communication error on send", ++ 71: "protocol error", ++ 72: "multihop attempted", ++ 73: "RFS specific error", ++ 74: "bad message", ++ 75: "value too large for defined data type", ++ 76: "name not unique on network", ++ 77: "file descriptor in bad state", ++ 78: "remote address changed", ++ 79: "can not access a needed shared library", ++ 80: "accessing a corrupted shared library", ++ 81: ".lib section in a.out corrupted", ++ 82: "attempting to link in too many shared libraries", ++ 83: "cannot exec a shared library directly", ++ 84: "invalid or incomplete multibyte or wide character", ++ 85: "interrupted system call should be restarted", ++ 86: "streams pipe error", ++ 87: "too many users", ++ 88: "socket operation on non-socket", ++ 89: "destination address required", ++ 90: "message too long", ++ 91: "protocol wrong type for socket", ++ 92: "protocol not available", ++ 93: "protocol not supported", ++ 94: "socket type not supported", ++ 95: "operation not supported", ++ 96: "protocol family not supported", ++ 97: "address family not supported by protocol", ++ 98: "address already in use", ++ 99: "cannot assign requested address", ++ 100: "network is down", ++ 101: "network is unreachable", ++ 102: "network dropped connection on reset", ++ 103: "software caused connection abort", ++ 104: "connection reset by peer", ++ 105: "no buffer space available", ++ 106: "transport endpoint is already connected", ++ 107: "transport endpoint is not connected", ++ 108: "cannot send after transport endpoint shutdown", ++ 109: "too many references: cannot splice", ++ 110: "connection timed out", ++ 111: "connection refused", ++ 112: "host is down", ++ 113: "no route to host", ++ 114: "operation already in progress", ++ 115: "operation now in progress", ++ 116: "stale NFS file handle", ++ 117: "structure needs cleaning", ++ 118: "not a XENIX named type file", ++ 119: "no XENIX semaphores available", ++ 120: "is a named type file", ++ 121: "remote I/O error", ++ 122: "disk quota exceeded", ++ 123: "no medium found", ++ 124: "wrong medium type", ++ 125: "operation canceled", ++ 126: "required key not available", ++ 127: "key has expired", ++ 128: "key has been revoked", ++ 129: "key was rejected by service", ++ 130: "owner died", ++ 131: "state not recoverable", ++ 132: "operation not possible due to RF-kill", ++ 133: "unknown error 133", ++} ++ ++// Signal table ++var signals = [...]string{ ++ 1: "hangup", ++ 2: "interrupt", ++ 3: "quit", ++ 4: "illegal instruction", ++ 5: "trace/breakpoint trap", ++ 6: "aborted", ++ 7: "bus error", ++ 8: "floating point exception", ++ 9: "killed", ++ 10: "user defined signal 1", ++ 11: "segmentation fault", ++ 12: "user defined signal 2", ++ 13: "broken pipe", ++ 14: "alarm clock", ++ 15: "terminated", ++ 16: "stack fault", ++ 17: "child exited", ++ 18: "continued", ++ 19: "stopped (signal)", ++ 20: "stopped", ++ 21: "stopped (tty input)", ++ 22: "stopped (tty output)", ++ 23: "urgent I/O condition", ++ 24: "CPU time limit exceeded", ++ 25: "file size limit exceeded", ++ 26: "virtual timer expired", ++ 27: "profiling timer expired", ++ 28: "window changed", ++ 29: "I/O possible", ++ 30: "power failure", ++ 31: "bad system call", ++} +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +new file mode 100644 +index 0000000..7889e64 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +@@ -0,0 +1,1815 @@ ++// mkerrors.sh ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build arm,linux ++ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- _const.go ++ ++package unix ++ ++import "syscall" ++ ++const ( ++ AF_ALG = 0x26 ++ AF_APPLETALK = 0x5 ++ AF_ASH = 0x12 ++ AF_ATMPVC = 0x8 ++ AF_ATMSVC = 0x14 ++ AF_AX25 = 0x3 ++ AF_BLUETOOTH = 0x1f ++ AF_BRIDGE = 0x7 ++ AF_CAIF = 0x25 ++ AF_CAN = 0x1d ++ AF_DECnet = 0xc ++ AF_ECONET = 0x13 ++ AF_FILE = 0x1 ++ AF_IEEE802154 = 0x24 ++ AF_INET = 0x2 ++ AF_INET6 = 0xa ++ AF_IPX = 0x4 ++ AF_IRDA = 0x17 ++ AF_ISDN = 0x22 ++ AF_IUCV = 0x20 ++ AF_KEY = 0xf ++ AF_LLC = 0x1a ++ AF_LOCAL = 0x1 ++ AF_MAX = 0x27 ++ AF_NETBEUI = 0xd ++ AF_NETLINK = 0x10 ++ AF_NETROM = 0x6 ++ AF_PACKET = 0x11 ++ AF_PHONET = 0x23 ++ AF_PPPOX = 0x18 ++ AF_RDS = 0x15 ++ AF_ROSE = 0xb ++ AF_ROUTE = 0x10 ++ AF_RXRPC = 0x21 ++ AF_SECURITY = 0xe ++ AF_SNA = 0x16 ++ AF_TIPC = 0x1e ++ AF_UNIX = 0x1 ++ AF_UNSPEC = 0x0 ++ AF_VSOCK = 0x28 ++ AF_WANPIPE = 0x19 ++ AF_X25 = 0x9 ++ ALG_OP_DECRYPT = 0x0 ++ ALG_OP_ENCRYPT = 0x1 ++ ALG_SET_AEAD_ASSOCLEN = 0x4 ++ ALG_SET_AEAD_AUTHSIZE = 0x5 ++ ALG_SET_IV = 0x2 ++ ALG_SET_KEY = 0x1 ++ ALG_SET_OP = 0x3 ++ ARPHRD_ADAPT = 0x108 ++ ARPHRD_APPLETLK = 0x8 ++ ARPHRD_ARCNET = 0x7 ++ ARPHRD_ASH = 0x30d ++ ARPHRD_ATM = 0x13 ++ ARPHRD_AX25 = 0x3 ++ ARPHRD_BIF = 0x307 ++ ARPHRD_CHAOS = 0x5 ++ ARPHRD_CISCO = 0x201 ++ ARPHRD_CSLIP = 0x101 ++ ARPHRD_CSLIP6 = 0x103 ++ ARPHRD_DDCMP = 0x205 ++ ARPHRD_DLCI = 0xf ++ ARPHRD_ECONET = 0x30e ++ ARPHRD_EETHER = 0x2 ++ ARPHRD_ETHER = 0x1 ++ ARPHRD_EUI64 = 0x1b ++ ARPHRD_FCAL = 0x311 ++ ARPHRD_FCFABRIC = 0x313 ++ ARPHRD_FCPL = 0x312 ++ ARPHRD_FCPP = 0x310 ++ ARPHRD_FDDI = 0x306 ++ ARPHRD_FRAD = 0x302 ++ ARPHRD_HDLC = 0x201 ++ ARPHRD_HIPPI = 0x30c ++ ARPHRD_HWX25 = 0x110 ++ ARPHRD_IEEE1394 = 0x18 ++ ARPHRD_IEEE802 = 0x6 ++ ARPHRD_IEEE80211 = 0x321 ++ ARPHRD_IEEE80211_PRISM = 0x322 ++ ARPHRD_IEEE80211_RADIOTAP = 0x323 ++ ARPHRD_IEEE802154 = 0x324 ++ ARPHRD_IEEE802154_PHY = 0x325 ++ ARPHRD_IEEE802_TR = 0x320 ++ ARPHRD_INFINIBAND = 0x20 ++ ARPHRD_IPDDP = 0x309 ++ ARPHRD_IPGRE = 0x30a ++ ARPHRD_IRDA = 0x30f ++ ARPHRD_LAPB = 0x204 ++ ARPHRD_LOCALTLK = 0x305 ++ ARPHRD_LOOPBACK = 0x304 ++ ARPHRD_METRICOM = 0x17 ++ ARPHRD_NETROM = 0x0 ++ ARPHRD_NONE = 0xfffe ++ ARPHRD_PIMREG = 0x30b ++ ARPHRD_PPP = 0x200 ++ ARPHRD_PRONET = 0x4 ++ ARPHRD_RAWHDLC = 0x206 ++ ARPHRD_ROSE = 0x10e ++ ARPHRD_RSRVD = 0x104 ++ ARPHRD_SIT = 0x308 ++ ARPHRD_SKIP = 0x303 ++ ARPHRD_SLIP = 0x100 ++ ARPHRD_SLIP6 = 0x102 ++ ARPHRD_TUNNEL = 0x300 ++ ARPHRD_TUNNEL6 = 0x301 ++ ARPHRD_VOID = 0xffff ++ ARPHRD_X25 = 0x10f ++ B0 = 0x0 ++ B1000000 = 0x1008 ++ B110 = 0x3 ++ B115200 = 0x1002 ++ B1152000 = 0x1009 ++ B1200 = 0x9 ++ B134 = 0x4 ++ B150 = 0x5 ++ B1500000 = 0x100a ++ B1800 = 0xa ++ B19200 = 0xe ++ B200 = 0x6 ++ B2000000 = 0x100b ++ B230400 = 0x1003 ++ B2400 = 0xb ++ B2500000 = 0x100c ++ B300 = 0x7 ++ B3000000 = 0x100d ++ B3500000 = 0x100e ++ B38400 = 0xf ++ B4000000 = 0x100f ++ B460800 = 0x1004 ++ B4800 = 0xc ++ B50 = 0x1 ++ B500000 = 0x1005 ++ B57600 = 0x1001 ++ B576000 = 0x1006 ++ B600 = 0x8 ++ B75 = 0x2 ++ B921600 = 0x1007 ++ B9600 = 0xd ++ BLKBSZGET = 0x80081270 ++ BLKBSZSET = 0x40081271 ++ BLKFLSBUF = 0x1261 ++ BLKFRAGET = 0x1265 ++ BLKFRASET = 0x1264 ++ BLKGETSIZE = 0x1260 ++ BLKGETSIZE64 = 0x80081272 ++ BLKRAGET = 0x1263 ++ BLKRASET = 0x1262 ++ BLKROGET = 0x125e ++ BLKROSET = 0x125d ++ BLKRRPART = 0x125f ++ BLKSECTGET = 0x1267 ++ BLKSECTSET = 0x1266 ++ BLKSSZGET = 0x1268 ++ BOTHER = 0x1000 ++ BPF_A = 0x10 ++ BPF_ABS = 0x20 ++ BPF_ADD = 0x0 ++ BPF_ALU = 0x4 ++ BPF_AND = 0x50 ++ BPF_B = 0x10 ++ BPF_DIV = 0x30 ++ BPF_H = 0x8 ++ BPF_IMM = 0x0 ++ BPF_IND = 0x40 ++ BPF_JA = 0x0 ++ BPF_JEQ = 0x10 ++ BPF_JGE = 0x30 ++ BPF_JGT = 0x20 ++ BPF_JMP = 0x5 ++ BPF_JSET = 0x40 ++ BPF_K = 0x0 ++ BPF_LD = 0x0 ++ BPF_LDX = 0x1 ++ BPF_LEN = 0x80 ++ BPF_LSH = 0x60 ++ BPF_MAJOR_VERSION = 0x1 ++ BPF_MAXINSNS = 0x1000 ++ BPF_MEM = 0x60 ++ BPF_MEMWORDS = 0x10 ++ BPF_MINOR_VERSION = 0x1 ++ BPF_MISC = 0x7 ++ BPF_MSH = 0xa0 ++ BPF_MUL = 0x20 ++ BPF_NEG = 0x80 ++ BPF_OR = 0x40 ++ BPF_RET = 0x6 ++ BPF_RSH = 0x70 ++ BPF_ST = 0x2 ++ BPF_STX = 0x3 ++ BPF_SUB = 0x10 ++ BPF_TAX = 0x0 ++ BPF_TXA = 0x80 ++ BPF_W = 0x0 ++ BPF_X = 0x8 ++ BRKINT = 0x2 ++ BS0 = 0x0 ++ BS1 = 0x2000 ++ BSDLY = 0x2000 ++ CAN_BCM = 0x2 ++ CAN_EFF_FLAG = 0x80000000 ++ CAN_EFF_ID_BITS = 0x1d ++ CAN_EFF_MASK = 0x1fffffff ++ CAN_ERR_FLAG = 0x20000000 ++ CAN_ERR_MASK = 0x1fffffff ++ CAN_INV_FILTER = 0x20000000 ++ CAN_ISOTP = 0x6 ++ CAN_MAX_DLC = 0x8 ++ CAN_MAX_DLEN = 0x8 ++ CAN_MCNET = 0x5 ++ CAN_MTU = 0x10 ++ CAN_NPROTO = 0x7 ++ CAN_RAW = 0x1 ++ CAN_RTR_FLAG = 0x40000000 ++ CAN_SFF_ID_BITS = 0xb ++ CAN_SFF_MASK = 0x7ff ++ CAN_TP16 = 0x3 ++ CAN_TP20 = 0x4 ++ CBAUD = 0x100f ++ CBAUDEX = 0x1000 ++ CFLUSH = 0xf ++ CIBAUD = 0x100f0000 ++ CLOCAL = 0x800 ++ CLOCK_BOOTTIME = 0x7 ++ CLOCK_BOOTTIME_ALARM = 0x9 ++ CLOCK_DEFAULT = 0x0 ++ CLOCK_EXT = 0x1 ++ CLOCK_INT = 0x2 ++ CLOCK_MONOTONIC = 0x1 ++ CLOCK_MONOTONIC_COARSE = 0x6 ++ CLOCK_MONOTONIC_RAW = 0x4 ++ CLOCK_PROCESS_CPUTIME_ID = 0x2 ++ CLOCK_REALTIME = 0x0 ++ CLOCK_REALTIME_ALARM = 0x8 ++ CLOCK_REALTIME_COARSE = 0x5 ++ CLOCK_THREAD_CPUTIME_ID = 0x3 ++ CLOCK_TXFROMRX = 0x4 ++ CLOCK_TXINT = 0x3 ++ CLONE_CHILD_CLEARTID = 0x200000 ++ CLONE_CHILD_SETTID = 0x1000000 ++ CLONE_DETACHED = 0x400000 ++ CLONE_FILES = 0x400 ++ CLONE_FS = 0x200 ++ CLONE_IO = 0x80000000 ++ CLONE_NEWCGROUP = 0x2000000 ++ CLONE_NEWIPC = 0x8000000 ++ CLONE_NEWNET = 0x40000000 ++ CLONE_NEWNS = 0x20000 ++ CLONE_NEWPID = 0x20000000 ++ CLONE_NEWUSER = 0x10000000 ++ CLONE_NEWUTS = 0x4000000 ++ CLONE_PARENT = 0x8000 ++ CLONE_PARENT_SETTID = 0x100000 ++ CLONE_PTRACE = 0x2000 ++ CLONE_SETTLS = 0x80000 ++ CLONE_SIGHAND = 0x800 ++ CLONE_SYSVSEM = 0x40000 ++ CLONE_THREAD = 0x10000 ++ CLONE_UNTRACED = 0x800000 ++ CLONE_VFORK = 0x4000 ++ CLONE_VM = 0x100 ++ CMSPAR = 0x40000000 ++ CR0 = 0x0 ++ CR1 = 0x200 ++ CR2 = 0x400 ++ CR3 = 0x600 ++ CRDLY = 0x600 ++ CREAD = 0x80 ++ CRTSCTS = 0x80000000 ++ CS5 = 0x0 ++ CS6 = 0x10 ++ CS7 = 0x20 ++ CS8 = 0x30 ++ CSIGNAL = 0xff ++ CSIZE = 0x30 ++ CSTART = 0x11 ++ CSTATUS = 0x0 ++ CSTOP = 0x13 ++ CSTOPB = 0x40 ++ CSUSP = 0x1a ++ DT_BLK = 0x6 ++ DT_CHR = 0x2 ++ DT_DIR = 0x4 ++ DT_FIFO = 0x1 ++ DT_LNK = 0xa ++ DT_REG = 0x8 ++ DT_SOCK = 0xc ++ DT_UNKNOWN = 0x0 ++ DT_WHT = 0xe ++ ELF_NGREG = 0x12 ++ ELF_PRARGSZ = 0x50 ++ ECHO = 0x8 ++ ECHOCTL = 0x200 ++ ECHOE = 0x10 ++ ECHOK = 0x20 ++ ECHOKE = 0x800 ++ ECHONL = 0x40 ++ ECHOPRT = 0x400 ++ EPOLLERR = 0x8 ++ EPOLLET = -0x80000000 ++ EPOLLHUP = 0x10 ++ EPOLLIN = 0x1 ++ EPOLLMSG = 0x400 ++ EPOLLONESHOT = 0x40000000 ++ EPOLLOUT = 0x4 ++ EPOLLPRI = 0x2 ++ EPOLLRDBAND = 0x80 ++ EPOLLRDHUP = 0x2000 ++ EPOLLRDNORM = 0x40 ++ EPOLLWRBAND = 0x200 ++ EPOLLWRNORM = 0x100 ++ EPOLL_CLOEXEC = 0x80000 ++ EPOLL_CTL_ADD = 0x1 ++ EPOLL_CTL_DEL = 0x2 ++ EPOLL_CTL_MOD = 0x3 ++ EPOLL_NONBLOCK = 0x800 ++ ETH_P_1588 = 0x88f7 ++ ETH_P_8021Q = 0x8100 ++ ETH_P_802_2 = 0x4 ++ ETH_P_802_3 = 0x1 ++ ETH_P_AARP = 0x80f3 ++ ETH_P_ALL = 0x3 ++ ETH_P_AOE = 0x88a2 ++ ETH_P_ARCNET = 0x1a ++ ETH_P_ARP = 0x806 ++ ETH_P_ATALK = 0x809b ++ ETH_P_ATMFATE = 0x8884 ++ ETH_P_ATMMPOA = 0x884c ++ ETH_P_AX25 = 0x2 ++ ETH_P_BPQ = 0x8ff ++ ETH_P_CAIF = 0xf7 ++ ETH_P_CAN = 0xc ++ ETH_P_CONTROL = 0x16 ++ ETH_P_CUST = 0x6006 ++ ETH_P_DDCMP = 0x6 ++ ETH_P_DEC = 0x6000 ++ ETH_P_DIAG = 0x6005 ++ ETH_P_DNA_DL = 0x6001 ++ ETH_P_DNA_RC = 0x6002 ++ ETH_P_DNA_RT = 0x6003 ++ ETH_P_DSA = 0x1b ++ ETH_P_ECONET = 0x18 ++ ETH_P_EDSA = 0xdada ++ ETH_P_FCOE = 0x8906 ++ ETH_P_FIP = 0x8914 ++ ETH_P_HDLC = 0x19 ++ ETH_P_IEEE802154 = 0xf6 ++ ETH_P_IEEEPUP = 0xa00 ++ ETH_P_IEEEPUPAT = 0xa01 ++ ETH_P_IP = 0x800 ++ ETH_P_IPV6 = 0x86dd ++ ETH_P_IPX = 0x8137 ++ ETH_P_IRDA = 0x17 ++ ETH_P_LAT = 0x6004 ++ ETH_P_LINK_CTL = 0x886c ++ ETH_P_LOCALTALK = 0x9 ++ ETH_P_LOOP = 0x60 ++ ETH_P_MOBITEX = 0x15 ++ ETH_P_MPLS_MC = 0x8848 ++ ETH_P_MPLS_UC = 0x8847 ++ ETH_P_PAE = 0x888e ++ ETH_P_PAUSE = 0x8808 ++ ETH_P_PHONET = 0xf5 ++ ETH_P_PPPTALK = 0x10 ++ ETH_P_PPP_DISC = 0x8863 ++ ETH_P_PPP_MP = 0x8 ++ ETH_P_PPP_SES = 0x8864 ++ ETH_P_PUP = 0x200 ++ ETH_P_PUPAT = 0x201 ++ ETH_P_RARP = 0x8035 ++ ETH_P_SCA = 0x6007 ++ ETH_P_SLOW = 0x8809 ++ ETH_P_SNAP = 0x5 ++ ETH_P_TEB = 0x6558 ++ ETH_P_TIPC = 0x88ca ++ ETH_P_TRAILER = 0x1c ++ ETH_P_TR_802_2 = 0x11 ++ ETH_P_WAN_PPP = 0x7 ++ ETH_P_WCCP = 0x883e ++ ETH_P_X25 = 0x805 ++ EXTA = 0xe ++ EXTB = 0xf ++ EXTPROC = 0x10000 ++ FALLOC_FL_COLLAPSE_RANGE = 0x8 ++ FALLOC_FL_INSERT_RANGE = 0x20 ++ FALLOC_FL_KEEP_SIZE = 0x1 ++ FALLOC_FL_NO_HIDE_STALE = 0x4 ++ FALLOC_FL_PUNCH_HOLE = 0x2 ++ FALLOC_FL_ZERO_RANGE = 0x10 ++ FD_CLOEXEC = 0x1 ++ FD_SETSIZE = 0x400 ++ FF0 = 0x0 ++ FF1 = 0x8000 ++ FFDLY = 0x8000 ++ FLUSHO = 0x1000 ++ F_DUPFD = 0x0 ++ F_DUPFD_CLOEXEC = 0x406 ++ F_EXLCK = 0x4 ++ F_GETFD = 0x1 ++ F_GETFL = 0x3 ++ F_GETLEASE = 0x401 ++ F_GETLK = 0xc ++ F_GETLK64 = 0xc ++ F_GETOWN = 0x9 ++ F_GETOWN_EX = 0x10 ++ F_GETPIPE_SZ = 0x408 ++ F_GETSIG = 0xb ++ F_LOCK = 0x1 ++ F_NOTIFY = 0x402 ++ F_OK = 0x0 ++ F_RDLCK = 0x0 ++ F_SETFD = 0x2 ++ F_SETFL = 0x4 ++ F_SETLEASE = 0x400 ++ F_SETLK = 0xd ++ F_SETLK64 = 0xd ++ F_SETLKW = 0xe ++ F_SETLKW64 = 0xe ++ F_SETOWN = 0x8 ++ F_SETOWN_EX = 0xf ++ F_SETPIPE_SZ = 0x407 ++ F_SETSIG = 0xa ++ F_SHLCK = 0x8 ++ F_TEST = 0x3 ++ F_TLOCK = 0x2 ++ F_ULOCK = 0x0 ++ F_UNLCK = 0x2 ++ F_WRLCK = 0x1 ++ GRND_NONBLOCK = 0x1 ++ GRND_RANDOM = 0x2 ++ HUPCL = 0x400 ++ IBSHIFT = 0x10 ++ ICANON = 0x2 ++ ICMPV6_FILTER = 0x1 ++ ICRNL = 0x100 ++ IEXTEN = 0x8000 ++ IFA_F_DADFAILED = 0x8 ++ IFA_F_DEPRECATED = 0x20 ++ IFA_F_HOMEADDRESS = 0x10 ++ IFA_F_NODAD = 0x2 ++ IFA_F_OPTIMISTIC = 0x4 ++ IFA_F_PERMANENT = 0x80 ++ IFA_F_SECONDARY = 0x1 ++ IFA_F_TEMPORARY = 0x1 ++ IFA_F_TENTATIVE = 0x40 ++ IFA_MAX = 0x7 ++ IFF_ALLMULTI = 0x200 ++ IFF_AUTOMEDIA = 0x4000 ++ IFF_BROADCAST = 0x2 ++ IFF_DEBUG = 0x4 ++ IFF_DYNAMIC = 0x8000 ++ IFF_LOOPBACK = 0x8 ++ IFF_MASTER = 0x400 ++ IFF_MULTICAST = 0x1000 ++ IFF_NOARP = 0x80 ++ IFF_NOTRAILERS = 0x20 ++ IFF_NO_PI = 0x1000 ++ IFF_ONE_QUEUE = 0x2000 ++ IFF_POINTOPOINT = 0x10 ++ IFF_PORTSEL = 0x2000 ++ IFF_PROMISC = 0x100 ++ IFF_RUNNING = 0x40 ++ IFF_SLAVE = 0x800 ++ IFF_TAP = 0x2 ++ IFF_TUN = 0x1 ++ IFF_TUN_EXCL = 0x8000 ++ IFF_UP = 0x1 ++ IFF_VNET_HDR = 0x4000 ++ IFNAMSIZ = 0x10 ++ IGNBRK = 0x1 ++ IGNCR = 0x80 ++ IGNPAR = 0x4 ++ IMAXBEL = 0x2000 ++ INLCR = 0x40 ++ INPCK = 0x10 ++ IN_ACCESS = 0x1 ++ IN_ALL_EVENTS = 0xfff ++ IN_ATTRIB = 0x4 ++ IN_CLASSA_HOST = 0xffffff ++ IN_CLASSA_MAX = 0x80 ++ IN_CLASSA_NET = 0xff000000 ++ IN_CLASSA_NSHIFT = 0x18 ++ IN_CLASSB_HOST = 0xffff ++ IN_CLASSB_MAX = 0x10000 ++ IN_CLASSB_NET = 0xffff0000 ++ IN_CLASSB_NSHIFT = 0x10 ++ IN_CLASSC_HOST = 0xff ++ IN_CLASSC_NET = 0xffffff00 ++ IN_CLASSC_NSHIFT = 0x8 ++ IN_CLOEXEC = 0x80000 ++ IN_CLOSE = 0x18 ++ IN_CLOSE_NOWRITE = 0x10 ++ IN_CLOSE_WRITE = 0x8 ++ IN_CREATE = 0x100 ++ IN_DELETE = 0x200 ++ IN_DELETE_SELF = 0x400 ++ IN_DONT_FOLLOW = 0x2000000 ++ IN_EXCL_UNLINK = 0x4000000 ++ IN_IGNORED = 0x8000 ++ IN_ISDIR = 0x40000000 ++ IN_LOOPBACKNET = 0x7f ++ IN_MASK_ADD = 0x20000000 ++ IN_MODIFY = 0x2 ++ IN_MOVE = 0xc0 ++ IN_MOVED_FROM = 0x40 ++ IN_MOVED_TO = 0x80 ++ IN_MOVE_SELF = 0x800 ++ IN_NONBLOCK = 0x800 ++ IN_ONESHOT = 0x80000000 ++ IN_ONLYDIR = 0x1000000 ++ IN_OPEN = 0x20 ++ IN_Q_OVERFLOW = 0x4000 ++ IN_UNMOUNT = 0x2000 ++ IPPROTO_AH = 0x33 ++ IPPROTO_COMP = 0x6c ++ IPPROTO_DCCP = 0x21 ++ IPPROTO_DSTOPTS = 0x3c ++ IPPROTO_EGP = 0x8 ++ IPPROTO_ENCAP = 0x62 ++ IPPROTO_ESP = 0x32 ++ IPPROTO_FRAGMENT = 0x2c ++ IPPROTO_GRE = 0x2f ++ IPPROTO_HOPOPTS = 0x0 ++ IPPROTO_ICMP = 0x1 ++ IPPROTO_ICMPV6 = 0x3a ++ IPPROTO_IDP = 0x16 ++ IPPROTO_IGMP = 0x2 ++ IPPROTO_IP = 0x0 ++ IPPROTO_IPIP = 0x4 ++ IPPROTO_IPV6 = 0x29 ++ IPPROTO_MTP = 0x5c ++ IPPROTO_NONE = 0x3b ++ IPPROTO_PIM = 0x67 ++ IPPROTO_PUP = 0xc ++ IPPROTO_RAW = 0xff ++ IPPROTO_ROUTING = 0x2b ++ IPPROTO_RSVP = 0x2e ++ IPPROTO_SCTP = 0x84 ++ IPPROTO_TCP = 0x6 ++ IPPROTO_TP = 0x1d ++ IPPROTO_UDP = 0x11 ++ IPPROTO_UDPLITE = 0x88 ++ IPV6_2292DSTOPTS = 0x4 ++ IPV6_2292HOPLIMIT = 0x8 ++ IPV6_2292HOPOPTS = 0x3 ++ IPV6_2292PKTINFO = 0x2 ++ IPV6_2292PKTOPTIONS = 0x6 ++ IPV6_2292RTHDR = 0x5 ++ IPV6_ADDRFORM = 0x1 ++ IPV6_ADD_MEMBERSHIP = 0x14 ++ IPV6_AUTHHDR = 0xa ++ IPV6_CHECKSUM = 0x7 ++ IPV6_DROP_MEMBERSHIP = 0x15 ++ IPV6_DSTOPTS = 0x3b ++ IPV6_HOPLIMIT = 0x34 ++ IPV6_HOPOPTS = 0x36 ++ IPV6_IPSEC_POLICY = 0x22 ++ IPV6_JOIN_ANYCAST = 0x1b ++ IPV6_JOIN_GROUP = 0x14 ++ IPV6_LEAVE_ANYCAST = 0x1c ++ IPV6_LEAVE_GROUP = 0x15 ++ IPV6_MTU = 0x18 ++ IPV6_MTU_DISCOVER = 0x17 ++ IPV6_MULTICAST_HOPS = 0x12 ++ IPV6_MULTICAST_IF = 0x11 ++ IPV6_MULTICAST_LOOP = 0x13 ++ IPV6_NEXTHOP = 0x9 ++ IPV6_PKTINFO = 0x32 ++ IPV6_PMTUDISC_DO = 0x2 ++ IPV6_PMTUDISC_DONT = 0x0 ++ IPV6_PMTUDISC_PROBE = 0x3 ++ IPV6_PMTUDISC_WANT = 0x1 ++ IPV6_RECVDSTOPTS = 0x3a ++ IPV6_RECVERR = 0x19 ++ IPV6_RECVHOPLIMIT = 0x33 ++ IPV6_RECVHOPOPTS = 0x35 ++ IPV6_RECVPKTINFO = 0x31 ++ IPV6_RECVRTHDR = 0x38 ++ IPV6_RECVTCLASS = 0x42 ++ IPV6_ROUTER_ALERT = 0x16 ++ IPV6_RTHDR = 0x39 ++ IPV6_RTHDRDSTOPTS = 0x37 ++ IPV6_RTHDR_LOOSE = 0x0 ++ IPV6_RTHDR_STRICT = 0x1 ++ IPV6_RTHDR_TYPE_0 = 0x0 ++ IPV6_RXDSTOPTS = 0x3b ++ IPV6_RXHOPOPTS = 0x36 ++ IPV6_TCLASS = 0x43 ++ IPV6_UNICAST_HOPS = 0x10 ++ IPV6_V6ONLY = 0x1a ++ IPV6_XFRM_POLICY = 0x23 ++ IP_ADD_MEMBERSHIP = 0x23 ++ IP_ADD_SOURCE_MEMBERSHIP = 0x27 ++ IP_BLOCK_SOURCE = 0x26 ++ IP_DEFAULT_MULTICAST_LOOP = 0x1 ++ IP_DEFAULT_MULTICAST_TTL = 0x1 ++ IP_DF = 0x4000 ++ IP_DROP_MEMBERSHIP = 0x24 ++ IP_DROP_SOURCE_MEMBERSHIP = 0x28 ++ IP_FREEBIND = 0xf ++ IP_HDRINCL = 0x3 ++ IP_IPSEC_POLICY = 0x10 ++ IP_MAXPACKET = 0xffff ++ IP_MAX_MEMBERSHIPS = 0x14 ++ IP_MF = 0x2000 ++ IP_MINTTL = 0x15 ++ IP_MSFILTER = 0x29 ++ IP_MSS = 0x240 ++ IP_MTU = 0xe ++ IP_MTU_DISCOVER = 0xa ++ IP_MULTICAST_IF = 0x20 ++ IP_MULTICAST_LOOP = 0x22 ++ IP_MULTICAST_TTL = 0x21 ++ IP_OFFMASK = 0x1fff ++ IP_OPTIONS = 0x4 ++ IP_ORIGDSTADDR = 0x14 ++ IP_PASSSEC = 0x12 ++ IP_PKTINFO = 0x8 ++ IP_PKTOPTIONS = 0x9 ++ IP_PMTUDISC = 0xa ++ IP_PMTUDISC_DO = 0x2 ++ IP_PMTUDISC_DONT = 0x0 ++ IP_PMTUDISC_PROBE = 0x3 ++ IP_PMTUDISC_WANT = 0x1 ++ IP_RECVERR = 0xb ++ IP_RECVOPTS = 0x6 ++ IP_RECVORIGDSTADDR = 0x14 ++ IP_RECVRETOPTS = 0x7 ++ IP_RECVTOS = 0xd ++ IP_RECVTTL = 0xc ++ IP_RETOPTS = 0x7 ++ IP_RF = 0x8000 ++ IP_ROUTER_ALERT = 0x5 ++ IP_TOS = 0x1 ++ IP_TRANSPARENT = 0x13 ++ IP_TTL = 0x2 ++ IP_UNBLOCK_SOURCE = 0x25 ++ IP_XFRM_POLICY = 0x11 ++ ISIG = 0x1 ++ ISTRIP = 0x20 ++ IUCLC = 0x200 ++ IUTF8 = 0x4000 ++ IXANY = 0x800 ++ IXOFF = 0x1000 ++ IXON = 0x400 ++ LINUX_REBOOT_CMD_CAD_OFF = 0x0 ++ LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef ++ LINUX_REBOOT_CMD_HALT = 0xcdef0123 ++ LINUX_REBOOT_CMD_KEXEC = 0x45584543 ++ LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc ++ LINUX_REBOOT_CMD_RESTART = 0x1234567 ++ LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 ++ LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 ++ LINUX_REBOOT_MAGIC1 = 0xfee1dead ++ LINUX_REBOOT_MAGIC2 = 0x28121969 ++ LOCK_EX = 0x2 ++ LOCK_NB = 0x4 ++ LOCK_SH = 0x1 ++ LOCK_UN = 0x8 ++ MADV_DOFORK = 0xb ++ MADV_DONTFORK = 0xa ++ MADV_DONTNEED = 0x4 ++ MADV_HUGEPAGE = 0xe ++ MADV_HWPOISON = 0x64 ++ MADV_MERGEABLE = 0xc ++ MADV_NOHUGEPAGE = 0xf ++ MADV_NORMAL = 0x0 ++ MADV_RANDOM = 0x1 ++ MADV_REMOVE = 0x9 ++ MADV_SEQUENTIAL = 0x2 ++ MADV_UNMERGEABLE = 0xd ++ MADV_WILLNEED = 0x3 ++ MAP_ANON = 0x20 ++ MAP_ANONYMOUS = 0x20 ++ MAP_DENYWRITE = 0x800 ++ MAP_EXECUTABLE = 0x1000 ++ MAP_FILE = 0x0 ++ MAP_FIXED = 0x10 ++ MAP_GROWSDOWN = 0x100 ++ MAP_LOCKED = 0x2000 ++ MAP_NONBLOCK = 0x10000 ++ MAP_NORESERVE = 0x4000 ++ MAP_POPULATE = 0x8000 ++ MAP_PRIVATE = 0x2 ++ MAP_SHARED = 0x1 ++ MAP_TYPE = 0xf ++ MCL_CURRENT = 0x1 ++ MCL_FUTURE = 0x2 ++ MNT_DETACH = 0x2 ++ MNT_EXPIRE = 0x4 ++ MNT_FORCE = 0x1 ++ MSG_CMSG_CLOEXEC = 0x40000000 ++ MSG_CONFIRM = 0x800 ++ MSG_CTRUNC = 0x8 ++ MSG_DONTROUTE = 0x4 ++ MSG_DONTWAIT = 0x40 ++ MSG_EOR = 0x80 ++ MSG_ERRQUEUE = 0x2000 ++ MSG_FASTOPEN = 0x20000000 ++ MSG_FIN = 0x200 ++ MSG_MORE = 0x8000 ++ MSG_NOSIGNAL = 0x4000 ++ MSG_OOB = 0x1 ++ MSG_PEEK = 0x2 ++ MSG_PROXY = 0x10 ++ MSG_RST = 0x1000 ++ MSG_SYN = 0x400 ++ MSG_TRUNC = 0x20 ++ MSG_TRYHARD = 0x4 ++ MSG_WAITALL = 0x100 ++ MSG_WAITFORONE = 0x10000 ++ MS_ACTIVE = 0x40000000 ++ MS_ASYNC = 0x1 ++ MS_BIND = 0x1000 ++ MS_DIRSYNC = 0x80 ++ MS_INVALIDATE = 0x2 ++ MS_I_VERSION = 0x800000 ++ MS_KERNMOUNT = 0x400000 ++ MS_MANDLOCK = 0x40 ++ MS_MGC_MSK = 0xffff0000 ++ MS_MGC_VAL = 0xc0ed0000 ++ MS_MOVE = 0x2000 ++ MS_NOATIME = 0x400 ++ MS_NODEV = 0x4 ++ MS_NODIRATIME = 0x800 ++ MS_NOEXEC = 0x8 ++ MS_NOSUID = 0x2 ++ MS_NOUSER = -0x80000000 ++ MS_POSIXACL = 0x10000 ++ MS_PRIVATE = 0x40000 ++ MS_RDONLY = 0x1 ++ MS_REC = 0x4000 ++ MS_RELATIME = 0x200000 ++ MS_REMOUNT = 0x20 ++ MS_RMT_MASK = 0x800051 ++ MS_SHARED = 0x100000 ++ MS_SILENT = 0x8000 ++ MS_SLAVE = 0x80000 ++ MS_STRICTATIME = 0x1000000 ++ MS_SYNC = 0x4 ++ MS_SYNCHRONOUS = 0x10 ++ MS_UNBINDABLE = 0x20000 ++ NAME_MAX = 0xff ++ NETLINK_ADD_MEMBERSHIP = 0x1 ++ NETLINK_AUDIT = 0x9 ++ NETLINK_BROADCAST_ERROR = 0x4 ++ NETLINK_CONNECTOR = 0xb ++ NETLINK_CRYPTO = 0x15 ++ NETLINK_DNRTMSG = 0xe ++ NETLINK_DROP_MEMBERSHIP = 0x2 ++ NETLINK_ECRYPTFS = 0x13 ++ NETLINK_FIB_LOOKUP = 0xa ++ NETLINK_FIREWALL = 0x3 ++ NETLINK_GENERIC = 0x10 ++ NETLINK_INET_DIAG = 0x4 ++ NETLINK_IP6_FW = 0xd ++ NETLINK_ISCSI = 0x8 ++ NETLINK_KOBJECT_UEVENT = 0xf ++ NETLINK_NETFILTER = 0xc ++ NETLINK_NFLOG = 0x5 ++ NETLINK_NO_ENOBUFS = 0x5 ++ NETLINK_PKTINFO = 0x3 ++ NETLINK_RDMA = 0x14 ++ NETLINK_ROUTE = 0x0 ++ NETLINK_RX_RING = 0x6 ++ NETLINK_SCSITRANSPORT = 0x12 ++ NETLINK_SELINUX = 0x7 ++ NETLINK_SOCK_DIAG = 0x4 ++ NETLINK_TX_RING = 0x7 ++ NETLINK_UNUSED = 0x1 ++ NETLINK_USERSOCK = 0x2 ++ NETLINK_XFRM = 0x6 ++ NL0 = 0x0 ++ NL1 = 0x100 ++ NLA_ALIGNTO = 0x4 ++ NLA_F_NESTED = 0x8000 ++ NLA_F_NET_BYTEORDER = 0x4000 ++ NLA_HDRLEN = 0x4 ++ NLDLY = 0x100 ++ NLMSG_ALIGNTO = 0x4 ++ NLMSG_DONE = 0x3 ++ NLMSG_ERROR = 0x2 ++ NLMSG_HDRLEN = 0x10 ++ NLMSG_MIN_TYPE = 0x10 ++ NLMSG_NOOP = 0x1 ++ NLMSG_OVERRUN = 0x4 ++ NLM_F_ACK = 0x4 ++ NLM_F_APPEND = 0x800 ++ NLM_F_ATOMIC = 0x400 ++ NLM_F_CREATE = 0x400 ++ NLM_F_DUMP = 0x300 ++ NLM_F_DUMP_FILTERED = 0x20 ++ NLM_F_ECHO = 0x8 ++ NLM_F_EXCL = 0x200 ++ NLM_F_MATCH = 0x200 ++ NLM_F_MULTI = 0x2 ++ NLM_F_REPLACE = 0x100 ++ NLM_F_REQUEST = 0x1 ++ NLM_F_ROOT = 0x100 ++ NOFLSH = 0x80 ++ OCRNL = 0x8 ++ OFDEL = 0x80 ++ OFILL = 0x40 ++ OLCUC = 0x2 ++ ONLCR = 0x4 ++ ONLRET = 0x20 ++ ONOCR = 0x10 ++ OPOST = 0x1 ++ O_ACCMODE = 0x3 ++ O_APPEND = 0x400 ++ O_ASYNC = 0x2000 ++ O_CLOEXEC = 0x80000 ++ O_CREAT = 0x40 ++ O_DIRECT = 0x10000 ++ O_DIRECTORY = 0x4000 ++ O_DSYNC = 0x1000 ++ O_EXCL = 0x80 ++ O_FSYNC = 0x1000 ++ O_LARGEFILE = 0x20000 ++ O_NDELAY = 0x800 ++ O_NOATIME = 0x40000 ++ O_NOCTTY = 0x100 ++ O_NOFOLLOW = 0x8000 ++ O_NONBLOCK = 0x800 ++ O_PATH = 0x200000 ++ O_RDONLY = 0x0 ++ O_RDWR = 0x2 ++ O_RSYNC = 0x1000 ++ O_SYNC = 0x1000 ++ O_TRUNC = 0x200 ++ O_WRONLY = 0x1 ++ PACKET_ADD_MEMBERSHIP = 0x1 ++ PACKET_BROADCAST = 0x1 ++ PACKET_DROP_MEMBERSHIP = 0x2 ++ PACKET_FASTROUTE = 0x6 ++ PACKET_HOST = 0x0 ++ PACKET_LOOPBACK = 0x5 ++ PACKET_MR_ALLMULTI = 0x2 ++ PACKET_MR_MULTICAST = 0x0 ++ PACKET_MR_PROMISC = 0x1 ++ PACKET_MULTICAST = 0x2 ++ PACKET_OTHERHOST = 0x3 ++ PACKET_OUTGOING = 0x4 ++ PACKET_RECV_OUTPUT = 0x3 ++ PACKET_RX_RING = 0x5 ++ PACKET_STATISTICS = 0x6 ++ PARENB = 0x100 ++ PARMRK = 0x8 ++ PARODD = 0x200 ++ PENDIN = 0x4000 ++ PRIO_PGRP = 0x1 ++ PRIO_PROCESS = 0x0 ++ PRIO_USER = 0x2 ++ PROT_EXEC = 0x4 ++ PROT_GROWSDOWN = 0x1000000 ++ PROT_GROWSUP = 0x2000000 ++ PROT_NONE = 0x0 ++ PROT_READ = 0x1 ++ PROT_WRITE = 0x2 ++ PR_CAPBSET_DROP = 0x18 ++ PR_CAPBSET_READ = 0x17 ++ PR_CLEAR_SECCOMP_FILTER = 0x25 ++ PR_ENDIAN_BIG = 0x0 ++ PR_ENDIAN_LITTLE = 0x1 ++ PR_ENDIAN_PPC_LITTLE = 0x2 ++ PR_FPEMU_NOPRINT = 0x1 ++ PR_FPEMU_SIGFPE = 0x2 ++ PR_FP_EXC_ASYNC = 0x2 ++ PR_FP_EXC_DISABLED = 0x0 ++ PR_FP_EXC_DIV = 0x10000 ++ PR_FP_EXC_INV = 0x100000 ++ PR_FP_EXC_NONRECOV = 0x1 ++ PR_FP_EXC_OVF = 0x20000 ++ PR_FP_EXC_PRECISE = 0x3 ++ PR_FP_EXC_RES = 0x80000 ++ PR_FP_EXC_SW_ENABLE = 0x80 ++ PR_FP_EXC_UND = 0x40000 ++ PR_GET_DUMPABLE = 0x3 ++ PR_GET_ENDIAN = 0x13 ++ PR_GET_FPEMU = 0x9 ++ PR_GET_FPEXC = 0xb ++ PR_GET_KEEPCAPS = 0x7 ++ PR_GET_NAME = 0x10 ++ PR_GET_PDEATHSIG = 0x2 ++ PR_GET_SECCOMP = 0x15 ++ PR_GET_SECCOMP_FILTER = 0x23 ++ PR_GET_SECUREBITS = 0x1b ++ PR_GET_TIMERSLACK = 0x1e ++ PR_GET_TIMING = 0xd ++ PR_GET_TSC = 0x19 ++ PR_GET_UNALIGN = 0x5 ++ PR_MCE_KILL = 0x21 ++ PR_MCE_KILL_CLEAR = 0x0 ++ PR_MCE_KILL_DEFAULT = 0x2 ++ PR_MCE_KILL_EARLY = 0x1 ++ PR_MCE_KILL_GET = 0x22 ++ PR_MCE_KILL_LATE = 0x0 ++ PR_MCE_KILL_SET = 0x1 ++ PR_SECCOMP_FILTER_EVENT = 0x1 ++ PR_SECCOMP_FILTER_SYSCALL = 0x0 ++ PR_SET_DUMPABLE = 0x4 ++ PR_SET_ENDIAN = 0x14 ++ PR_SET_FPEMU = 0xa ++ PR_SET_FPEXC = 0xc ++ PR_SET_KEEPCAPS = 0x8 ++ PR_SET_NAME = 0xf ++ PR_SET_PDEATHSIG = 0x1 ++ PR_SET_PTRACER = 0x59616d61 ++ PR_SET_SECCOMP = 0x16 ++ PR_SET_SECCOMP_FILTER = 0x24 ++ PR_SET_SECUREBITS = 0x1c ++ PR_SET_TIMERSLACK = 0x1d ++ PR_SET_TIMING = 0xe ++ PR_SET_TSC = 0x1a ++ PR_SET_UNALIGN = 0x6 ++ PR_TASK_PERF_EVENTS_DISABLE = 0x1f ++ PR_TASK_PERF_EVENTS_ENABLE = 0x20 ++ PR_TIMING_STATISTICAL = 0x0 ++ PR_TIMING_TIMESTAMP = 0x1 ++ PR_TSC_ENABLE = 0x1 ++ PR_TSC_SIGSEGV = 0x2 ++ PR_UNALIGN_NOPRINT = 0x1 ++ PR_UNALIGN_SIGBUS = 0x2 ++ PTRACE_ATTACH = 0x10 ++ PTRACE_CONT = 0x7 ++ PTRACE_DETACH = 0x11 ++ PTRACE_EVENT_CLONE = 0x3 ++ PTRACE_EVENT_EXEC = 0x4 ++ PTRACE_EVENT_EXIT = 0x6 ++ PTRACE_EVENT_FORK = 0x1 ++ PTRACE_EVENT_VFORK = 0x2 ++ PTRACE_EVENT_VFORK_DONE = 0x5 ++ PTRACE_GETCRUNCHREGS = 0x19 ++ PTRACE_GETEVENTMSG = 0x4201 ++ PTRACE_GETFPREGS = 0xe ++ PTRACE_GETHBPREGS = 0x1d ++ PTRACE_GETREGS = 0xc ++ PTRACE_GETREGSET = 0x4204 ++ PTRACE_GETSIGINFO = 0x4202 ++ PTRACE_GETVFPREGS = 0x1b ++ PTRACE_GETWMMXREGS = 0x12 ++ PTRACE_GET_THREAD_AREA = 0x16 ++ PTRACE_KILL = 0x8 ++ PTRACE_OLDSETOPTIONS = 0x15 ++ PTRACE_O_MASK = 0x7f ++ PTRACE_O_TRACECLONE = 0x8 ++ PTRACE_O_TRACEEXEC = 0x10 ++ PTRACE_O_TRACEEXIT = 0x40 ++ PTRACE_O_TRACEFORK = 0x2 ++ PTRACE_O_TRACESYSGOOD = 0x1 ++ PTRACE_O_TRACEVFORK = 0x4 ++ PTRACE_O_TRACEVFORKDONE = 0x20 ++ PTRACE_PEEKDATA = 0x2 ++ PTRACE_PEEKTEXT = 0x1 ++ PTRACE_PEEKUSR = 0x3 ++ PTRACE_POKEDATA = 0x5 ++ PTRACE_POKETEXT = 0x4 ++ PTRACE_POKEUSR = 0x6 ++ PTRACE_SETCRUNCHREGS = 0x1a ++ PTRACE_SETFPREGS = 0xf ++ PTRACE_SETHBPREGS = 0x1e ++ PTRACE_SETOPTIONS = 0x4200 ++ PTRACE_SETREGS = 0xd ++ PTRACE_SETREGSET = 0x4205 ++ PTRACE_SETSIGINFO = 0x4203 ++ PTRACE_SETVFPREGS = 0x1c ++ PTRACE_SETWMMXREGS = 0x13 ++ PTRACE_SET_SYSCALL = 0x17 ++ PTRACE_SINGLESTEP = 0x9 ++ PTRACE_SYSCALL = 0x18 ++ PTRACE_TRACEME = 0x0 ++ PT_DATA_ADDR = 0x10004 ++ PT_TEXT_ADDR = 0x10000 ++ PT_TEXT_END_ADDR = 0x10008 ++ RLIMIT_AS = 0x9 ++ RLIMIT_CORE = 0x4 ++ RLIMIT_CPU = 0x0 ++ RLIMIT_DATA = 0x2 ++ RLIMIT_FSIZE = 0x1 ++ RLIMIT_NOFILE = 0x7 ++ RLIMIT_STACK = 0x3 ++ RLIM_INFINITY = -0x1 ++ RTAX_ADVMSS = 0x8 ++ RTAX_CWND = 0x7 ++ RTAX_FEATURES = 0xc ++ RTAX_FEATURE_ALLFRAG = 0x8 ++ RTAX_FEATURE_ECN = 0x1 ++ RTAX_FEATURE_SACK = 0x2 ++ RTAX_FEATURE_TIMESTAMP = 0x4 ++ RTAX_HOPLIMIT = 0xa ++ RTAX_INITCWND = 0xb ++ RTAX_INITRWND = 0xe ++ RTAX_LOCK = 0x1 ++ RTAX_MAX = 0xe ++ RTAX_MTU = 0x2 ++ RTAX_REORDERING = 0x9 ++ RTAX_RTO_MIN = 0xd ++ RTAX_RTT = 0x4 ++ RTAX_RTTVAR = 0x5 ++ RTAX_SSTHRESH = 0x6 ++ RTAX_UNSPEC = 0x0 ++ RTAX_WINDOW = 0x3 ++ RTA_ALIGNTO = 0x4 ++ RTA_MAX = 0x10 ++ RTCF_DIRECTSRC = 0x4000000 ++ RTCF_DOREDIRECT = 0x1000000 ++ RTCF_LOG = 0x2000000 ++ RTCF_MASQ = 0x400000 ++ RTCF_NAT = 0x800000 ++ RTCF_VALVE = 0x200000 ++ RTF_ADDRCLASSMASK = 0xf8000000 ++ RTF_ADDRCONF = 0x40000 ++ RTF_ALLONLINK = 0x20000 ++ RTF_BROADCAST = 0x10000000 ++ RTF_CACHE = 0x1000000 ++ RTF_DEFAULT = 0x10000 ++ RTF_DYNAMIC = 0x10 ++ RTF_FLOW = 0x2000000 ++ RTF_GATEWAY = 0x2 ++ RTF_HOST = 0x4 ++ RTF_INTERFACE = 0x40000000 ++ RTF_IRTT = 0x100 ++ RTF_LINKRT = 0x100000 ++ RTF_LOCAL = 0x80000000 ++ RTF_MODIFIED = 0x20 ++ RTF_MSS = 0x40 ++ RTF_MTU = 0x40 ++ RTF_MULTICAST = 0x20000000 ++ RTF_NAT = 0x8000000 ++ RTF_NOFORWARD = 0x1000 ++ RTF_NONEXTHOP = 0x200000 ++ RTF_NOPMTUDISC = 0x4000 ++ RTF_POLICY = 0x4000000 ++ RTF_REINSTATE = 0x8 ++ RTF_REJECT = 0x200 ++ RTF_STATIC = 0x400 ++ RTF_THROW = 0x2000 ++ RTF_UP = 0x1 ++ RTF_WINDOW = 0x80 ++ RTF_XRESOLVE = 0x800 ++ RTM_BASE = 0x10 ++ RTM_DELACTION = 0x31 ++ RTM_DELADDR = 0x15 ++ RTM_DELADDRLABEL = 0x49 ++ RTM_DELLINK = 0x11 ++ RTM_DELNEIGH = 0x1d ++ RTM_DELQDISC = 0x25 ++ RTM_DELROUTE = 0x19 ++ RTM_DELRULE = 0x21 ++ RTM_DELTCLASS = 0x29 ++ RTM_DELTFILTER = 0x2d ++ RTM_F_CLONED = 0x200 ++ RTM_F_EQUALIZE = 0x400 ++ RTM_F_NOTIFY = 0x100 ++ RTM_F_PREFIX = 0x800 ++ RTM_GETACTION = 0x32 ++ RTM_GETADDR = 0x16 ++ RTM_GETADDRLABEL = 0x4a ++ RTM_GETANYCAST = 0x3e ++ RTM_GETDCB = 0x4e ++ RTM_GETLINK = 0x12 ++ RTM_GETMULTICAST = 0x3a ++ RTM_GETNEIGH = 0x1e ++ RTM_GETNEIGHTBL = 0x42 ++ RTM_GETQDISC = 0x26 ++ RTM_GETROUTE = 0x1a ++ RTM_GETRULE = 0x22 ++ RTM_GETTCLASS = 0x2a ++ RTM_GETTFILTER = 0x2e ++ RTM_MAX = 0x4f ++ RTM_NEWACTION = 0x30 ++ RTM_NEWADDR = 0x14 ++ RTM_NEWADDRLABEL = 0x48 ++ RTM_NEWLINK = 0x10 ++ RTM_NEWNDUSEROPT = 0x44 ++ RTM_NEWNEIGH = 0x1c ++ RTM_NEWNEIGHTBL = 0x40 ++ RTM_NEWPREFIX = 0x34 ++ RTM_NEWQDISC = 0x24 ++ RTM_NEWROUTE = 0x18 ++ RTM_NEWRULE = 0x20 ++ RTM_NEWTCLASS = 0x28 ++ RTM_NEWTFILTER = 0x2c ++ RTM_NR_FAMILIES = 0x10 ++ RTM_NR_MSGTYPES = 0x40 ++ RTM_SETDCB = 0x4f ++ RTM_SETLINK = 0x13 ++ RTM_SETNEIGHTBL = 0x43 ++ RTNH_ALIGNTO = 0x4 ++ RTNH_F_DEAD = 0x1 ++ RTNH_F_ONLINK = 0x4 ++ RTNH_F_PERVASIVE = 0x2 ++ RTN_MAX = 0xb ++ RTPROT_BIRD = 0xc ++ RTPROT_BOOT = 0x3 ++ RTPROT_DHCP = 0x10 ++ RTPROT_DNROUTED = 0xd ++ RTPROT_GATED = 0x8 ++ RTPROT_KERNEL = 0x2 ++ RTPROT_MRT = 0xa ++ RTPROT_NTK = 0xf ++ RTPROT_RA = 0x9 ++ RTPROT_REDIRECT = 0x1 ++ RTPROT_STATIC = 0x4 ++ RTPROT_UNSPEC = 0x0 ++ RTPROT_XORP = 0xe ++ RTPROT_ZEBRA = 0xb ++ RT_CLASS_DEFAULT = 0xfd ++ RT_CLASS_LOCAL = 0xff ++ RT_CLASS_MAIN = 0xfe ++ RT_CLASS_MAX = 0xff ++ RT_CLASS_UNSPEC = 0x0 ++ RUSAGE_CHILDREN = -0x1 ++ RUSAGE_SELF = 0x0 ++ RUSAGE_THREAD = 0x1 ++ SCM_CREDENTIALS = 0x2 ++ SCM_RIGHTS = 0x1 ++ SCM_TIMESTAMP = 0x1d ++ SCM_TIMESTAMPING = 0x25 ++ SCM_TIMESTAMPNS = 0x23 ++ SHUT_RD = 0x0 ++ SHUT_RDWR = 0x2 ++ SHUT_WR = 0x1 ++ SIOCADDDLCI = 0x8980 ++ SIOCADDMULTI = 0x8931 ++ SIOCADDRT = 0x890b ++ SIOCATMARK = 0x8905 ++ SIOCDARP = 0x8953 ++ SIOCDELDLCI = 0x8981 ++ SIOCDELMULTI = 0x8932 ++ SIOCDELRT = 0x890c ++ SIOCDEVPRIVATE = 0x89f0 ++ SIOCDIFADDR = 0x8936 ++ SIOCDRARP = 0x8960 ++ SIOCGARP = 0x8954 ++ SIOCGIFADDR = 0x8915 ++ SIOCGIFBR = 0x8940 ++ SIOCGIFBRDADDR = 0x8919 ++ SIOCGIFCONF = 0x8912 ++ SIOCGIFCOUNT = 0x8938 ++ SIOCGIFDSTADDR = 0x8917 ++ SIOCGIFENCAP = 0x8925 ++ SIOCGIFFLAGS = 0x8913 ++ SIOCGIFHWADDR = 0x8927 ++ SIOCGIFINDEX = 0x8933 ++ SIOCGIFMAP = 0x8970 ++ SIOCGIFMEM = 0x891f ++ SIOCGIFMETRIC = 0x891d ++ SIOCGIFMTU = 0x8921 ++ SIOCGIFNAME = 0x8910 ++ SIOCGIFNETMASK = 0x891b ++ SIOCGIFPFLAGS = 0x8935 ++ SIOCGIFSLAVE = 0x8929 ++ SIOCGIFTXQLEN = 0x8942 ++ SIOCGPGRP = 0x8904 ++ SIOCGRARP = 0x8961 ++ SIOCGSTAMP = 0x8906 ++ SIOCGSTAMPNS = 0x8907 ++ SIOCPROTOPRIVATE = 0x89e0 ++ SIOCRTMSG = 0x890d ++ SIOCSARP = 0x8955 ++ SIOCSIFADDR = 0x8916 ++ SIOCSIFBR = 0x8941 ++ SIOCSIFBRDADDR = 0x891a ++ SIOCSIFDSTADDR = 0x8918 ++ SIOCSIFENCAP = 0x8926 ++ SIOCSIFFLAGS = 0x8914 ++ SIOCSIFHWADDR = 0x8924 ++ SIOCSIFHWBROADCAST = 0x8937 ++ SIOCSIFLINK = 0x8911 ++ SIOCSIFMAP = 0x8971 ++ SIOCSIFMEM = 0x8920 ++ SIOCSIFMETRIC = 0x891e ++ SIOCSIFMTU = 0x8922 ++ SIOCSIFNAME = 0x8923 ++ SIOCSIFNETMASK = 0x891c ++ SIOCSIFPFLAGS = 0x8934 ++ SIOCSIFSLAVE = 0x8930 ++ SIOCSIFTXQLEN = 0x8943 ++ SIOCSPGRP = 0x8902 ++ SIOCSRARP = 0x8962 ++ SOCK_CLOEXEC = 0x80000 ++ SOCK_DCCP = 0x6 ++ SOCK_DGRAM = 0x2 ++ SOCK_NONBLOCK = 0x800 ++ SOCK_PACKET = 0xa ++ SOCK_RAW = 0x3 ++ SOCK_RDM = 0x4 ++ SOCK_SEQPACKET = 0x5 ++ SOCK_STREAM = 0x1 ++ SOL_AAL = 0x109 ++ SOL_ATM = 0x108 ++ SOL_DECNET = 0x105 ++ SOL_ICMPV6 = 0x3a ++ SOL_IP = 0x0 ++ SOL_IPV6 = 0x29 ++ SOL_IRDA = 0x10a ++ SOL_NETLINK = 0x10e ++ SOL_PACKET = 0x107 ++ SOL_RAW = 0xff ++ SOL_SOCKET = 0x1 ++ SOL_TCP = 0x6 ++ SOL_X25 = 0x106 ++ SOMAXCONN = 0x80 ++ SO_ACCEPTCONN = 0x1e ++ SO_ATTACH_FILTER = 0x1a ++ SO_BINDTODEVICE = 0x19 ++ SO_BROADCAST = 0x6 ++ SO_BSDCOMPAT = 0xe ++ SO_DEBUG = 0x1 ++ SO_DETACH_FILTER = 0x1b ++ SO_DOMAIN = 0x27 ++ SO_DONTROUTE = 0x5 ++ SO_ERROR = 0x4 ++ SO_KEEPALIVE = 0x9 ++ SO_LINGER = 0xd ++ SO_MARK = 0x24 ++ SO_NO_CHECK = 0xb ++ SO_OOBINLINE = 0xa ++ SO_PASSCRED = 0x10 ++ SO_PASSSEC = 0x22 ++ SO_PEERCRED = 0x11 ++ SO_PEERNAME = 0x1c ++ SO_PEERSEC = 0x1f ++ SO_PRIORITY = 0xc ++ SO_PROTOCOL = 0x26 ++ SO_RCVBUF = 0x8 ++ SO_RCVBUFFORCE = 0x21 ++ SO_RCVLOWAT = 0x12 ++ SO_RCVTIMEO = 0x14 ++ SO_REUSEADDR = 0x2 ++ SO_RXQ_OVFL = 0x28 ++ SO_SECURITY_AUTHENTICATION = 0x16 ++ SO_SECURITY_ENCRYPTION_NETWORK = 0x18 ++ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 ++ SO_SNDBUF = 0x7 ++ SO_SNDBUFFORCE = 0x20 ++ SO_SNDLOWAT = 0x13 ++ SO_SNDTIMEO = 0x15 ++ SO_TIMESTAMP = 0x1d ++ SO_TIMESTAMPING = 0x25 ++ SO_TIMESTAMPNS = 0x23 ++ SO_TYPE = 0x3 ++ SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 ++ SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 ++ SO_VM_SOCKETS_BUFFER_SIZE = 0x0 ++ SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 ++ SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 ++ SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 ++ SO_VM_SOCKETS_TRUSTED = 0x5 ++ SPLICE_F_GIFT = 0x8 ++ SPLICE_F_MORE = 0x4 ++ SPLICE_F_MOVE = 0x1 ++ SPLICE_F_NONBLOCK = 0x2 ++ S_BLKSIZE = 0x200 ++ S_IEXEC = 0x40 ++ S_IFBLK = 0x6000 ++ S_IFCHR = 0x2000 ++ S_IFDIR = 0x4000 ++ S_IFIFO = 0x1000 ++ S_IFLNK = 0xa000 ++ S_IFMT = 0xf000 ++ S_IFREG = 0x8000 ++ S_IFSOCK = 0xc000 ++ S_IREAD = 0x100 ++ S_IRGRP = 0x20 ++ S_IROTH = 0x4 ++ S_IRUSR = 0x100 ++ S_IRWXG = 0x38 ++ S_IRWXO = 0x7 ++ S_IRWXU = 0x1c0 ++ S_ISGID = 0x400 ++ S_ISUID = 0x800 ++ S_ISVTX = 0x200 ++ S_IWGRP = 0x10 ++ S_IWOTH = 0x2 ++ S_IWRITE = 0x80 ++ S_IWUSR = 0x80 ++ S_IXGRP = 0x8 ++ S_IXOTH = 0x1 ++ S_IXUSR = 0x40 ++ TAB0 = 0x0 ++ TAB1 = 0x800 ++ TAB2 = 0x1000 ++ TAB3 = 0x1800 ++ TABDLY = 0x1800 ++ TCFLSH = 0x540b ++ TCGETA = 0x5405 ++ TCGETS = 0x5401 ++ TCGETS2 = 0x802c542a ++ TCGETX = 0x5432 ++ TCIFLUSH = 0x0 ++ TCIOFF = 0x2 ++ TCIOFLUSH = 0x2 ++ TCION = 0x3 ++ TCOFLUSH = 0x1 ++ TCOOFF = 0x0 ++ TCOON = 0x1 ++ TCP_CONGESTION = 0xd ++ TCP_CORK = 0x3 ++ TCP_DEFER_ACCEPT = 0x9 ++ TCP_INFO = 0xb ++ TCP_KEEPCNT = 0x6 ++ TCP_KEEPIDLE = 0x4 ++ TCP_KEEPINTVL = 0x5 ++ TCP_LINGER2 = 0x8 ++ TCP_MAXSEG = 0x2 ++ TCP_MAXWIN = 0xffff ++ TCP_MAX_WINSHIFT = 0xe ++ TCP_MD5SIG = 0xe ++ TCP_MD5SIG_MAXKEYLEN = 0x50 ++ TCP_MSS = 0x200 ++ TCP_NODELAY = 0x1 ++ TCP_QUICKACK = 0xc ++ TCP_SYNCNT = 0x7 ++ TCP_WINDOW_CLAMP = 0xa ++ TCSAFLUSH = 0x2 ++ TCSBRK = 0x5409 ++ TCSBRKP = 0x5425 ++ TCSETA = 0x5406 ++ TCSETAF = 0x5408 ++ TCSETAW = 0x5407 ++ TCSETS = 0x5402 ++ TCSETS2 = 0x402c542b ++ TCSETSF = 0x5404 ++ TCSETSF2 = 0x402c542d ++ TCSETSW = 0x5403 ++ TCSETSW2 = 0x402c542c ++ TCSETX = 0x5433 ++ TCSETXF = 0x5434 ++ TCSETXW = 0x5435 ++ TCXONC = 0x540a ++ TIOCCBRK = 0x5428 ++ TIOCCONS = 0x541d ++ TIOCEXCL = 0x540c ++ TIOCGDEV = 0x80045432 ++ TIOCGETD = 0x5424 ++ TIOCGEXCL = 0x80045440 ++ TIOCGICOUNT = 0x545d ++ TIOCGLCKTRMIOS = 0x5456 ++ TIOCGPGRP = 0x540f ++ TIOCGPKT = 0x80045438 ++ TIOCGPTLCK = 0x80045439 ++ TIOCGPTN = 0x80045430 ++ TIOCGRS485 = 0x542e ++ TIOCGSERIAL = 0x541e ++ TIOCGSID = 0x5429 ++ TIOCGSOFTCAR = 0x5419 ++ TIOCGWINSZ = 0x5413 ++ TIOCINQ = 0x541b ++ TIOCLINUX = 0x541c ++ TIOCMBIC = 0x5417 ++ TIOCMBIS = 0x5416 ++ TIOCMGET = 0x5415 ++ TIOCMIWAIT = 0x545c ++ TIOCMSET = 0x5418 ++ TIOCM_CAR = 0x40 ++ TIOCM_CD = 0x40 ++ TIOCM_CTS = 0x20 ++ TIOCM_DSR = 0x100 ++ TIOCM_DTR = 0x2 ++ TIOCM_LE = 0x1 ++ TIOCM_RI = 0x80 ++ TIOCM_RNG = 0x80 ++ TIOCM_RTS = 0x4 ++ TIOCM_SR = 0x10 ++ TIOCM_ST = 0x8 ++ TIOCNOTTY = 0x5422 ++ TIOCNXCL = 0x540d ++ TIOCOUTQ = 0x5411 ++ TIOCPKT = 0x5420 ++ TIOCPKT_DATA = 0x0 ++ TIOCPKT_DOSTOP = 0x20 ++ TIOCPKT_FLUSHREAD = 0x1 ++ TIOCPKT_FLUSHWRITE = 0x2 ++ TIOCPKT_IOCTL = 0x40 ++ TIOCPKT_NOSTOP = 0x10 ++ TIOCPKT_START = 0x8 ++ TIOCPKT_STOP = 0x4 ++ TIOCSBRK = 0x5427 ++ TIOCSCTTY = 0x540e ++ TIOCSERCONFIG = 0x5453 ++ TIOCSERGETLSR = 0x5459 ++ TIOCSERGETMULTI = 0x545a ++ TIOCSERGSTRUCT = 0x5458 ++ TIOCSERGWILD = 0x5454 ++ TIOCSERSETMULTI = 0x545b ++ TIOCSERSWILD = 0x5455 ++ TIOCSER_TEMT = 0x1 ++ TIOCSETD = 0x5423 ++ TIOCSIG = 0x40045436 ++ TIOCSLCKTRMIOS = 0x5457 ++ TIOCSPGRP = 0x5410 ++ TIOCSPTLCK = 0x40045431 ++ TIOCSRS485 = 0x542f ++ TIOCSSERIAL = 0x541f ++ TIOCSSOFTCAR = 0x541a ++ TIOCSTI = 0x5412 ++ TIOCSWINSZ = 0x5414 ++ TIOCVHANGUP = 0x5437 ++ TOSTOP = 0x100 ++ TUNATTACHFILTER = 0x400854d5 ++ TUNDETACHFILTER = 0x400854d6 ++ TUNGETFEATURES = 0x800454cf ++ TUNGETIFF = 0x800454d2 ++ TUNGETSNDBUF = 0x800454d3 ++ TUNGETVNETHDRSZ = 0x800454d7 ++ TUNSETDEBUG = 0x400454c9 ++ TUNSETGROUP = 0x400454ce ++ TUNSETIFF = 0x400454ca ++ TUNSETLINK = 0x400454cd ++ TUNSETNOCSUM = 0x400454c8 ++ TUNSETOFFLOAD = 0x400454d0 ++ TUNSETOWNER = 0x400454cc ++ TUNSETPERSIST = 0x400454cb ++ TUNSETSNDBUF = 0x400454d4 ++ TUNSETTXFILTER = 0x400454d1 ++ TUNSETVNETHDRSZ = 0x400454d8 ++ VDISCARD = 0xd ++ VEOF = 0x4 ++ VEOL = 0xb ++ VEOL2 = 0x10 ++ VERASE = 0x2 ++ VINTR = 0x0 ++ VKILL = 0x3 ++ VLNEXT = 0xf ++ VMADDR_CID_ANY = 0xffffffff ++ VMADDR_CID_HOST = 0x2 ++ VMADDR_CID_HYPERVISOR = 0x0 ++ VMADDR_CID_RESERVED = 0x1 ++ VMADDR_PORT_ANY = 0xffffffff ++ VMIN = 0x6 ++ VQUIT = 0x1 ++ VREPRINT = 0xc ++ VSTART = 0x8 ++ VSTOP = 0x9 ++ VSUSP = 0xa ++ VSWTC = 0x7 ++ VT0 = 0x0 ++ VT1 = 0x4000 ++ VTDLY = 0x4000 ++ VTIME = 0x5 ++ VWERASE = 0xe ++ WALL = 0x40000000 ++ WCLONE = 0x80000000 ++ WCONTINUED = 0x8 ++ WEXITED = 0x4 ++ WNOHANG = 0x1 ++ WNOTHREAD = 0x20000000 ++ WNOWAIT = 0x1000000 ++ WORDSIZE = 0x20 ++ WSTOPPED = 0x2 ++ WUNTRACED = 0x2 ++ XCASE = 0x4 ++ XTABS = 0x1800 ++) ++ ++// Errors ++const ( ++ E2BIG = syscall.Errno(0x7) ++ EACCES = syscall.Errno(0xd) ++ EADDRINUSE = syscall.Errno(0x62) ++ EADDRNOTAVAIL = syscall.Errno(0x63) ++ EADV = syscall.Errno(0x44) ++ EAFNOSUPPORT = syscall.Errno(0x61) ++ EAGAIN = syscall.Errno(0xb) ++ EALREADY = syscall.Errno(0x72) ++ EBADE = syscall.Errno(0x34) ++ EBADF = syscall.Errno(0x9) ++ EBADFD = syscall.Errno(0x4d) ++ EBADMSG = syscall.Errno(0x4a) ++ EBADR = syscall.Errno(0x35) ++ EBADRQC = syscall.Errno(0x38) ++ EBADSLT = syscall.Errno(0x39) ++ EBFONT = syscall.Errno(0x3b) ++ EBUSY = syscall.Errno(0x10) ++ ECANCELED = syscall.Errno(0x7d) ++ ECHILD = syscall.Errno(0xa) ++ ECHRNG = syscall.Errno(0x2c) ++ ECOMM = syscall.Errno(0x46) ++ ECONNABORTED = syscall.Errno(0x67) ++ ECONNREFUSED = syscall.Errno(0x6f) ++ ECONNRESET = syscall.Errno(0x68) ++ EDEADLK = syscall.Errno(0x23) ++ EDEADLOCK = syscall.Errno(0x23) ++ EDESTADDRREQ = syscall.Errno(0x59) ++ EDOM = syscall.Errno(0x21) ++ EDOTDOT = syscall.Errno(0x49) ++ EDQUOT = syscall.Errno(0x7a) ++ EEXIST = syscall.Errno(0x11) ++ EFAULT = syscall.Errno(0xe) ++ EFBIG = syscall.Errno(0x1b) ++ EHOSTDOWN = syscall.Errno(0x70) ++ EHOSTUNREACH = syscall.Errno(0x71) ++ EHWPOISON = syscall.Errno(0x85) ++ EIDRM = syscall.Errno(0x2b) ++ EILSEQ = syscall.Errno(0x54) ++ EINPROGRESS = syscall.Errno(0x73) ++ EINTR = syscall.Errno(0x4) ++ EINVAL = syscall.Errno(0x16) ++ EIO = syscall.Errno(0x5) ++ EISCONN = syscall.Errno(0x6a) ++ EISDIR = syscall.Errno(0x15) ++ EISNAM = syscall.Errno(0x78) ++ EKEYEXPIRED = syscall.Errno(0x7f) ++ EKEYREJECTED = syscall.Errno(0x81) ++ EKEYREVOKED = syscall.Errno(0x80) ++ EL2HLT = syscall.Errno(0x33) ++ EL2NSYNC = syscall.Errno(0x2d) ++ EL3HLT = syscall.Errno(0x2e) ++ EL3RST = syscall.Errno(0x2f) ++ ELIBACC = syscall.Errno(0x4f) ++ ELIBBAD = syscall.Errno(0x50) ++ ELIBEXEC = syscall.Errno(0x53) ++ ELIBMAX = syscall.Errno(0x52) ++ ELIBSCN = syscall.Errno(0x51) ++ ELNRNG = syscall.Errno(0x30) ++ ELOOP = syscall.Errno(0x28) ++ EMEDIUMTYPE = syscall.Errno(0x7c) ++ EMFILE = syscall.Errno(0x18) ++ EMLINK = syscall.Errno(0x1f) ++ EMSGSIZE = syscall.Errno(0x5a) ++ EMULTIHOP = syscall.Errno(0x48) ++ ENAMETOOLONG = syscall.Errno(0x24) ++ ENAVAIL = syscall.Errno(0x77) ++ ENETDOWN = syscall.Errno(0x64) ++ ENETRESET = syscall.Errno(0x66) ++ ENETUNREACH = syscall.Errno(0x65) ++ ENFILE = syscall.Errno(0x17) ++ ENOANO = syscall.Errno(0x37) ++ ENOBUFS = syscall.Errno(0x69) ++ ENOCSI = syscall.Errno(0x32) ++ ENODATA = syscall.Errno(0x3d) ++ ENODEV = syscall.Errno(0x13) ++ ENOENT = syscall.Errno(0x2) ++ ENOEXEC = syscall.Errno(0x8) ++ ENOKEY = syscall.Errno(0x7e) ++ ENOLCK = syscall.Errno(0x25) ++ ENOLINK = syscall.Errno(0x43) ++ ENOMEDIUM = syscall.Errno(0x7b) ++ ENOMEM = syscall.Errno(0xc) ++ ENOMSG = syscall.Errno(0x2a) ++ ENONET = syscall.Errno(0x40) ++ ENOPKG = syscall.Errno(0x41) ++ ENOPROTOOPT = syscall.Errno(0x5c) ++ ENOSPC = syscall.Errno(0x1c) ++ ENOSR = syscall.Errno(0x3f) ++ ENOSTR = syscall.Errno(0x3c) ++ ENOSYS = syscall.Errno(0x26) ++ ENOTBLK = syscall.Errno(0xf) ++ ENOTCONN = syscall.Errno(0x6b) ++ ENOTDIR = syscall.Errno(0x14) ++ ENOTEMPTY = syscall.Errno(0x27) ++ ENOTNAM = syscall.Errno(0x76) ++ ENOTRECOVERABLE = syscall.Errno(0x83) ++ ENOTSOCK = syscall.Errno(0x58) ++ ENOTSUP = syscall.Errno(0x5f) ++ ENOTTY = syscall.Errno(0x19) ++ ENOTUNIQ = syscall.Errno(0x4c) ++ ENXIO = syscall.Errno(0x6) ++ EOPNOTSUPP = syscall.Errno(0x5f) ++ EOVERFLOW = syscall.Errno(0x4b) ++ EOWNERDEAD = syscall.Errno(0x82) ++ EPERM = syscall.Errno(0x1) ++ EPFNOSUPPORT = syscall.Errno(0x60) ++ EPIPE = syscall.Errno(0x20) ++ EPROTO = syscall.Errno(0x47) ++ EPROTONOSUPPORT = syscall.Errno(0x5d) ++ EPROTOTYPE = syscall.Errno(0x5b) ++ ERANGE = syscall.Errno(0x22) ++ EREMCHG = syscall.Errno(0x4e) ++ EREMOTE = syscall.Errno(0x42) ++ EREMOTEIO = syscall.Errno(0x79) ++ ERESTART = syscall.Errno(0x55) ++ ERFKILL = syscall.Errno(0x84) ++ EROFS = syscall.Errno(0x1e) ++ ESHUTDOWN = syscall.Errno(0x6c) ++ ESOCKTNOSUPPORT = syscall.Errno(0x5e) ++ ESPIPE = syscall.Errno(0x1d) ++ ESRCH = syscall.Errno(0x3) ++ ESRMNT = syscall.Errno(0x45) ++ ESTALE = syscall.Errno(0x74) ++ ESTRPIPE = syscall.Errno(0x56) ++ ETIME = syscall.Errno(0x3e) ++ ETIMEDOUT = syscall.Errno(0x6e) ++ ETOOMANYREFS = syscall.Errno(0x6d) ++ ETXTBSY = syscall.Errno(0x1a) ++ EUCLEAN = syscall.Errno(0x75) ++ EUNATCH = syscall.Errno(0x31) ++ EUSERS = syscall.Errno(0x57) ++ EWOULDBLOCK = syscall.Errno(0xb) ++ EXDEV = syscall.Errno(0x12) ++ EXFULL = syscall.Errno(0x36) ++) ++ ++// Signals ++const ( ++ SIGABRT = syscall.Signal(0x6) ++ SIGALRM = syscall.Signal(0xe) ++ SIGBUS = syscall.Signal(0x7) ++ SIGCHLD = syscall.Signal(0x11) ++ SIGCLD = syscall.Signal(0x11) ++ SIGCONT = syscall.Signal(0x12) ++ SIGFPE = syscall.Signal(0x8) ++ SIGHUP = syscall.Signal(0x1) ++ SIGILL = syscall.Signal(0x4) ++ SIGINT = syscall.Signal(0x2) ++ SIGIO = syscall.Signal(0x1d) ++ SIGIOT = syscall.Signal(0x6) ++ SIGKILL = syscall.Signal(0x9) ++ SIGPIPE = syscall.Signal(0xd) ++ SIGPOLL = syscall.Signal(0x1d) ++ SIGPROF = syscall.Signal(0x1b) ++ SIGPWR = syscall.Signal(0x1e) ++ SIGQUIT = syscall.Signal(0x3) ++ SIGSEGV = syscall.Signal(0xb) ++ SIGSTKFLT = syscall.Signal(0x10) ++ SIGSTOP = syscall.Signal(0x13) ++ SIGSYS = syscall.Signal(0x1f) ++ SIGTERM = syscall.Signal(0xf) ++ SIGTRAP = syscall.Signal(0x5) ++ SIGTSTP = syscall.Signal(0x14) ++ SIGTTIN = syscall.Signal(0x15) ++ SIGTTOU = syscall.Signal(0x16) ++ SIGUNUSED = syscall.Signal(0x1f) ++ SIGURG = syscall.Signal(0x17) ++ SIGUSR1 = syscall.Signal(0xa) ++ SIGUSR2 = syscall.Signal(0xc) ++ SIGVTALRM = syscall.Signal(0x1a) ++ SIGWINCH = syscall.Signal(0x1c) ++ SIGXCPU = syscall.Signal(0x18) ++ SIGXFSZ = syscall.Signal(0x19) ++) ++ ++// Error table ++var errors = [...]string{ ++ 1: "operation not permitted", ++ 2: "no such file or directory", ++ 3: "no such process", ++ 4: "interrupted system call", ++ 5: "input/output error", ++ 6: "no such device or address", ++ 7: "argument list too long", ++ 8: "exec format error", ++ 9: "bad file descriptor", ++ 10: "no child processes", ++ 11: "resource temporarily unavailable", ++ 12: "cannot allocate memory", ++ 13: "permission denied", ++ 14: "bad address", ++ 15: "block device required", ++ 16: "device or resource busy", ++ 17: "file exists", ++ 18: "invalid cross-device link", ++ 19: "no such device", ++ 20: "not a directory", ++ 21: "is a directory", ++ 22: "invalid argument", ++ 23: "too many open files in system", ++ 24: "too many open files", ++ 25: "inappropriate ioctl for device", ++ 26: "text file busy", ++ 27: "file too large", ++ 28: "no space left on device", ++ 29: "illegal seek", ++ 30: "read-only file system", ++ 31: "too many links", ++ 32: "broken pipe", ++ 33: "numerical argument out of domain", ++ 34: "numerical result out of range", ++ 35: "resource deadlock avoided", ++ 36: "file name too long", ++ 37: "no locks available", ++ 38: "function not implemented", ++ 39: "directory not empty", ++ 40: "too many levels of symbolic links", ++ 42: "no message of desired type", ++ 43: "identifier removed", ++ 44: "channel number out of range", ++ 45: "level 2 not synchronized", ++ 46: "level 3 halted", ++ 47: "level 3 reset", ++ 48: "link number out of range", ++ 49: "protocol driver not attached", ++ 50: "no CSI structure available", ++ 51: "level 2 halted", ++ 52: "invalid exchange", ++ 53: "invalid request descriptor", ++ 54: "exchange full", ++ 55: "no anode", ++ 56: "invalid request code", ++ 57: "invalid slot", ++ 59: "bad font file format", ++ 60: "device not a stream", ++ 61: "no data available", ++ 62: "timer expired", ++ 63: "out of streams resources", ++ 64: "machine is not on the network", ++ 65: "package not installed", ++ 66: "object is remote", ++ 67: "link has been severed", ++ 68: "advertise error", ++ 69: "srmount error", ++ 70: "communication error on send", ++ 71: "protocol error", ++ 72: "multihop attempted", ++ 73: "RFS specific error", ++ 74: "bad message", ++ 75: "value too large for defined data type", ++ 76: "name not unique on network", ++ 77: "file descriptor in bad state", ++ 78: "remote address changed", ++ 79: "can not access a needed shared library", ++ 80: "accessing a corrupted shared library", ++ 81: ".lib section in a.out corrupted", ++ 82: "attempting to link in too many shared libraries", ++ 83: "cannot exec a shared library directly", ++ 84: "invalid or incomplete multibyte or wide character", ++ 85: "interrupted system call should be restarted", ++ 86: "streams pipe error", ++ 87: "too many users", ++ 88: "socket operation on non-socket", ++ 89: "destination address required", ++ 90: "message too long", ++ 91: "protocol wrong type for socket", ++ 92: "protocol not available", ++ 93: "protocol not supported", ++ 94: "socket type not supported", ++ 95: "operation not supported", ++ 96: "protocol family not supported", ++ 97: "address family not supported by protocol", ++ 98: "address already in use", ++ 99: "cannot assign requested address", ++ 100: "network is down", ++ 101: "network is unreachable", ++ 102: "network dropped connection on reset", ++ 103: "software caused connection abort", ++ 104: "connection reset by peer", ++ 105: "no buffer space available", ++ 106: "transport endpoint is already connected", ++ 107: "transport endpoint is not connected", ++ 108: "cannot send after transport endpoint shutdown", ++ 109: "too many references: cannot splice", ++ 110: "connection timed out", ++ 111: "connection refused", ++ 112: "host is down", ++ 113: "no route to host", ++ 114: "operation already in progress", ++ 115: "operation now in progress", ++ 116: "stale NFS file handle", ++ 117: "structure needs cleaning", ++ 118: "not a XENIX named type file", ++ 119: "no XENIX semaphores available", ++ 120: "is a named type file", ++ 121: "remote I/O error", ++ 122: "disk quota exceeded", ++ 123: "no medium found", ++ 124: "wrong medium type", ++ 125: "operation canceled", ++ 126: "required key not available", ++ 127: "key has expired", ++ 128: "key has been revoked", ++ 129: "key was rejected by service", ++ 130: "owner died", ++ 131: "state not recoverable", ++ 132: "operation not possible due to RF-kill", ++ 133: "unknown error 133", ++} ++ ++// Signal table ++var signals = [...]string{ ++ 1: "hangup", ++ 2: "interrupt", ++ 3: "quit", ++ 4: "illegal instruction", ++ 5: "trace/breakpoint trap", ++ 6: "aborted", ++ 7: "bus error", ++ 8: "floating point exception", ++ 9: "killed", ++ 10: "user defined signal 1", ++ 11: "segmentation fault", ++ 12: "user defined signal 2", ++ 13: "broken pipe", ++ 14: "alarm clock", ++ 15: "terminated", ++ 16: "stack fault", ++ 17: "child exited", ++ 18: "continued", ++ 19: "stopped (signal)", ++ 20: "stopped", ++ 21: "stopped (tty input)", ++ 22: "stopped (tty output)", ++ 23: "urgent I/O condition", ++ 24: "CPU time limit exceeded", ++ 25: "file size limit exceeded", ++ 26: "virtual timer expired", ++ 27: "profiling timer expired", ++ 28: "window changed", ++ 29: "I/O possible", ++ 30: "power failure", ++ 31: "bad system call", ++} +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +new file mode 100644 +index 0000000..16a18f5 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +@@ -0,0 +1,1967 @@ ++// mkerrors.sh ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build arm64,linux ++ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- _const.go ++ ++package unix ++ ++import "syscall" ++ ++const ( ++ AF_ALG = 0x26 ++ AF_APPLETALK = 0x5 ++ AF_ASH = 0x12 ++ AF_ATMPVC = 0x8 ++ AF_ATMSVC = 0x14 ++ AF_AX25 = 0x3 ++ AF_BLUETOOTH = 0x1f ++ AF_BRIDGE = 0x7 ++ AF_CAIF = 0x25 ++ AF_CAN = 0x1d ++ AF_DECnet = 0xc ++ AF_ECONET = 0x13 ++ AF_FILE = 0x1 ++ AF_IEEE802154 = 0x24 ++ AF_INET = 0x2 ++ AF_INET6 = 0xa ++ AF_IPX = 0x4 ++ AF_IRDA = 0x17 ++ AF_ISDN = 0x22 ++ AF_IUCV = 0x20 ++ AF_KEY = 0xf ++ AF_LLC = 0x1a ++ AF_LOCAL = 0x1 ++ AF_MAX = 0x29 ++ AF_NETBEUI = 0xd ++ AF_NETLINK = 0x10 ++ AF_NETROM = 0x6 ++ AF_NFC = 0x27 ++ AF_PACKET = 0x11 ++ AF_PHONET = 0x23 ++ AF_PPPOX = 0x18 ++ AF_RDS = 0x15 ++ AF_ROSE = 0xb ++ AF_ROUTE = 0x10 ++ AF_RXRPC = 0x21 ++ AF_SECURITY = 0xe ++ AF_SNA = 0x16 ++ AF_TIPC = 0x1e ++ AF_UNIX = 0x1 ++ AF_UNSPEC = 0x0 ++ AF_VSOCK = 0x28 ++ AF_WANPIPE = 0x19 ++ AF_X25 = 0x9 ++ ALG_OP_DECRYPT = 0x0 ++ ALG_OP_ENCRYPT = 0x1 ++ ALG_SET_AEAD_ASSOCLEN = 0x4 ++ ALG_SET_AEAD_AUTHSIZE = 0x5 ++ ALG_SET_IV = 0x2 ++ ALG_SET_KEY = 0x1 ++ ALG_SET_OP = 0x3 ++ ARPHRD_ADAPT = 0x108 ++ ARPHRD_APPLETLK = 0x8 ++ ARPHRD_ARCNET = 0x7 ++ ARPHRD_ASH = 0x30d ++ ARPHRD_ATM = 0x13 ++ ARPHRD_AX25 = 0x3 ++ ARPHRD_BIF = 0x307 ++ ARPHRD_CAIF = 0x336 ++ ARPHRD_CAN = 0x118 ++ ARPHRD_CHAOS = 0x5 ++ ARPHRD_CISCO = 0x201 ++ ARPHRD_CSLIP = 0x101 ++ ARPHRD_CSLIP6 = 0x103 ++ ARPHRD_DDCMP = 0x205 ++ ARPHRD_DLCI = 0xf ++ ARPHRD_ECONET = 0x30e ++ ARPHRD_EETHER = 0x2 ++ ARPHRD_ETHER = 0x1 ++ ARPHRD_EUI64 = 0x1b ++ ARPHRD_FCAL = 0x311 ++ ARPHRD_FCFABRIC = 0x313 ++ ARPHRD_FCPL = 0x312 ++ ARPHRD_FCPP = 0x310 ++ ARPHRD_FDDI = 0x306 ++ ARPHRD_FRAD = 0x302 ++ ARPHRD_HDLC = 0x201 ++ ARPHRD_HIPPI = 0x30c ++ ARPHRD_HWX25 = 0x110 ++ ARPHRD_IEEE1394 = 0x18 ++ ARPHRD_IEEE802 = 0x6 ++ ARPHRD_IEEE80211 = 0x321 ++ ARPHRD_IEEE80211_PRISM = 0x322 ++ ARPHRD_IEEE80211_RADIOTAP = 0x323 ++ ARPHRD_IEEE802154 = 0x324 ++ ARPHRD_IEEE802154_MONITOR = 0x325 ++ ARPHRD_IEEE802_TR = 0x320 ++ ARPHRD_INFINIBAND = 0x20 ++ ARPHRD_IP6GRE = 0x337 ++ ARPHRD_IPDDP = 0x309 ++ ARPHRD_IPGRE = 0x30a ++ ARPHRD_IRDA = 0x30f ++ ARPHRD_LAPB = 0x204 ++ ARPHRD_LOCALTLK = 0x305 ++ ARPHRD_LOOPBACK = 0x304 ++ ARPHRD_METRICOM = 0x17 ++ ARPHRD_NETLINK = 0x338 ++ ARPHRD_NETROM = 0x0 ++ ARPHRD_NONE = 0xfffe ++ ARPHRD_PHONET = 0x334 ++ ARPHRD_PHONET_PIPE = 0x335 ++ ARPHRD_PIMREG = 0x30b ++ ARPHRD_PPP = 0x200 ++ ARPHRD_PRONET = 0x4 ++ ARPHRD_RAWHDLC = 0x206 ++ ARPHRD_ROSE = 0x10e ++ ARPHRD_RSRVD = 0x104 ++ ARPHRD_SIT = 0x308 ++ ARPHRD_SKIP = 0x303 ++ ARPHRD_SLIP = 0x100 ++ ARPHRD_SLIP6 = 0x102 ++ ARPHRD_TUNNEL = 0x300 ++ ARPHRD_TUNNEL6 = 0x301 ++ ARPHRD_VOID = 0xffff ++ ARPHRD_X25 = 0x10f ++ B0 = 0x0 ++ B1000000 = 0x1008 ++ B110 = 0x3 ++ B115200 = 0x1002 ++ B1152000 = 0x1009 ++ B1200 = 0x9 ++ B134 = 0x4 ++ B150 = 0x5 ++ B1500000 = 0x100a ++ B1800 = 0xa ++ B19200 = 0xe ++ B200 = 0x6 ++ B2000000 = 0x100b ++ B230400 = 0x1003 ++ B2400 = 0xb ++ B2500000 = 0x100c ++ B300 = 0x7 ++ B3000000 = 0x100d ++ B3500000 = 0x100e ++ B38400 = 0xf ++ B4000000 = 0x100f ++ B460800 = 0x1004 ++ B4800 = 0xc ++ B50 = 0x1 ++ B500000 = 0x1005 ++ B57600 = 0x1001 ++ B576000 = 0x1006 ++ B600 = 0x8 ++ B75 = 0x2 ++ B921600 = 0x1007 ++ B9600 = 0xd ++ BLKBSZGET = 0x80081270 ++ BLKBSZSET = 0x40081271 ++ BLKFLSBUF = 0x1261 ++ BLKFRAGET = 0x1265 ++ BLKFRASET = 0x1264 ++ BLKGETSIZE = 0x1260 ++ BLKGETSIZE64 = 0x80081272 ++ BLKRAGET = 0x1263 ++ BLKRASET = 0x1262 ++ BLKROGET = 0x125e ++ BLKROSET = 0x125d ++ BLKRRPART = 0x125f ++ BLKSECTGET = 0x1267 ++ BLKSECTSET = 0x1266 ++ BLKSSZGET = 0x1268 ++ BOTHER = 0x1000 ++ BPF_A = 0x10 ++ BPF_ABS = 0x20 ++ BPF_ADD = 0x0 ++ BPF_ALU = 0x4 ++ BPF_AND = 0x50 ++ BPF_B = 0x10 ++ BPF_DIV = 0x30 ++ BPF_H = 0x8 ++ BPF_IMM = 0x0 ++ BPF_IND = 0x40 ++ BPF_JA = 0x0 ++ BPF_JEQ = 0x10 ++ BPF_JGE = 0x30 ++ BPF_JGT = 0x20 ++ BPF_JMP = 0x5 ++ BPF_JSET = 0x40 ++ BPF_K = 0x0 ++ BPF_LD = 0x0 ++ BPF_LDX = 0x1 ++ BPF_LEN = 0x80 ++ BPF_LSH = 0x60 ++ BPF_MAJOR_VERSION = 0x1 ++ BPF_MAXINSNS = 0x1000 ++ BPF_MEM = 0x60 ++ BPF_MEMWORDS = 0x10 ++ BPF_MINOR_VERSION = 0x1 ++ BPF_MISC = 0x7 ++ BPF_MOD = 0x90 ++ BPF_MSH = 0xa0 ++ BPF_MUL = 0x20 ++ BPF_NEG = 0x80 ++ BPF_OR = 0x40 ++ BPF_RET = 0x6 ++ BPF_RSH = 0x70 ++ BPF_ST = 0x2 ++ BPF_STX = 0x3 ++ BPF_SUB = 0x10 ++ BPF_TAX = 0x0 ++ BPF_TXA = 0x80 ++ BPF_W = 0x0 ++ BPF_X = 0x8 ++ BPF_XOR = 0xa0 ++ BRKINT = 0x2 ++ BS0 = 0x0 ++ BS1 = 0x2000 ++ BSDLY = 0x2000 ++ CAN_BCM = 0x2 ++ CAN_EFF_FLAG = 0x80000000 ++ CAN_EFF_ID_BITS = 0x1d ++ CAN_EFF_MASK = 0x1fffffff ++ CAN_ERR_FLAG = 0x20000000 ++ CAN_ERR_MASK = 0x1fffffff ++ CAN_INV_FILTER = 0x20000000 ++ CAN_ISOTP = 0x6 ++ CAN_MAX_DLC = 0x8 ++ CAN_MAX_DLEN = 0x8 ++ CAN_MCNET = 0x5 ++ CAN_MTU = 0x10 ++ CAN_NPROTO = 0x7 ++ CAN_RAW = 0x1 ++ CAN_RTR_FLAG = 0x40000000 ++ CAN_SFF_ID_BITS = 0xb ++ CAN_SFF_MASK = 0x7ff ++ CAN_TP16 = 0x3 ++ CAN_TP20 = 0x4 ++ CBAUD = 0x100f ++ CBAUDEX = 0x1000 ++ CFLUSH = 0xf ++ CIBAUD = 0x100f0000 ++ CLOCAL = 0x800 ++ CLOCK_BOOTTIME = 0x7 ++ CLOCK_BOOTTIME_ALARM = 0x9 ++ CLOCK_DEFAULT = 0x0 ++ CLOCK_EXT = 0x1 ++ CLOCK_INT = 0x2 ++ CLOCK_MONOTONIC = 0x1 ++ CLOCK_MONOTONIC_COARSE = 0x6 ++ CLOCK_MONOTONIC_RAW = 0x4 ++ CLOCK_PROCESS_CPUTIME_ID = 0x2 ++ CLOCK_REALTIME = 0x0 ++ CLOCK_REALTIME_ALARM = 0x8 ++ CLOCK_REALTIME_COARSE = 0x5 ++ CLOCK_THREAD_CPUTIME_ID = 0x3 ++ CLOCK_TXFROMRX = 0x4 ++ CLOCK_TXINT = 0x3 ++ CLONE_CHILD_CLEARTID = 0x200000 ++ CLONE_CHILD_SETTID = 0x1000000 ++ CLONE_DETACHED = 0x400000 ++ CLONE_FILES = 0x400 ++ CLONE_FS = 0x200 ++ CLONE_IO = 0x80000000 ++ CLONE_NEWCGROUP = 0x2000000 ++ CLONE_NEWIPC = 0x8000000 ++ CLONE_NEWNET = 0x40000000 ++ CLONE_NEWNS = 0x20000 ++ CLONE_NEWPID = 0x20000000 ++ CLONE_NEWUSER = 0x10000000 ++ CLONE_NEWUTS = 0x4000000 ++ CLONE_PARENT = 0x8000 ++ CLONE_PARENT_SETTID = 0x100000 ++ CLONE_PTRACE = 0x2000 ++ CLONE_SETTLS = 0x80000 ++ CLONE_SIGHAND = 0x800 ++ CLONE_SYSVSEM = 0x40000 ++ CLONE_THREAD = 0x10000 ++ CLONE_UNTRACED = 0x800000 ++ CLONE_VFORK = 0x4000 ++ CLONE_VM = 0x100 ++ CMSPAR = 0x40000000 ++ CR0 = 0x0 ++ CR1 = 0x200 ++ CR2 = 0x400 ++ CR3 = 0x600 ++ CRDLY = 0x600 ++ CREAD = 0x80 ++ CRTSCTS = 0x80000000 ++ CS5 = 0x0 ++ CS6 = 0x10 ++ CS7 = 0x20 ++ CS8 = 0x30 ++ CSIGNAL = 0xff ++ CSIZE = 0x30 ++ CSTART = 0x11 ++ CSTATUS = 0x0 ++ CSTOP = 0x13 ++ CSTOPB = 0x40 ++ CSUSP = 0x1a ++ DT_BLK = 0x6 ++ DT_CHR = 0x2 ++ DT_DIR = 0x4 ++ DT_FIFO = 0x1 ++ DT_LNK = 0xa ++ DT_REG = 0x8 ++ DT_SOCK = 0xc ++ DT_UNKNOWN = 0x0 ++ DT_WHT = 0xe ++ ECHO = 0x8 ++ ECHOCTL = 0x200 ++ ECHOE = 0x10 ++ ECHOK = 0x20 ++ ECHOKE = 0x800 ++ ECHONL = 0x40 ++ ECHOPRT = 0x400 ++ ELF_NGREG = 0x22 ++ ELF_PRARGSZ = 0x50 ++ ENCODING_DEFAULT = 0x0 ++ ENCODING_FM_MARK = 0x3 ++ ENCODING_FM_SPACE = 0x4 ++ ENCODING_MANCHESTER = 0x5 ++ ENCODING_NRZ = 0x1 ++ ENCODING_NRZI = 0x2 ++ EPOLLERR = 0x8 ++ EPOLLET = 0x80000000 ++ EPOLLHUP = 0x10 ++ EPOLLIN = 0x1 ++ EPOLLMSG = 0x400 ++ EPOLLONESHOT = 0x40000000 ++ EPOLLOUT = 0x4 ++ EPOLLPRI = 0x2 ++ EPOLLRDBAND = 0x80 ++ EPOLLRDHUP = 0x2000 ++ EPOLLRDNORM = 0x40 ++ EPOLLWAKEUP = 0x20000000 ++ EPOLLWRBAND = 0x200 ++ EPOLLWRNORM = 0x100 ++ EPOLL_CLOEXEC = 0x80000 ++ EPOLL_CTL_ADD = 0x1 ++ EPOLL_CTL_DEL = 0x2 ++ EPOLL_CTL_MOD = 0x3 ++ ETH_P_1588 = 0x88f7 ++ ETH_P_8021AD = 0x88a8 ++ ETH_P_8021AH = 0x88e7 ++ ETH_P_8021Q = 0x8100 ++ ETH_P_802_2 = 0x4 ++ ETH_P_802_3 = 0x1 ++ ETH_P_802_3_MIN = 0x600 ++ ETH_P_802_EX1 = 0x88b5 ++ ETH_P_AARP = 0x80f3 ++ ETH_P_AF_IUCV = 0xfbfb ++ ETH_P_ALL = 0x3 ++ ETH_P_AOE = 0x88a2 ++ ETH_P_ARCNET = 0x1a ++ ETH_P_ARP = 0x806 ++ ETH_P_ATALK = 0x809b ++ ETH_P_ATMFATE = 0x8884 ++ ETH_P_ATMMPOA = 0x884c ++ ETH_P_AX25 = 0x2 ++ ETH_P_BATMAN = 0x4305 ++ ETH_P_BPQ = 0x8ff ++ ETH_P_CAIF = 0xf7 ++ ETH_P_CAN = 0xc ++ ETH_P_CANFD = 0xd ++ ETH_P_CONTROL = 0x16 ++ ETH_P_CUST = 0x6006 ++ ETH_P_DDCMP = 0x6 ++ ETH_P_DEC = 0x6000 ++ ETH_P_DIAG = 0x6005 ++ ETH_P_DNA_DL = 0x6001 ++ ETH_P_DNA_RC = 0x6002 ++ ETH_P_DNA_RT = 0x6003 ++ ETH_P_DSA = 0x1b ++ ETH_P_ECONET = 0x18 ++ ETH_P_EDSA = 0xdada ++ ETH_P_FCOE = 0x8906 ++ ETH_P_FIP = 0x8914 ++ ETH_P_HDLC = 0x19 ++ ETH_P_IEEE802154 = 0xf6 ++ ETH_P_IEEEPUP = 0xa00 ++ ETH_P_IEEEPUPAT = 0xa01 ++ ETH_P_IP = 0x800 ++ ETH_P_IPV6 = 0x86dd ++ ETH_P_IPX = 0x8137 ++ ETH_P_IRDA = 0x17 ++ ETH_P_LAT = 0x6004 ++ ETH_P_LINK_CTL = 0x886c ++ ETH_P_LOCALTALK = 0x9 ++ ETH_P_LOOP = 0x60 ++ ETH_P_MOBITEX = 0x15 ++ ETH_P_MPLS_MC = 0x8848 ++ ETH_P_MPLS_UC = 0x8847 ++ ETH_P_MVRP = 0x88f5 ++ ETH_P_PAE = 0x888e ++ ETH_P_PAUSE = 0x8808 ++ ETH_P_PHONET = 0xf5 ++ ETH_P_PPPTALK = 0x10 ++ ETH_P_PPP_DISC = 0x8863 ++ ETH_P_PPP_MP = 0x8 ++ ETH_P_PPP_SES = 0x8864 ++ ETH_P_PRP = 0x88fb ++ ETH_P_PUP = 0x200 ++ ETH_P_PUPAT = 0x201 ++ ETH_P_QINQ1 = 0x9100 ++ ETH_P_QINQ2 = 0x9200 ++ ETH_P_QINQ3 = 0x9300 ++ ETH_P_RARP = 0x8035 ++ ETH_P_SCA = 0x6007 ++ ETH_P_SLOW = 0x8809 ++ ETH_P_SNAP = 0x5 ++ ETH_P_TDLS = 0x890d ++ ETH_P_TEB = 0x6558 ++ ETH_P_TIPC = 0x88ca ++ ETH_P_TRAILER = 0x1c ++ ETH_P_TR_802_2 = 0x11 ++ ETH_P_WAN_PPP = 0x7 ++ ETH_P_WCCP = 0x883e ++ ETH_P_X25 = 0x805 ++ EXTA = 0xe ++ EXTB = 0xf ++ EXTPROC = 0x10000 ++ FALLOC_FL_COLLAPSE_RANGE = 0x8 ++ FALLOC_FL_INSERT_RANGE = 0x20 ++ FALLOC_FL_KEEP_SIZE = 0x1 ++ FALLOC_FL_NO_HIDE_STALE = 0x4 ++ FALLOC_FL_PUNCH_HOLE = 0x2 ++ FALLOC_FL_ZERO_RANGE = 0x10 ++ FD_CLOEXEC = 0x1 ++ FD_SETSIZE = 0x400 ++ FF0 = 0x0 ++ FF1 = 0x8000 ++ FFDLY = 0x8000 ++ FLUSHO = 0x1000 ++ F_DUPFD = 0x0 ++ F_DUPFD_CLOEXEC = 0x406 ++ F_EXLCK = 0x4 ++ F_GETFD = 0x1 ++ F_GETFL = 0x3 ++ F_GETLEASE = 0x401 ++ F_GETLK = 0x5 ++ F_GETLK64 = 0x5 ++ F_GETOWN = 0x9 ++ F_GETOWN_EX = 0x10 ++ F_GETPIPE_SZ = 0x408 ++ F_GETSIG = 0xb ++ F_LOCK = 0x1 ++ F_NOTIFY = 0x402 ++ F_OK = 0x0 ++ F_RDLCK = 0x0 ++ F_SETFD = 0x2 ++ F_SETFL = 0x4 ++ F_SETLEASE = 0x400 ++ F_SETLK = 0x6 ++ F_SETLK64 = 0x6 ++ F_SETLKW = 0x7 ++ F_SETLKW64 = 0x7 ++ F_SETOWN = 0x8 ++ F_SETOWN_EX = 0xf ++ F_SETPIPE_SZ = 0x407 ++ F_SETSIG = 0xa ++ F_SHLCK = 0x8 ++ F_TEST = 0x3 ++ F_TLOCK = 0x2 ++ F_ULOCK = 0x0 ++ F_UNLCK = 0x2 ++ F_WRLCK = 0x1 ++ GRND_NONBLOCK = 0x1 ++ GRND_RANDOM = 0x2 ++ HUPCL = 0x400 ++ IBSHIFT = 0x10 ++ ICANON = 0x2 ++ ICMPV6_FILTER = 0x1 ++ ICRNL = 0x100 ++ IEXTEN = 0x8000 ++ IFA_F_DADFAILED = 0x8 ++ IFA_F_DEPRECATED = 0x20 ++ IFA_F_HOMEADDRESS = 0x10 ++ IFA_F_NODAD = 0x2 ++ IFA_F_OPTIMISTIC = 0x4 ++ IFA_F_PERMANENT = 0x80 ++ IFA_F_SECONDARY = 0x1 ++ IFA_F_TEMPORARY = 0x1 ++ IFA_F_TENTATIVE = 0x40 ++ IFA_MAX = 0x7 ++ IFF_802_1Q_VLAN = 0x1 ++ IFF_ALLMULTI = 0x200 ++ IFF_ATTACH_QUEUE = 0x200 ++ IFF_AUTOMEDIA = 0x4000 ++ IFF_BONDING = 0x20 ++ IFF_BRIDGE_PORT = 0x4000 ++ IFF_BROADCAST = 0x2 ++ IFF_DEBUG = 0x4 ++ IFF_DETACH_QUEUE = 0x400 ++ IFF_DISABLE_NETPOLL = 0x1000 ++ IFF_DONT_BRIDGE = 0x800 ++ IFF_DORMANT = 0x20000 ++ IFF_DYNAMIC = 0x8000 ++ IFF_EBRIDGE = 0x2 ++ IFF_ECHO = 0x40000 ++ IFF_ISATAP = 0x80 ++ IFF_LIVE_ADDR_CHANGE = 0x100000 ++ IFF_LOOPBACK = 0x8 ++ IFF_LOWER_UP = 0x10000 ++ IFF_MACVLAN = 0x200000 ++ IFF_MACVLAN_PORT = 0x2000 ++ IFF_MASTER = 0x400 ++ IFF_MASTER_8023AD = 0x8 ++ IFF_MASTER_ALB = 0x10 ++ IFF_MASTER_ARPMON = 0x100 ++ IFF_MULTICAST = 0x1000 ++ IFF_MULTI_QUEUE = 0x100 ++ IFF_NOARP = 0x80 ++ IFF_NOFILTER = 0x1000 ++ IFF_NOTRAILERS = 0x20 ++ IFF_NO_PI = 0x1000 ++ IFF_ONE_QUEUE = 0x2000 ++ IFF_OVS_DATAPATH = 0x8000 ++ IFF_PERSIST = 0x800 ++ IFF_POINTOPOINT = 0x10 ++ IFF_PORTSEL = 0x2000 ++ IFF_PROMISC = 0x100 ++ IFF_RUNNING = 0x40 ++ IFF_SLAVE = 0x800 ++ IFF_SLAVE_INACTIVE = 0x4 ++ IFF_SLAVE_NEEDARP = 0x40 ++ IFF_SUPP_NOFCS = 0x80000 ++ IFF_TAP = 0x2 ++ IFF_TEAM_PORT = 0x40000 ++ IFF_TUN = 0x1 ++ IFF_TUN_EXCL = 0x8000 ++ IFF_TX_SKB_SHARING = 0x10000 ++ IFF_UNICAST_FLT = 0x20000 ++ IFF_UP = 0x1 ++ IFF_VNET_HDR = 0x4000 ++ IFF_VOLATILE = 0x70c5a ++ IFF_WAN_HDLC = 0x200 ++ IFF_XMIT_DST_RELEASE = 0x400 ++ IFNAMSIZ = 0x10 ++ IGNBRK = 0x1 ++ IGNCR = 0x80 ++ IGNPAR = 0x4 ++ IMAXBEL = 0x2000 ++ INLCR = 0x40 ++ INPCK = 0x10 ++ IN_ACCESS = 0x1 ++ IN_ALL_EVENTS = 0xfff ++ IN_ATTRIB = 0x4 ++ IN_CLASSA_HOST = 0xffffff ++ IN_CLASSA_MAX = 0x80 ++ IN_CLASSA_NET = 0xff000000 ++ IN_CLASSA_NSHIFT = 0x18 ++ IN_CLASSB_HOST = 0xffff ++ IN_CLASSB_MAX = 0x10000 ++ IN_CLASSB_NET = 0xffff0000 ++ IN_CLASSB_NSHIFT = 0x10 ++ IN_CLASSC_HOST = 0xff ++ IN_CLASSC_NET = 0xffffff00 ++ IN_CLASSC_NSHIFT = 0x8 ++ IN_CLOEXEC = 0x80000 ++ IN_CLOSE = 0x18 ++ IN_CLOSE_NOWRITE = 0x10 ++ IN_CLOSE_WRITE = 0x8 ++ IN_CREATE = 0x100 ++ IN_DELETE = 0x200 ++ IN_DELETE_SELF = 0x400 ++ IN_DONT_FOLLOW = 0x2000000 ++ IN_EXCL_UNLINK = 0x4000000 ++ IN_IGNORED = 0x8000 ++ IN_ISDIR = 0x40000000 ++ IN_LOOPBACKNET = 0x7f ++ IN_MASK_ADD = 0x20000000 ++ IN_MODIFY = 0x2 ++ IN_MOVE = 0xc0 ++ IN_MOVED_FROM = 0x40 ++ IN_MOVED_TO = 0x80 ++ IN_MOVE_SELF = 0x800 ++ IN_NONBLOCK = 0x800 ++ IN_ONESHOT = 0x80000000 ++ IN_ONLYDIR = 0x1000000 ++ IN_OPEN = 0x20 ++ IN_Q_OVERFLOW = 0x4000 ++ IN_UNMOUNT = 0x2000 ++ IPPROTO_AH = 0x33 ++ IPPROTO_BEETPH = 0x5e ++ IPPROTO_COMP = 0x6c ++ IPPROTO_DCCP = 0x21 ++ IPPROTO_DSTOPTS = 0x3c ++ IPPROTO_EGP = 0x8 ++ IPPROTO_ENCAP = 0x62 ++ IPPROTO_ESP = 0x32 ++ IPPROTO_FRAGMENT = 0x2c ++ IPPROTO_GRE = 0x2f ++ IPPROTO_HOPOPTS = 0x0 ++ IPPROTO_ICMP = 0x1 ++ IPPROTO_ICMPV6 = 0x3a ++ IPPROTO_IDP = 0x16 ++ IPPROTO_IGMP = 0x2 ++ IPPROTO_IP = 0x0 ++ IPPROTO_IPIP = 0x4 ++ IPPROTO_IPV6 = 0x29 ++ IPPROTO_MH = 0x87 ++ IPPROTO_MTP = 0x5c ++ IPPROTO_NONE = 0x3b ++ IPPROTO_PIM = 0x67 ++ IPPROTO_PUP = 0xc ++ IPPROTO_RAW = 0xff ++ IPPROTO_ROUTING = 0x2b ++ IPPROTO_RSVP = 0x2e ++ IPPROTO_SCTP = 0x84 ++ IPPROTO_TCP = 0x6 ++ IPPROTO_TP = 0x1d ++ IPPROTO_UDP = 0x11 ++ IPPROTO_UDPLITE = 0x88 ++ IPV6_2292DSTOPTS = 0x4 ++ IPV6_2292HOPLIMIT = 0x8 ++ IPV6_2292HOPOPTS = 0x3 ++ IPV6_2292PKTINFO = 0x2 ++ IPV6_2292PKTOPTIONS = 0x6 ++ IPV6_2292RTHDR = 0x5 ++ IPV6_ADDRFORM = 0x1 ++ IPV6_ADD_MEMBERSHIP = 0x14 ++ IPV6_AUTHHDR = 0xa ++ IPV6_CHECKSUM = 0x7 ++ IPV6_DROP_MEMBERSHIP = 0x15 ++ IPV6_DSTOPTS = 0x3b ++ IPV6_HOPLIMIT = 0x34 ++ IPV6_HOPOPTS = 0x36 ++ IPV6_IPSEC_POLICY = 0x22 ++ IPV6_JOIN_ANYCAST = 0x1b ++ IPV6_JOIN_GROUP = 0x14 ++ IPV6_LEAVE_ANYCAST = 0x1c ++ IPV6_LEAVE_GROUP = 0x15 ++ IPV6_MTU = 0x18 ++ IPV6_MTU_DISCOVER = 0x17 ++ IPV6_MULTICAST_HOPS = 0x12 ++ IPV6_MULTICAST_IF = 0x11 ++ IPV6_MULTICAST_LOOP = 0x13 ++ IPV6_NEXTHOP = 0x9 ++ IPV6_PKTINFO = 0x32 ++ IPV6_PMTUDISC_DO = 0x2 ++ IPV6_PMTUDISC_DONT = 0x0 ++ IPV6_PMTUDISC_PROBE = 0x3 ++ IPV6_PMTUDISC_WANT = 0x1 ++ IPV6_RECVDSTOPTS = 0x3a ++ IPV6_RECVERR = 0x19 ++ IPV6_RECVHOPLIMIT = 0x33 ++ IPV6_RECVHOPOPTS = 0x35 ++ IPV6_RECVPKTINFO = 0x31 ++ IPV6_RECVRTHDR = 0x38 ++ IPV6_RECVTCLASS = 0x42 ++ IPV6_ROUTER_ALERT = 0x16 ++ IPV6_RTHDR = 0x39 ++ IPV6_RTHDRDSTOPTS = 0x37 ++ IPV6_RTHDR_LOOSE = 0x0 ++ IPV6_RTHDR_STRICT = 0x1 ++ IPV6_RTHDR_TYPE_0 = 0x0 ++ IPV6_RXDSTOPTS = 0x3b ++ IPV6_RXHOPOPTS = 0x36 ++ IPV6_TCLASS = 0x43 ++ IPV6_UNICAST_HOPS = 0x10 ++ IPV6_V6ONLY = 0x1a ++ IPV6_XFRM_POLICY = 0x23 ++ IP_ADD_MEMBERSHIP = 0x23 ++ IP_ADD_SOURCE_MEMBERSHIP = 0x27 ++ IP_BLOCK_SOURCE = 0x26 ++ IP_DEFAULT_MULTICAST_LOOP = 0x1 ++ IP_DEFAULT_MULTICAST_TTL = 0x1 ++ IP_DF = 0x4000 ++ IP_DROP_MEMBERSHIP = 0x24 ++ IP_DROP_SOURCE_MEMBERSHIP = 0x28 ++ IP_FREEBIND = 0xf ++ IP_HDRINCL = 0x3 ++ IP_IPSEC_POLICY = 0x10 ++ IP_MAXPACKET = 0xffff ++ IP_MAX_MEMBERSHIPS = 0x14 ++ IP_MF = 0x2000 ++ IP_MINTTL = 0x15 ++ IP_MSFILTER = 0x29 ++ IP_MSS = 0x240 ++ IP_MTU = 0xe ++ IP_MTU_DISCOVER = 0xa ++ IP_MULTICAST_ALL = 0x31 ++ IP_MULTICAST_IF = 0x20 ++ IP_MULTICAST_LOOP = 0x22 ++ IP_MULTICAST_TTL = 0x21 ++ IP_OFFMASK = 0x1fff ++ IP_OPTIONS = 0x4 ++ IP_ORIGDSTADDR = 0x14 ++ IP_PASSSEC = 0x12 ++ IP_PKTINFO = 0x8 ++ IP_PKTOPTIONS = 0x9 ++ IP_PMTUDISC = 0xa ++ IP_PMTUDISC_DO = 0x2 ++ IP_PMTUDISC_DONT = 0x0 ++ IP_PMTUDISC_PROBE = 0x3 ++ IP_PMTUDISC_WANT = 0x1 ++ IP_RECVERR = 0xb ++ IP_RECVOPTS = 0x6 ++ IP_RECVORIGDSTADDR = 0x14 ++ IP_RECVRETOPTS = 0x7 ++ IP_RECVTOS = 0xd ++ IP_RECVTTL = 0xc ++ IP_RETOPTS = 0x7 ++ IP_RF = 0x8000 ++ IP_ROUTER_ALERT = 0x5 ++ IP_TOS = 0x1 ++ IP_TRANSPARENT = 0x13 ++ IP_TTL = 0x2 ++ IP_UNBLOCK_SOURCE = 0x25 ++ IP_UNICAST_IF = 0x32 ++ IP_XFRM_POLICY = 0x11 ++ ISIG = 0x1 ++ ISTRIP = 0x20 ++ IUCLC = 0x200 ++ IUTF8 = 0x4000 ++ IXANY = 0x800 ++ IXOFF = 0x1000 ++ IXON = 0x400 ++ LINUX_REBOOT_CMD_CAD_OFF = 0x0 ++ LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef ++ LINUX_REBOOT_CMD_HALT = 0xcdef0123 ++ LINUX_REBOOT_CMD_KEXEC = 0x45584543 ++ LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc ++ LINUX_REBOOT_CMD_RESTART = 0x1234567 ++ LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 ++ LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 ++ LINUX_REBOOT_MAGIC1 = 0xfee1dead ++ LINUX_REBOOT_MAGIC2 = 0x28121969 ++ LOCK_EX = 0x2 ++ LOCK_NB = 0x4 ++ LOCK_SH = 0x1 ++ LOCK_UN = 0x8 ++ MADV_DODUMP = 0x11 ++ MADV_DOFORK = 0xb ++ MADV_DONTDUMP = 0x10 ++ MADV_DONTFORK = 0xa ++ MADV_DONTNEED = 0x4 ++ MADV_HUGEPAGE = 0xe ++ MADV_HWPOISON = 0x64 ++ MADV_MERGEABLE = 0xc ++ MADV_NOHUGEPAGE = 0xf ++ MADV_NORMAL = 0x0 ++ MADV_RANDOM = 0x1 ++ MADV_REMOVE = 0x9 ++ MADV_SEQUENTIAL = 0x2 ++ MADV_UNMERGEABLE = 0xd ++ MADV_WILLNEED = 0x3 ++ MAP_ANON = 0x20 ++ MAP_ANONYMOUS = 0x20 ++ MAP_DENYWRITE = 0x800 ++ MAP_EXECUTABLE = 0x1000 ++ MAP_FILE = 0x0 ++ MAP_FIXED = 0x10 ++ MAP_GROWSDOWN = 0x100 ++ MAP_HUGETLB = 0x40000 ++ MAP_HUGE_MASK = 0x3f ++ MAP_HUGE_SHIFT = 0x1a ++ MAP_LOCKED = 0x2000 ++ MAP_NONBLOCK = 0x10000 ++ MAP_NORESERVE = 0x4000 ++ MAP_POPULATE = 0x8000 ++ MAP_PRIVATE = 0x2 ++ MAP_SHARED = 0x1 ++ MAP_STACK = 0x20000 ++ MAP_TYPE = 0xf ++ MCL_CURRENT = 0x1 ++ MCL_FUTURE = 0x2 ++ MNT_DETACH = 0x2 ++ MNT_EXPIRE = 0x4 ++ MNT_FORCE = 0x1 ++ MSG_CMSG_CLOEXEC = 0x40000000 ++ MSG_CONFIRM = 0x800 ++ MSG_CTRUNC = 0x8 ++ MSG_DONTROUTE = 0x4 ++ MSG_DONTWAIT = 0x40 ++ MSG_EOR = 0x80 ++ MSG_ERRQUEUE = 0x2000 ++ MSG_FASTOPEN = 0x20000000 ++ MSG_FIN = 0x200 ++ MSG_MORE = 0x8000 ++ MSG_NOSIGNAL = 0x4000 ++ MSG_OOB = 0x1 ++ MSG_PEEK = 0x2 ++ MSG_PROXY = 0x10 ++ MSG_RST = 0x1000 ++ MSG_SYN = 0x400 ++ MSG_TRUNC = 0x20 ++ MSG_TRYHARD = 0x4 ++ MSG_WAITALL = 0x100 ++ MSG_WAITFORONE = 0x10000 ++ MS_ACTIVE = 0x40000000 ++ MS_ASYNC = 0x1 ++ MS_BIND = 0x1000 ++ MS_DIRSYNC = 0x80 ++ MS_INVALIDATE = 0x2 ++ MS_I_VERSION = 0x800000 ++ MS_KERNMOUNT = 0x400000 ++ MS_MANDLOCK = 0x40 ++ MS_MGC_MSK = 0xffff0000 ++ MS_MGC_VAL = 0xc0ed0000 ++ MS_MOVE = 0x2000 ++ MS_NOATIME = 0x400 ++ MS_NODEV = 0x4 ++ MS_NODIRATIME = 0x800 ++ MS_NOEXEC = 0x8 ++ MS_NOSUID = 0x2 ++ MS_NOUSER = -0x80000000 ++ MS_POSIXACL = 0x10000 ++ MS_PRIVATE = 0x40000 ++ MS_RDONLY = 0x1 ++ MS_REC = 0x4000 ++ MS_RELATIME = 0x200000 ++ MS_REMOUNT = 0x20 ++ MS_RMT_MASK = 0x800051 ++ MS_SHARED = 0x100000 ++ MS_SILENT = 0x8000 ++ MS_SLAVE = 0x80000 ++ MS_STRICTATIME = 0x1000000 ++ MS_SYNC = 0x4 ++ MS_SYNCHRONOUS = 0x10 ++ MS_UNBINDABLE = 0x20000 ++ NAME_MAX = 0xff ++ NETLINK_ADD_MEMBERSHIP = 0x1 ++ NETLINK_AUDIT = 0x9 ++ NETLINK_BROADCAST_ERROR = 0x4 ++ NETLINK_CAP_ACK = 0xa ++ NETLINK_CONNECTOR = 0xb ++ NETLINK_CRYPTO = 0x15 ++ NETLINK_DNRTMSG = 0xe ++ NETLINK_DROP_MEMBERSHIP = 0x2 ++ NETLINK_ECRYPTFS = 0x13 ++ NETLINK_FIB_LOOKUP = 0xa ++ NETLINK_FIREWALL = 0x3 ++ NETLINK_GENERIC = 0x10 ++ NETLINK_INET_DIAG = 0x4 ++ NETLINK_IP6_FW = 0xd ++ NETLINK_ISCSI = 0x8 ++ NETLINK_KOBJECT_UEVENT = 0xf ++ NETLINK_LISTEN_ALL_NSID = 0x8 ++ NETLINK_LIST_MEMBERSHIPS = 0x9 ++ NETLINK_NETFILTER = 0xc ++ NETLINK_NFLOG = 0x5 ++ NETLINK_NO_ENOBUFS = 0x5 ++ NETLINK_PKTINFO = 0x3 ++ NETLINK_RDMA = 0x14 ++ NETLINK_ROUTE = 0x0 ++ NETLINK_RX_RING = 0x6 ++ NETLINK_SCSITRANSPORT = 0x12 ++ NETLINK_SELINUX = 0x7 ++ NETLINK_SOCK_DIAG = 0x4 ++ NETLINK_TX_RING = 0x7 ++ NETLINK_UNUSED = 0x1 ++ NETLINK_USERSOCK = 0x2 ++ NETLINK_XFRM = 0x6 ++ NL0 = 0x0 ++ NL1 = 0x100 ++ NLA_ALIGNTO = 0x4 ++ NLA_F_NESTED = 0x8000 ++ NLA_F_NET_BYTEORDER = 0x4000 ++ NLA_HDRLEN = 0x4 ++ NLDLY = 0x100 ++ NLMSG_ALIGNTO = 0x4 ++ NLMSG_DONE = 0x3 ++ NLMSG_ERROR = 0x2 ++ NLMSG_HDRLEN = 0x10 ++ NLMSG_MIN_TYPE = 0x10 ++ NLMSG_NOOP = 0x1 ++ NLMSG_OVERRUN = 0x4 ++ NLM_F_ACK = 0x4 ++ NLM_F_APPEND = 0x800 ++ NLM_F_ATOMIC = 0x400 ++ NLM_F_CREATE = 0x400 ++ NLM_F_DUMP = 0x300 ++ NLM_F_DUMP_FILTERED = 0x20 ++ NLM_F_DUMP_INTR = 0x10 ++ NLM_F_ECHO = 0x8 ++ NLM_F_EXCL = 0x200 ++ NLM_F_MATCH = 0x200 ++ NLM_F_MULTI = 0x2 ++ NLM_F_REPLACE = 0x100 ++ NLM_F_REQUEST = 0x1 ++ NLM_F_ROOT = 0x100 ++ NOFLSH = 0x80 ++ OCRNL = 0x8 ++ OFDEL = 0x80 ++ OFILL = 0x40 ++ OLCUC = 0x2 ++ ONLCR = 0x4 ++ ONLRET = 0x20 ++ ONOCR = 0x10 ++ OPOST = 0x1 ++ O_ACCMODE = 0x3 ++ O_APPEND = 0x400 ++ O_ASYNC = 0x2000 ++ O_CLOEXEC = 0x80000 ++ O_CREAT = 0x40 ++ O_DIRECT = 0x10000 ++ O_DIRECTORY = 0x4000 ++ O_DSYNC = 0x1000 ++ O_EXCL = 0x80 ++ O_FSYNC = 0x101000 ++ O_LARGEFILE = 0x0 ++ O_NDELAY = 0x800 ++ O_NOATIME = 0x40000 ++ O_NOCTTY = 0x100 ++ O_NOFOLLOW = 0x8000 ++ O_NONBLOCK = 0x800 ++ O_PATH = 0x200000 ++ O_RDONLY = 0x0 ++ O_RDWR = 0x2 ++ O_RSYNC = 0x101000 ++ O_SYNC = 0x101000 ++ O_TMPFILE = 0x410000 ++ O_TRUNC = 0x200 ++ O_WRONLY = 0x1 ++ PACKET_ADD_MEMBERSHIP = 0x1 ++ PACKET_AUXDATA = 0x8 ++ PACKET_BROADCAST = 0x1 ++ PACKET_COPY_THRESH = 0x7 ++ PACKET_DROP_MEMBERSHIP = 0x2 ++ PACKET_FANOUT = 0x12 ++ PACKET_FANOUT_CPU = 0x2 ++ PACKET_FANOUT_FLAG_DEFRAG = 0x8000 ++ PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 ++ PACKET_FANOUT_HASH = 0x0 ++ PACKET_FANOUT_LB = 0x1 ++ PACKET_FANOUT_RND = 0x4 ++ PACKET_FANOUT_ROLLOVER = 0x3 ++ PACKET_FASTROUTE = 0x6 ++ PACKET_HDRLEN = 0xb ++ PACKET_HOST = 0x0 ++ PACKET_LOOPBACK = 0x5 ++ PACKET_LOSS = 0xe ++ PACKET_MR_ALLMULTI = 0x2 ++ PACKET_MR_MULTICAST = 0x0 ++ PACKET_MR_PROMISC = 0x1 ++ PACKET_MR_UNICAST = 0x3 ++ PACKET_MULTICAST = 0x2 ++ PACKET_ORIGDEV = 0x9 ++ PACKET_OTHERHOST = 0x3 ++ PACKET_OUTGOING = 0x4 ++ PACKET_RECV_OUTPUT = 0x3 ++ PACKET_RESERVE = 0xc ++ PACKET_RX_RING = 0x5 ++ PACKET_STATISTICS = 0x6 ++ PACKET_TIMESTAMP = 0x11 ++ PACKET_TX_HAS_OFF = 0x13 ++ PACKET_TX_RING = 0xd ++ PACKET_TX_TIMESTAMP = 0x10 ++ PACKET_VERSION = 0xa ++ PACKET_VNET_HDR = 0xf ++ PARENB = 0x100 ++ PARITY_CRC16_PR0 = 0x2 ++ PARITY_CRC16_PR0_CCITT = 0x4 ++ PARITY_CRC16_PR1 = 0x3 ++ PARITY_CRC16_PR1_CCITT = 0x5 ++ PARITY_CRC32_PR0_CCITT = 0x6 ++ PARITY_CRC32_PR1_CCITT = 0x7 ++ PARITY_DEFAULT = 0x0 ++ PARITY_NONE = 0x1 ++ PARMRK = 0x8 ++ PARODD = 0x200 ++ PENDIN = 0x4000 ++ PRIO_PGRP = 0x1 ++ PRIO_PROCESS = 0x0 ++ PRIO_USER = 0x2 ++ PROT_EXEC = 0x4 ++ PROT_GROWSDOWN = 0x1000000 ++ PROT_GROWSUP = 0x2000000 ++ PROT_NONE = 0x0 ++ PROT_READ = 0x1 ++ PROT_WRITE = 0x2 ++ PR_CAPBSET_DROP = 0x18 ++ PR_CAPBSET_READ = 0x17 ++ PR_ENDIAN_BIG = 0x0 ++ PR_ENDIAN_LITTLE = 0x1 ++ PR_ENDIAN_PPC_LITTLE = 0x2 ++ PR_FPEMU_NOPRINT = 0x1 ++ PR_FPEMU_SIGFPE = 0x2 ++ PR_FP_EXC_ASYNC = 0x2 ++ PR_FP_EXC_DISABLED = 0x0 ++ PR_FP_EXC_DIV = 0x10000 ++ PR_FP_EXC_INV = 0x100000 ++ PR_FP_EXC_NONRECOV = 0x1 ++ PR_FP_EXC_OVF = 0x20000 ++ PR_FP_EXC_PRECISE = 0x3 ++ PR_FP_EXC_RES = 0x80000 ++ PR_FP_EXC_SW_ENABLE = 0x80 ++ PR_FP_EXC_UND = 0x40000 ++ PR_GET_CHILD_SUBREAPER = 0x25 ++ PR_GET_DUMPABLE = 0x3 ++ PR_GET_ENDIAN = 0x13 ++ PR_GET_FPEMU = 0x9 ++ PR_GET_FPEXC = 0xb ++ PR_GET_KEEPCAPS = 0x7 ++ PR_GET_NAME = 0x10 ++ PR_GET_NO_NEW_PRIVS = 0x27 ++ PR_GET_PDEATHSIG = 0x2 ++ PR_GET_SECCOMP = 0x15 ++ PR_GET_SECUREBITS = 0x1b ++ PR_GET_TID_ADDRESS = 0x28 ++ PR_GET_TIMERSLACK = 0x1e ++ PR_GET_TIMING = 0xd ++ PR_GET_TSC = 0x19 ++ PR_GET_UNALIGN = 0x5 ++ PR_MCE_KILL = 0x21 ++ PR_MCE_KILL_CLEAR = 0x0 ++ PR_MCE_KILL_DEFAULT = 0x2 ++ PR_MCE_KILL_EARLY = 0x1 ++ PR_MCE_KILL_GET = 0x22 ++ PR_MCE_KILL_LATE = 0x0 ++ PR_MCE_KILL_SET = 0x1 ++ PR_SET_CHILD_SUBREAPER = 0x24 ++ PR_SET_DUMPABLE = 0x4 ++ PR_SET_ENDIAN = 0x14 ++ PR_SET_FPEMU = 0xa ++ PR_SET_FPEXC = 0xc ++ PR_SET_KEEPCAPS = 0x8 ++ PR_SET_MM = 0x23 ++ PR_SET_MM_ARG_END = 0x9 ++ PR_SET_MM_ARG_START = 0x8 ++ PR_SET_MM_AUXV = 0xc ++ PR_SET_MM_BRK = 0x7 ++ PR_SET_MM_END_CODE = 0x2 ++ PR_SET_MM_END_DATA = 0x4 ++ PR_SET_MM_ENV_END = 0xb ++ PR_SET_MM_ENV_START = 0xa ++ PR_SET_MM_EXE_FILE = 0xd ++ PR_SET_MM_START_BRK = 0x6 ++ PR_SET_MM_START_CODE = 0x1 ++ PR_SET_MM_START_DATA = 0x3 ++ PR_SET_MM_START_STACK = 0x5 ++ PR_SET_NAME = 0xf ++ PR_SET_NO_NEW_PRIVS = 0x26 ++ PR_SET_PDEATHSIG = 0x1 ++ PR_SET_PTRACER = 0x59616d61 ++ PR_SET_PTRACER_ANY = -0x1 ++ PR_SET_SECCOMP = 0x16 ++ PR_SET_SECUREBITS = 0x1c ++ PR_SET_TIMERSLACK = 0x1d ++ PR_SET_TIMING = 0xe ++ PR_SET_TSC = 0x1a ++ PR_SET_UNALIGN = 0x6 ++ PR_TASK_PERF_EVENTS_DISABLE = 0x1f ++ PR_TASK_PERF_EVENTS_ENABLE = 0x20 ++ PR_TIMING_STATISTICAL = 0x0 ++ PR_TIMING_TIMESTAMP = 0x1 ++ PR_TSC_ENABLE = 0x1 ++ PR_TSC_SIGSEGV = 0x2 ++ PR_UNALIGN_NOPRINT = 0x1 ++ PR_UNALIGN_SIGBUS = 0x2 ++ PTRACE_ATTACH = 0x10 ++ PTRACE_CONT = 0x7 ++ PTRACE_DETACH = 0x11 ++ PTRACE_EVENT_CLONE = 0x3 ++ PTRACE_EVENT_EXEC = 0x4 ++ PTRACE_EVENT_EXIT = 0x6 ++ PTRACE_EVENT_FORK = 0x1 ++ PTRACE_EVENT_SECCOMP = 0x7 ++ PTRACE_EVENT_STOP = 0x80 ++ PTRACE_EVENT_VFORK = 0x2 ++ PTRACE_EVENT_VFORK_DONE = 0x5 ++ PTRACE_GETEVENTMSG = 0x4201 ++ PTRACE_GETREGS = 0xc ++ PTRACE_GETREGSET = 0x4204 ++ PTRACE_GETSIGINFO = 0x4202 ++ PTRACE_GETSIGMASK = 0x420a ++ PTRACE_INTERRUPT = 0x4207 ++ PTRACE_KILL = 0x8 ++ PTRACE_LISTEN = 0x4208 ++ PTRACE_O_EXITKILL = 0x100000 ++ PTRACE_O_MASK = 0x1000ff ++ PTRACE_O_TRACECLONE = 0x8 ++ PTRACE_O_TRACEEXEC = 0x10 ++ PTRACE_O_TRACEEXIT = 0x40 ++ PTRACE_O_TRACEFORK = 0x2 ++ PTRACE_O_TRACESECCOMP = 0x80 ++ PTRACE_O_TRACESYSGOOD = 0x1 ++ PTRACE_O_TRACEVFORK = 0x4 ++ PTRACE_O_TRACEVFORKDONE = 0x20 ++ PTRACE_PEEKDATA = 0x2 ++ PTRACE_PEEKSIGINFO = 0x4209 ++ PTRACE_PEEKSIGINFO_SHARED = 0x1 ++ PTRACE_PEEKTEXT = 0x1 ++ PTRACE_PEEKUSR = 0x3 ++ PTRACE_POKEDATA = 0x5 ++ PTRACE_POKETEXT = 0x4 ++ PTRACE_POKEUSR = 0x6 ++ PTRACE_SEIZE = 0x4206 ++ PTRACE_SETOPTIONS = 0x4200 ++ PTRACE_SETREGS = 0xd ++ PTRACE_SETREGSET = 0x4205 ++ PTRACE_SETSIGINFO = 0x4203 ++ PTRACE_SETSIGMASK = 0x420b ++ PTRACE_SINGLESTEP = 0x9 ++ PTRACE_SYSCALL = 0x18 ++ PTRACE_TRACEME = 0x0 ++ RLIMIT_AS = 0x9 ++ RLIMIT_CORE = 0x4 ++ RLIMIT_CPU = 0x0 ++ RLIMIT_DATA = 0x2 ++ RLIMIT_FSIZE = 0x1 ++ RLIMIT_NOFILE = 0x7 ++ RLIMIT_STACK = 0x3 ++ RLIM_INFINITY = -0x1 ++ RTAX_ADVMSS = 0x8 ++ RTAX_CWND = 0x7 ++ RTAX_FEATURES = 0xc ++ RTAX_FEATURE_ALLFRAG = 0x8 ++ RTAX_FEATURE_ECN = 0x1 ++ RTAX_FEATURE_SACK = 0x2 ++ RTAX_FEATURE_TIMESTAMP = 0x4 ++ RTAX_HOPLIMIT = 0xa ++ RTAX_INITCWND = 0xb ++ RTAX_INITRWND = 0xe ++ RTAX_LOCK = 0x1 ++ RTAX_MAX = 0xf ++ RTAX_MTU = 0x2 ++ RTAX_QUICKACK = 0xf ++ RTAX_REORDERING = 0x9 ++ RTAX_RTO_MIN = 0xd ++ RTAX_RTT = 0x4 ++ RTAX_RTTVAR = 0x5 ++ RTAX_SSTHRESH = 0x6 ++ RTAX_UNSPEC = 0x0 ++ RTAX_WINDOW = 0x3 ++ RTA_ALIGNTO = 0x4 ++ RTA_MAX = 0x11 ++ RTCF_DIRECTSRC = 0x4000000 ++ RTCF_DOREDIRECT = 0x1000000 ++ RTCF_LOG = 0x2000000 ++ RTCF_MASQ = 0x400000 ++ RTCF_NAT = 0x800000 ++ RTCF_VALVE = 0x200000 ++ RTF_ADDRCLASSMASK = 0xf8000000 ++ RTF_ADDRCONF = 0x40000 ++ RTF_ALLONLINK = 0x20000 ++ RTF_BROADCAST = 0x10000000 ++ RTF_CACHE = 0x1000000 ++ RTF_DEFAULT = 0x10000 ++ RTF_DYNAMIC = 0x10 ++ RTF_FLOW = 0x2000000 ++ RTF_GATEWAY = 0x2 ++ RTF_HOST = 0x4 ++ RTF_INTERFACE = 0x40000000 ++ RTF_IRTT = 0x100 ++ RTF_LINKRT = 0x100000 ++ RTF_LOCAL = 0x80000000 ++ RTF_MODIFIED = 0x20 ++ RTF_MSS = 0x40 ++ RTF_MTU = 0x40 ++ RTF_MULTICAST = 0x20000000 ++ RTF_NAT = 0x8000000 ++ RTF_NOFORWARD = 0x1000 ++ RTF_NONEXTHOP = 0x200000 ++ RTF_NOPMTUDISC = 0x4000 ++ RTF_POLICY = 0x4000000 ++ RTF_REINSTATE = 0x8 ++ RTF_REJECT = 0x200 ++ RTF_STATIC = 0x400 ++ RTF_THROW = 0x2000 ++ RTF_UP = 0x1 ++ RTF_WINDOW = 0x80 ++ RTF_XRESOLVE = 0x800 ++ RTM_BASE = 0x10 ++ RTM_DELACTION = 0x31 ++ RTM_DELADDR = 0x15 ++ RTM_DELADDRLABEL = 0x49 ++ RTM_DELLINK = 0x11 ++ RTM_DELMDB = 0x55 ++ RTM_DELNEIGH = 0x1d ++ RTM_DELQDISC = 0x25 ++ RTM_DELROUTE = 0x19 ++ RTM_DELRULE = 0x21 ++ RTM_DELTCLASS = 0x29 ++ RTM_DELTFILTER = 0x2d ++ RTM_F_CLONED = 0x200 ++ RTM_F_EQUALIZE = 0x400 ++ RTM_F_NOTIFY = 0x100 ++ RTM_F_PREFIX = 0x800 ++ RTM_GETACTION = 0x32 ++ RTM_GETADDR = 0x16 ++ RTM_GETADDRLABEL = 0x4a ++ RTM_GETANYCAST = 0x3e ++ RTM_GETDCB = 0x4e ++ RTM_GETLINK = 0x12 ++ RTM_GETMDB = 0x56 ++ RTM_GETMULTICAST = 0x3a ++ RTM_GETNEIGH = 0x1e ++ RTM_GETNEIGHTBL = 0x42 ++ RTM_GETNETCONF = 0x52 ++ RTM_GETQDISC = 0x26 ++ RTM_GETROUTE = 0x1a ++ RTM_GETRULE = 0x22 ++ RTM_GETTCLASS = 0x2a ++ RTM_GETTFILTER = 0x2e ++ RTM_MAX = 0x57 ++ RTM_NEWACTION = 0x30 ++ RTM_NEWADDR = 0x14 ++ RTM_NEWADDRLABEL = 0x48 ++ RTM_NEWLINK = 0x10 ++ RTM_NEWMDB = 0x54 ++ RTM_NEWNDUSEROPT = 0x44 ++ RTM_NEWNEIGH = 0x1c ++ RTM_NEWNEIGHTBL = 0x40 ++ RTM_NEWNETCONF = 0x50 ++ RTM_NEWPREFIX = 0x34 ++ RTM_NEWQDISC = 0x24 ++ RTM_NEWROUTE = 0x18 ++ RTM_NEWRULE = 0x20 ++ RTM_NEWTCLASS = 0x28 ++ RTM_NEWTFILTER = 0x2c ++ RTM_NR_FAMILIES = 0x12 ++ RTM_NR_MSGTYPES = 0x48 ++ RTM_SETDCB = 0x4f ++ RTM_SETLINK = 0x13 ++ RTM_SETNEIGHTBL = 0x43 ++ RTNH_ALIGNTO = 0x4 ++ RTNH_F_DEAD = 0x1 ++ RTNH_F_ONLINK = 0x4 ++ RTNH_F_PERVASIVE = 0x2 ++ RTN_MAX = 0xb ++ RTPROT_BIRD = 0xc ++ RTPROT_BOOT = 0x3 ++ RTPROT_DHCP = 0x10 ++ RTPROT_DNROUTED = 0xd ++ RTPROT_GATED = 0x8 ++ RTPROT_KERNEL = 0x2 ++ RTPROT_MROUTED = 0x11 ++ RTPROT_MRT = 0xa ++ RTPROT_NTK = 0xf ++ RTPROT_RA = 0x9 ++ RTPROT_REDIRECT = 0x1 ++ RTPROT_STATIC = 0x4 ++ RTPROT_UNSPEC = 0x0 ++ RTPROT_XORP = 0xe ++ RTPROT_ZEBRA = 0xb ++ RT_CLASS_DEFAULT = 0xfd ++ RT_CLASS_LOCAL = 0xff ++ RT_CLASS_MAIN = 0xfe ++ RT_CLASS_MAX = 0xff ++ RT_CLASS_UNSPEC = 0x0 ++ RUSAGE_CHILDREN = -0x1 ++ RUSAGE_SELF = 0x0 ++ RUSAGE_THREAD = 0x1 ++ SCM_CREDENTIALS = 0x2 ++ SCM_RIGHTS = 0x1 ++ SCM_TIMESTAMP = 0x1d ++ SCM_TIMESTAMPING = 0x25 ++ SCM_TIMESTAMPNS = 0x23 ++ SCM_WIFI_STATUS = 0x29 ++ SHUT_RD = 0x0 ++ SHUT_RDWR = 0x2 ++ SHUT_WR = 0x1 ++ SIOCADDDLCI = 0x8980 ++ SIOCADDMULTI = 0x8931 ++ SIOCADDRT = 0x890b ++ SIOCATMARK = 0x8905 ++ SIOCDARP = 0x8953 ++ SIOCDELDLCI = 0x8981 ++ SIOCDELMULTI = 0x8932 ++ SIOCDELRT = 0x890c ++ SIOCDEVPRIVATE = 0x89f0 ++ SIOCDIFADDR = 0x8936 ++ SIOCDRARP = 0x8960 ++ SIOCGARP = 0x8954 ++ SIOCGIFADDR = 0x8915 ++ SIOCGIFBR = 0x8940 ++ SIOCGIFBRDADDR = 0x8919 ++ SIOCGIFCONF = 0x8912 ++ SIOCGIFCOUNT = 0x8938 ++ SIOCGIFDSTADDR = 0x8917 ++ SIOCGIFENCAP = 0x8925 ++ SIOCGIFFLAGS = 0x8913 ++ SIOCGIFHWADDR = 0x8927 ++ SIOCGIFINDEX = 0x8933 ++ SIOCGIFMAP = 0x8970 ++ SIOCGIFMEM = 0x891f ++ SIOCGIFMETRIC = 0x891d ++ SIOCGIFMTU = 0x8921 ++ SIOCGIFNAME = 0x8910 ++ SIOCGIFNETMASK = 0x891b ++ SIOCGIFPFLAGS = 0x8935 ++ SIOCGIFSLAVE = 0x8929 ++ SIOCGIFTXQLEN = 0x8942 ++ SIOCGPGRP = 0x8904 ++ SIOCGRARP = 0x8961 ++ SIOCGSTAMP = 0x8906 ++ SIOCGSTAMPNS = 0x8907 ++ SIOCPROTOPRIVATE = 0x89e0 ++ SIOCRTMSG = 0x890d ++ SIOCSARP = 0x8955 ++ SIOCSIFADDR = 0x8916 ++ SIOCSIFBR = 0x8941 ++ SIOCSIFBRDADDR = 0x891a ++ SIOCSIFDSTADDR = 0x8918 ++ SIOCSIFENCAP = 0x8926 ++ SIOCSIFFLAGS = 0x8914 ++ SIOCSIFHWADDR = 0x8924 ++ SIOCSIFHWBROADCAST = 0x8937 ++ SIOCSIFLINK = 0x8911 ++ SIOCSIFMAP = 0x8971 ++ SIOCSIFMEM = 0x8920 ++ SIOCSIFMETRIC = 0x891e ++ SIOCSIFMTU = 0x8922 ++ SIOCSIFNAME = 0x8923 ++ SIOCSIFNETMASK = 0x891c ++ SIOCSIFPFLAGS = 0x8934 ++ SIOCSIFSLAVE = 0x8930 ++ SIOCSIFTXQLEN = 0x8943 ++ SIOCSPGRP = 0x8902 ++ SIOCSRARP = 0x8962 ++ SOCK_CLOEXEC = 0x80000 ++ SOCK_DCCP = 0x6 ++ SOCK_DGRAM = 0x2 ++ SOCK_NONBLOCK = 0x800 ++ SOCK_PACKET = 0xa ++ SOCK_RAW = 0x3 ++ SOCK_RDM = 0x4 ++ SOCK_SEQPACKET = 0x5 ++ SOCK_STREAM = 0x1 ++ SOL_AAL = 0x109 ++ SOL_ATM = 0x108 ++ SOL_DECNET = 0x105 ++ SOL_ICMPV6 = 0x3a ++ SOL_IP = 0x0 ++ SOL_IPV6 = 0x29 ++ SOL_IRDA = 0x10a ++ SOL_NETLINK = 0x10e ++ SOL_PACKET = 0x107 ++ SOL_RAW = 0xff ++ SOL_SOCKET = 0x1 ++ SOL_TCP = 0x6 ++ SOL_X25 = 0x106 ++ SOMAXCONN = 0x80 ++ SO_ACCEPTCONN = 0x1e ++ SO_ATTACH_FILTER = 0x1a ++ SO_BINDTODEVICE = 0x19 ++ SO_BROADCAST = 0x6 ++ SO_BSDCOMPAT = 0xe ++ SO_BUSY_POLL = 0x2e ++ SO_DEBUG = 0x1 ++ SO_DETACH_FILTER = 0x1b ++ SO_DOMAIN = 0x27 ++ SO_DONTROUTE = 0x5 ++ SO_ERROR = 0x4 ++ SO_GET_FILTER = 0x1a ++ SO_KEEPALIVE = 0x9 ++ SO_LINGER = 0xd ++ SO_LOCK_FILTER = 0x2c ++ SO_MARK = 0x24 ++ SO_MAX_PACING_RATE = 0x2f ++ SO_NOFCS = 0x2b ++ SO_NO_CHECK = 0xb ++ SO_OOBINLINE = 0xa ++ SO_PASSCRED = 0x10 ++ SO_PASSSEC = 0x22 ++ SO_PEEK_OFF = 0x2a ++ SO_PEERCRED = 0x11 ++ SO_PEERNAME = 0x1c ++ SO_PEERSEC = 0x1f ++ SO_PRIORITY = 0xc ++ SO_PROTOCOL = 0x26 ++ SO_RCVBUF = 0x8 ++ SO_RCVBUFFORCE = 0x21 ++ SO_RCVLOWAT = 0x12 ++ SO_RCVTIMEO = 0x14 ++ SO_REUSEADDR = 0x2 ++ SO_REUSEPORT = 0xf ++ SO_RXQ_OVFL = 0x28 ++ SO_SECURITY_AUTHENTICATION = 0x16 ++ SO_SECURITY_ENCRYPTION_NETWORK = 0x18 ++ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 ++ SO_SELECT_ERR_QUEUE = 0x2d ++ SO_SNDBUF = 0x7 ++ SO_SNDBUFFORCE = 0x20 ++ SO_SNDLOWAT = 0x13 ++ SO_SNDTIMEO = 0x15 ++ SO_TIMESTAMP = 0x1d ++ SO_TIMESTAMPING = 0x25 ++ SO_TIMESTAMPNS = 0x23 ++ SO_TYPE = 0x3 ++ SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 ++ SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 ++ SO_VM_SOCKETS_BUFFER_SIZE = 0x0 ++ SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 ++ SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 ++ SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 ++ SO_VM_SOCKETS_TRUSTED = 0x5 ++ SO_WIFI_STATUS = 0x29 ++ SPLICE_F_GIFT = 0x8 ++ SPLICE_F_MORE = 0x4 ++ SPLICE_F_MOVE = 0x1 ++ SPLICE_F_NONBLOCK = 0x2 ++ S_BLKSIZE = 0x200 ++ S_IEXEC = 0x40 ++ S_IFBLK = 0x6000 ++ S_IFCHR = 0x2000 ++ S_IFDIR = 0x4000 ++ S_IFIFO = 0x1000 ++ S_IFLNK = 0xa000 ++ S_IFMT = 0xf000 ++ S_IFREG = 0x8000 ++ S_IFSOCK = 0xc000 ++ S_IREAD = 0x100 ++ S_IRGRP = 0x20 ++ S_IROTH = 0x4 ++ S_IRUSR = 0x100 ++ S_IRWXG = 0x38 ++ S_IRWXO = 0x7 ++ S_IRWXU = 0x1c0 ++ S_ISGID = 0x400 ++ S_ISUID = 0x800 ++ S_ISVTX = 0x200 ++ S_IWGRP = 0x10 ++ S_IWOTH = 0x2 ++ S_IWRITE = 0x80 ++ S_IWUSR = 0x80 ++ S_IXGRP = 0x8 ++ S_IXOTH = 0x1 ++ S_IXUSR = 0x40 ++ TAB0 = 0x0 ++ TAB1 = 0x800 ++ TAB2 = 0x1000 ++ TAB3 = 0x1800 ++ TABDLY = 0x1800 ++ TCFLSH = 0x540b ++ TCGETA = 0x5405 ++ TCGETS = 0x5401 ++ TCGETS2 = 0x802c542a ++ TCGETX = 0x5432 ++ TCIFLUSH = 0x0 ++ TCIOFF = 0x2 ++ TCIOFLUSH = 0x2 ++ TCION = 0x3 ++ TCOFLUSH = 0x1 ++ TCOOFF = 0x0 ++ TCOON = 0x1 ++ TCP_CONGESTION = 0xd ++ TCP_COOKIE_IN_ALWAYS = 0x1 ++ TCP_COOKIE_MAX = 0x10 ++ TCP_COOKIE_MIN = 0x8 ++ TCP_COOKIE_OUT_NEVER = 0x2 ++ TCP_COOKIE_PAIR_SIZE = 0x20 ++ TCP_COOKIE_TRANSACTIONS = 0xf ++ TCP_CORK = 0x3 ++ TCP_DEFER_ACCEPT = 0x9 ++ TCP_FASTOPEN = 0x17 ++ TCP_INFO = 0xb ++ TCP_KEEPCNT = 0x6 ++ TCP_KEEPIDLE = 0x4 ++ TCP_KEEPINTVL = 0x5 ++ TCP_LINGER2 = 0x8 ++ TCP_MAXSEG = 0x2 ++ TCP_MAXWIN = 0xffff ++ TCP_MAX_WINSHIFT = 0xe ++ TCP_MD5SIG = 0xe ++ TCP_MD5SIG_MAXKEYLEN = 0x50 ++ TCP_MSS = 0x200 ++ TCP_MSS_DEFAULT = 0x218 ++ TCP_MSS_DESIRED = 0x4c4 ++ TCP_NODELAY = 0x1 ++ TCP_QUEUE_SEQ = 0x15 ++ TCP_QUICKACK = 0xc ++ TCP_REPAIR = 0x13 ++ TCP_REPAIR_OPTIONS = 0x16 ++ TCP_REPAIR_QUEUE = 0x14 ++ TCP_SYNCNT = 0x7 ++ TCP_S_DATA_IN = 0x4 ++ TCP_S_DATA_OUT = 0x8 ++ TCP_THIN_DUPACK = 0x11 ++ TCP_THIN_LINEAR_TIMEOUTS = 0x10 ++ TCP_TIMESTAMP = 0x18 ++ TCP_USER_TIMEOUT = 0x12 ++ TCP_WINDOW_CLAMP = 0xa ++ TCSAFLUSH = 0x2 ++ TCSBRK = 0x5409 ++ TCSBRKP = 0x5425 ++ TCSETA = 0x5406 ++ TCSETAF = 0x5408 ++ TCSETAW = 0x5407 ++ TCSETS = 0x5402 ++ TCSETS2 = 0x402c542b ++ TCSETSF = 0x5404 ++ TCSETSF2 = 0x402c542d ++ TCSETSW = 0x5403 ++ TCSETSW2 = 0x402c542c ++ TCSETX = 0x5433 ++ TCSETXF = 0x5434 ++ TCSETXW = 0x5435 ++ TCXONC = 0x540a ++ TIOCCBRK = 0x5428 ++ TIOCCONS = 0x541d ++ TIOCEXCL = 0x540c ++ TIOCGDEV = 0x80045432 ++ TIOCGETD = 0x5424 ++ TIOCGEXCL = 0x80045440 ++ TIOCGICOUNT = 0x545d ++ TIOCGLCKTRMIOS = 0x5456 ++ TIOCGPGRP = 0x540f ++ TIOCGPKT = 0x80045438 ++ TIOCGPTLCK = 0x80045439 ++ TIOCGPTN = 0x80045430 ++ TIOCGRS485 = 0x542e ++ TIOCGSERIAL = 0x541e ++ TIOCGSID = 0x5429 ++ TIOCGSOFTCAR = 0x5419 ++ TIOCGWINSZ = 0x5413 ++ TIOCINQ = 0x541b ++ TIOCLINUX = 0x541c ++ TIOCMBIC = 0x5417 ++ TIOCMBIS = 0x5416 ++ TIOCMGET = 0x5415 ++ TIOCMIWAIT = 0x545c ++ TIOCMSET = 0x5418 ++ TIOCM_CAR = 0x40 ++ TIOCM_CD = 0x40 ++ TIOCM_CTS = 0x20 ++ TIOCM_DSR = 0x100 ++ TIOCM_DTR = 0x2 ++ TIOCM_LE = 0x1 ++ TIOCM_RI = 0x80 ++ TIOCM_RNG = 0x80 ++ TIOCM_RTS = 0x4 ++ TIOCM_SR = 0x10 ++ TIOCM_ST = 0x8 ++ TIOCNOTTY = 0x5422 ++ TIOCNXCL = 0x540d ++ TIOCOUTQ = 0x5411 ++ TIOCPKT = 0x5420 ++ TIOCPKT_DATA = 0x0 ++ TIOCPKT_DOSTOP = 0x20 ++ TIOCPKT_FLUSHREAD = 0x1 ++ TIOCPKT_FLUSHWRITE = 0x2 ++ TIOCPKT_IOCTL = 0x40 ++ TIOCPKT_NOSTOP = 0x10 ++ TIOCPKT_START = 0x8 ++ TIOCPKT_STOP = 0x4 ++ TIOCSBRK = 0x5427 ++ TIOCSCTTY = 0x540e ++ TIOCSERCONFIG = 0x5453 ++ TIOCSERGETLSR = 0x5459 ++ TIOCSERGETMULTI = 0x545a ++ TIOCSERGSTRUCT = 0x5458 ++ TIOCSERGWILD = 0x5454 ++ TIOCSERSETMULTI = 0x545b ++ TIOCSERSWILD = 0x5455 ++ TIOCSER_TEMT = 0x1 ++ TIOCSETD = 0x5423 ++ TIOCSIG = 0x40045436 ++ TIOCSLCKTRMIOS = 0x5457 ++ TIOCSPGRP = 0x5410 ++ TIOCSPTLCK = 0x40045431 ++ TIOCSRS485 = 0x542f ++ TIOCSSERIAL = 0x541f ++ TIOCSSOFTCAR = 0x541a ++ TIOCSTI = 0x5412 ++ TIOCSWINSZ = 0x5414 ++ TIOCVHANGUP = 0x5437 ++ TOSTOP = 0x100 ++ TUNATTACHFILTER = 0x401054d5 ++ TUNDETACHFILTER = 0x401054d6 ++ TUNGETFEATURES = 0x800454cf ++ TUNGETFILTER = 0x801054db ++ TUNGETIFF = 0x800454d2 ++ TUNGETSNDBUF = 0x800454d3 ++ TUNGETVNETHDRSZ = 0x800454d7 ++ TUNSETDEBUG = 0x400454c9 ++ TUNSETGROUP = 0x400454ce ++ TUNSETIFF = 0x400454ca ++ TUNSETIFINDEX = 0x400454da ++ TUNSETLINK = 0x400454cd ++ TUNSETNOCSUM = 0x400454c8 ++ TUNSETOFFLOAD = 0x400454d0 ++ TUNSETOWNER = 0x400454cc ++ TUNSETPERSIST = 0x400454cb ++ TUNSETQUEUE = 0x400454d9 ++ TUNSETSNDBUF = 0x400454d4 ++ TUNSETTXFILTER = 0x400454d1 ++ TUNSETVNETHDRSZ = 0x400454d8 ++ VDISCARD = 0xd ++ VEOF = 0x4 ++ VEOL = 0xb ++ VEOL2 = 0x10 ++ VERASE = 0x2 ++ VINTR = 0x0 ++ VKILL = 0x3 ++ VLNEXT = 0xf ++ VMADDR_CID_ANY = 0xffffffff ++ VMADDR_CID_HOST = 0x2 ++ VMADDR_CID_HYPERVISOR = 0x0 ++ VMADDR_CID_RESERVED = 0x1 ++ VMADDR_PORT_ANY = 0xffffffff ++ VMIN = 0x6 ++ VQUIT = 0x1 ++ VREPRINT = 0xc ++ VSTART = 0x8 ++ VSTOP = 0x9 ++ VSUSP = 0xa ++ VSWTC = 0x7 ++ VT0 = 0x0 ++ VT1 = 0x4000 ++ VTDLY = 0x4000 ++ VTIME = 0x5 ++ VWERASE = 0xe ++ WALL = 0x40000000 ++ WCLONE = 0x80000000 ++ WCONTINUED = 0x8 ++ WEXITED = 0x4 ++ WNOHANG = 0x1 ++ WNOTHREAD = 0x20000000 ++ WNOWAIT = 0x1000000 ++ WORDSIZE = 0x40 ++ WSTOPPED = 0x2 ++ WUNTRACED = 0x2 ++ XCASE = 0x4 ++ XTABS = 0x1800 ++) ++ ++// Errors ++const ( ++ E2BIG = syscall.Errno(0x7) ++ EACCES = syscall.Errno(0xd) ++ EADDRINUSE = syscall.Errno(0x62) ++ EADDRNOTAVAIL = syscall.Errno(0x63) ++ EADV = syscall.Errno(0x44) ++ EAFNOSUPPORT = syscall.Errno(0x61) ++ EAGAIN = syscall.Errno(0xb) ++ EALREADY = syscall.Errno(0x72) ++ EBADE = syscall.Errno(0x34) ++ EBADF = syscall.Errno(0x9) ++ EBADFD = syscall.Errno(0x4d) ++ EBADMSG = syscall.Errno(0x4a) ++ EBADR = syscall.Errno(0x35) ++ EBADRQC = syscall.Errno(0x38) ++ EBADSLT = syscall.Errno(0x39) ++ EBFONT = syscall.Errno(0x3b) ++ EBUSY = syscall.Errno(0x10) ++ ECANCELED = syscall.Errno(0x7d) ++ ECHILD = syscall.Errno(0xa) ++ ECHRNG = syscall.Errno(0x2c) ++ ECOMM = syscall.Errno(0x46) ++ ECONNABORTED = syscall.Errno(0x67) ++ ECONNREFUSED = syscall.Errno(0x6f) ++ ECONNRESET = syscall.Errno(0x68) ++ EDEADLK = syscall.Errno(0x23) ++ EDEADLOCK = syscall.Errno(0x23) ++ EDESTADDRREQ = syscall.Errno(0x59) ++ EDOM = syscall.Errno(0x21) ++ EDOTDOT = syscall.Errno(0x49) ++ EDQUOT = syscall.Errno(0x7a) ++ EEXIST = syscall.Errno(0x11) ++ EFAULT = syscall.Errno(0xe) ++ EFBIG = syscall.Errno(0x1b) ++ EHOSTDOWN = syscall.Errno(0x70) ++ EHOSTUNREACH = syscall.Errno(0x71) ++ EHWPOISON = syscall.Errno(0x85) ++ EIDRM = syscall.Errno(0x2b) ++ EILSEQ = syscall.Errno(0x54) ++ EINPROGRESS = syscall.Errno(0x73) ++ EINTR = syscall.Errno(0x4) ++ EINVAL = syscall.Errno(0x16) ++ EIO = syscall.Errno(0x5) ++ EISCONN = syscall.Errno(0x6a) ++ EISDIR = syscall.Errno(0x15) ++ EISNAM = syscall.Errno(0x78) ++ EKEYEXPIRED = syscall.Errno(0x7f) ++ EKEYREJECTED = syscall.Errno(0x81) ++ EKEYREVOKED = syscall.Errno(0x80) ++ EL2HLT = syscall.Errno(0x33) ++ EL2NSYNC = syscall.Errno(0x2d) ++ EL3HLT = syscall.Errno(0x2e) ++ EL3RST = syscall.Errno(0x2f) ++ ELIBACC = syscall.Errno(0x4f) ++ ELIBBAD = syscall.Errno(0x50) ++ ELIBEXEC = syscall.Errno(0x53) ++ ELIBMAX = syscall.Errno(0x52) ++ ELIBSCN = syscall.Errno(0x51) ++ ELNRNG = syscall.Errno(0x30) ++ ELOOP = syscall.Errno(0x28) ++ EMEDIUMTYPE = syscall.Errno(0x7c) ++ EMFILE = syscall.Errno(0x18) ++ EMLINK = syscall.Errno(0x1f) ++ EMSGSIZE = syscall.Errno(0x5a) ++ EMULTIHOP = syscall.Errno(0x48) ++ ENAMETOOLONG = syscall.Errno(0x24) ++ ENAVAIL = syscall.Errno(0x77) ++ ENETDOWN = syscall.Errno(0x64) ++ ENETRESET = syscall.Errno(0x66) ++ ENETUNREACH = syscall.Errno(0x65) ++ ENFILE = syscall.Errno(0x17) ++ ENOANO = syscall.Errno(0x37) ++ ENOBUFS = syscall.Errno(0x69) ++ ENOCSI = syscall.Errno(0x32) ++ ENODATA = syscall.Errno(0x3d) ++ ENODEV = syscall.Errno(0x13) ++ ENOENT = syscall.Errno(0x2) ++ ENOEXEC = syscall.Errno(0x8) ++ ENOKEY = syscall.Errno(0x7e) ++ ENOLCK = syscall.Errno(0x25) ++ ENOLINK = syscall.Errno(0x43) ++ ENOMEDIUM = syscall.Errno(0x7b) ++ ENOMEM = syscall.Errno(0xc) ++ ENOMSG = syscall.Errno(0x2a) ++ ENONET = syscall.Errno(0x40) ++ ENOPKG = syscall.Errno(0x41) ++ ENOPROTOOPT = syscall.Errno(0x5c) ++ ENOSPC = syscall.Errno(0x1c) ++ ENOSR = syscall.Errno(0x3f) ++ ENOSTR = syscall.Errno(0x3c) ++ ENOSYS = syscall.Errno(0x26) ++ ENOTBLK = syscall.Errno(0xf) ++ ENOTCONN = syscall.Errno(0x6b) ++ ENOTDIR = syscall.Errno(0x14) ++ ENOTEMPTY = syscall.Errno(0x27) ++ ENOTNAM = syscall.Errno(0x76) ++ ENOTRECOVERABLE = syscall.Errno(0x83) ++ ENOTSOCK = syscall.Errno(0x58) ++ ENOTSUP = syscall.Errno(0x5f) ++ ENOTTY = syscall.Errno(0x19) ++ ENOTUNIQ = syscall.Errno(0x4c) ++ ENXIO = syscall.Errno(0x6) ++ EOPNOTSUPP = syscall.Errno(0x5f) ++ EOVERFLOW = syscall.Errno(0x4b) ++ EOWNERDEAD = syscall.Errno(0x82) ++ EPERM = syscall.Errno(0x1) ++ EPFNOSUPPORT = syscall.Errno(0x60) ++ EPIPE = syscall.Errno(0x20) ++ EPROTO = syscall.Errno(0x47) ++ EPROTONOSUPPORT = syscall.Errno(0x5d) ++ EPROTOTYPE = syscall.Errno(0x5b) ++ ERANGE = syscall.Errno(0x22) ++ EREMCHG = syscall.Errno(0x4e) ++ EREMOTE = syscall.Errno(0x42) ++ EREMOTEIO = syscall.Errno(0x79) ++ ERESTART = syscall.Errno(0x55) ++ ERFKILL = syscall.Errno(0x84) ++ EROFS = syscall.Errno(0x1e) ++ ESHUTDOWN = syscall.Errno(0x6c) ++ ESOCKTNOSUPPORT = syscall.Errno(0x5e) ++ ESPIPE = syscall.Errno(0x1d) ++ ESRCH = syscall.Errno(0x3) ++ ESRMNT = syscall.Errno(0x45) ++ ESTALE = syscall.Errno(0x74) ++ ESTRPIPE = syscall.Errno(0x56) ++ ETIME = syscall.Errno(0x3e) ++ ETIMEDOUT = syscall.Errno(0x6e) ++ ETOOMANYREFS = syscall.Errno(0x6d) ++ ETXTBSY = syscall.Errno(0x1a) ++ EUCLEAN = syscall.Errno(0x75) ++ EUNATCH = syscall.Errno(0x31) ++ EUSERS = syscall.Errno(0x57) ++ EWOULDBLOCK = syscall.Errno(0xb) ++ EXDEV = syscall.Errno(0x12) ++ EXFULL = syscall.Errno(0x36) ++) ++ ++// Signals ++const ( ++ SIGABRT = syscall.Signal(0x6) ++ SIGALRM = syscall.Signal(0xe) ++ SIGBUS = syscall.Signal(0x7) ++ SIGCHLD = syscall.Signal(0x11) ++ SIGCLD = syscall.Signal(0x11) ++ SIGCONT = syscall.Signal(0x12) ++ SIGFPE = syscall.Signal(0x8) ++ SIGHUP = syscall.Signal(0x1) ++ SIGILL = syscall.Signal(0x4) ++ SIGINT = syscall.Signal(0x2) ++ SIGIO = syscall.Signal(0x1d) ++ SIGIOT = syscall.Signal(0x6) ++ SIGKILL = syscall.Signal(0x9) ++ SIGPIPE = syscall.Signal(0xd) ++ SIGPOLL = syscall.Signal(0x1d) ++ SIGPROF = syscall.Signal(0x1b) ++ SIGPWR = syscall.Signal(0x1e) ++ SIGQUIT = syscall.Signal(0x3) ++ SIGSEGV = syscall.Signal(0xb) ++ SIGSTKFLT = syscall.Signal(0x10) ++ SIGSTOP = syscall.Signal(0x13) ++ SIGSYS = syscall.Signal(0x1f) ++ SIGTERM = syscall.Signal(0xf) ++ SIGTRAP = syscall.Signal(0x5) ++ SIGTSTP = syscall.Signal(0x14) ++ SIGTTIN = syscall.Signal(0x15) ++ SIGTTOU = syscall.Signal(0x16) ++ SIGUNUSED = syscall.Signal(0x1f) ++ SIGURG = syscall.Signal(0x17) ++ SIGUSR1 = syscall.Signal(0xa) ++ SIGUSR2 = syscall.Signal(0xc) ++ SIGVTALRM = syscall.Signal(0x1a) ++ SIGWINCH = syscall.Signal(0x1c) ++ SIGXCPU = syscall.Signal(0x18) ++ SIGXFSZ = syscall.Signal(0x19) ++) ++ ++// Error table ++var errors = [...]string{ ++ 1: "operation not permitted", ++ 2: "no such file or directory", ++ 3: "no such process", ++ 4: "interrupted system call", ++ 5: "input/output error", ++ 6: "no such device or address", ++ 7: "argument list too long", ++ 8: "exec format error", ++ 9: "bad file descriptor", ++ 10: "no child processes", ++ 11: "resource temporarily unavailable", ++ 12: "cannot allocate memory", ++ 13: "permission denied", ++ 14: "bad address", ++ 15: "block device required", ++ 16: "device or resource busy", ++ 17: "file exists", ++ 18: "invalid cross-device link", ++ 19: "no such device", ++ 20: "not a directory", ++ 21: "is a directory", ++ 22: "invalid argument", ++ 23: "too many open files in system", ++ 24: "too many open files", ++ 25: "inappropriate ioctl for device", ++ 26: "text file busy", ++ 27: "file too large", ++ 28: "no space left on device", ++ 29: "illegal seek", ++ 30: "read-only file system", ++ 31: "too many links", ++ 32: "broken pipe", ++ 33: "numerical argument out of domain", ++ 34: "numerical result out of range", ++ 35: "resource deadlock avoided", ++ 36: "file name too long", ++ 37: "no locks available", ++ 38: "function not implemented", ++ 39: "directory not empty", ++ 40: "too many levels of symbolic links", ++ 42: "no message of desired type", ++ 43: "identifier removed", ++ 44: "channel number out of range", ++ 45: "level 2 not synchronized", ++ 46: "level 3 halted", ++ 47: "level 3 reset", ++ 48: "link number out of range", ++ 49: "protocol driver not attached", ++ 50: "no CSI structure available", ++ 51: "level 2 halted", ++ 52: "invalid exchange", ++ 53: "invalid request descriptor", ++ 54: "exchange full", ++ 55: "no anode", ++ 56: "invalid request code", ++ 57: "invalid slot", ++ 59: "bad font file format", ++ 60: "device not a stream", ++ 61: "no data available", ++ 62: "timer expired", ++ 63: "out of streams resources", ++ 64: "machine is not on the network", ++ 65: "package not installed", ++ 66: "object is remote", ++ 67: "link has been severed", ++ 68: "advertise error", ++ 69: "srmount error", ++ 70: "communication error on send", ++ 71: "protocol error", ++ 72: "multihop attempted", ++ 73: "RFS specific error", ++ 74: "bad message", ++ 75: "value too large for defined data type", ++ 76: "name not unique on network", ++ 77: "file descriptor in bad state", ++ 78: "remote address changed", ++ 79: "can not access a needed shared library", ++ 80: "accessing a corrupted shared library", ++ 81: ".lib section in a.out corrupted", ++ 82: "attempting to link in too many shared libraries", ++ 83: "cannot exec a shared library directly", ++ 84: "invalid or incomplete multibyte or wide character", ++ 85: "interrupted system call should be restarted", ++ 86: "streams pipe error", ++ 87: "too many users", ++ 88: "socket operation on non-socket", ++ 89: "destination address required", ++ 90: "message too long", ++ 91: "protocol wrong type for socket", ++ 92: "protocol not available", ++ 93: "protocol not supported", ++ 94: "socket type not supported", ++ 95: "operation not supported", ++ 96: "protocol family not supported", ++ 97: "address family not supported by protocol", ++ 98: "address already in use", ++ 99: "cannot assign requested address", ++ 100: "network is down", ++ 101: "network is unreachable", ++ 102: "network dropped connection on reset", ++ 103: "software caused connection abort", ++ 104: "connection reset by peer", ++ 105: "no buffer space available", ++ 106: "transport endpoint is already connected", ++ 107: "transport endpoint is not connected", ++ 108: "cannot send after transport endpoint shutdown", ++ 109: "too many references: cannot splice", ++ 110: "connection timed out", ++ 111: "connection refused", ++ 112: "host is down", ++ 113: "no route to host", ++ 114: "operation already in progress", ++ 115: "operation now in progress", ++ 116: "stale file handle", ++ 117: "structure needs cleaning", ++ 118: "not a XENIX named type file", ++ 119: "no XENIX semaphores available", ++ 120: "is a named type file", ++ 121: "remote I/O error", ++ 122: "disk quota exceeded", ++ 123: "no medium found", ++ 124: "wrong medium type", ++ 125: "operation canceled", ++ 126: "required key not available", ++ 127: "key has expired", ++ 128: "key has been revoked", ++ 129: "key was rejected by service", ++ 130: "owner died", ++ 131: "state not recoverable", ++ 132: "operation not possible due to RF-kill", ++ 133: "memory page has hardware error", ++} ++ ++// Signal table ++var signals = [...]string{ ++ 1: "hangup", ++ 2: "interrupt", ++ 3: "quit", ++ 4: "illegal instruction", ++ 5: "trace/breakpoint trap", ++ 6: "aborted", ++ 7: "bus error", ++ 8: "floating point exception", ++ 9: "killed", ++ 10: "user defined signal 1", ++ 11: "segmentation fault", ++ 12: "user defined signal 2", ++ 13: "broken pipe", ++ 14: "alarm clock", ++ 15: "terminated", ++ 16: "stack fault", ++ 17: "child exited", ++ 18: "continued", ++ 19: "stopped (signal)", ++ 20: "stopped", ++ 21: "stopped (tty input)", ++ 22: "stopped (tty output)", ++ 23: "urgent I/O condition", ++ 24: "CPU time limit exceeded", ++ 25: "file size limit exceeded", ++ 26: "virtual timer expired", ++ 27: "profiling timer expired", ++ 28: "window changed", ++ 29: "I/O possible", ++ 30: "power failure", ++ 31: "bad system call", ++} +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go +new file mode 100644 +index 0000000..80e69e4 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go +@@ -0,0 +1,1869 @@ ++// mkerrors.sh ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build mips,linux ++ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- _const.go ++ ++package unix ++ ++import "syscall" ++ ++const ( ++ AF_ALG = 0x26 ++ AF_APPLETALK = 0x5 ++ AF_ASH = 0x12 ++ AF_ATMPVC = 0x8 ++ AF_ATMSVC = 0x14 ++ AF_AX25 = 0x3 ++ AF_BLUETOOTH = 0x1f ++ AF_BRIDGE = 0x7 ++ AF_CAIF = 0x25 ++ AF_CAN = 0x1d ++ AF_DECnet = 0xc ++ AF_ECONET = 0x13 ++ AF_FILE = 0x1 ++ AF_IEEE802154 = 0x24 ++ AF_INET = 0x2 ++ AF_INET6 = 0xa ++ AF_IPX = 0x4 ++ AF_IRDA = 0x17 ++ AF_ISDN = 0x22 ++ AF_IUCV = 0x20 ++ AF_KEY = 0xf ++ AF_LLC = 0x1a ++ AF_LOCAL = 0x1 ++ AF_MAX = 0x27 ++ AF_NETBEUI = 0xd ++ AF_NETLINK = 0x10 ++ AF_NETROM = 0x6 ++ AF_PACKET = 0x11 ++ AF_PHONET = 0x23 ++ AF_PPPOX = 0x18 ++ AF_RDS = 0x15 ++ AF_ROSE = 0xb ++ AF_ROUTE = 0x10 ++ AF_RXRPC = 0x21 ++ AF_SECURITY = 0xe ++ AF_SNA = 0x16 ++ AF_TIPC = 0x1e ++ AF_UNIX = 0x1 ++ AF_UNSPEC = 0x0 ++ AF_VSOCK = 0x28 ++ AF_WANPIPE = 0x19 ++ AF_X25 = 0x9 ++ ALG_OP_DECRYPT = 0x0 ++ ALG_OP_ENCRYPT = 0x1 ++ ALG_SET_AEAD_ASSOCLEN = 0x4 ++ ALG_SET_AEAD_AUTHSIZE = 0x5 ++ ALG_SET_IV = 0x2 ++ ALG_SET_KEY = 0x1 ++ ALG_SET_OP = 0x3 ++ ARPHRD_ADAPT = 0x108 ++ ARPHRD_APPLETLK = 0x8 ++ ARPHRD_ARCNET = 0x7 ++ ARPHRD_ASH = 0x30d ++ ARPHRD_ATM = 0x13 ++ ARPHRD_AX25 = 0x3 ++ ARPHRD_BIF = 0x307 ++ ARPHRD_CAIF = 0x336 ++ ARPHRD_CAN = 0x118 ++ ARPHRD_CHAOS = 0x5 ++ ARPHRD_CISCO = 0x201 ++ ARPHRD_CSLIP = 0x101 ++ ARPHRD_CSLIP6 = 0x103 ++ ARPHRD_DDCMP = 0x205 ++ ARPHRD_DLCI = 0xf ++ ARPHRD_ECONET = 0x30e ++ ARPHRD_EETHER = 0x2 ++ ARPHRD_ETHER = 0x1 ++ ARPHRD_EUI64 = 0x1b ++ ARPHRD_FCAL = 0x311 ++ ARPHRD_FCFABRIC = 0x313 ++ ARPHRD_FCPL = 0x312 ++ ARPHRD_FCPP = 0x310 ++ ARPHRD_FDDI = 0x306 ++ ARPHRD_FRAD = 0x302 ++ ARPHRD_HDLC = 0x201 ++ ARPHRD_HIPPI = 0x30c ++ ARPHRD_HWX25 = 0x110 ++ ARPHRD_IEEE1394 = 0x18 ++ ARPHRD_IEEE802 = 0x6 ++ ARPHRD_IEEE80211 = 0x321 ++ ARPHRD_IEEE80211_PRISM = 0x322 ++ ARPHRD_IEEE80211_RADIOTAP = 0x323 ++ ARPHRD_IEEE802154 = 0x324 ++ ARPHRD_IEEE802_TR = 0x320 ++ ARPHRD_INFINIBAND = 0x20 ++ ARPHRD_IPDDP = 0x309 ++ ARPHRD_IPGRE = 0x30a ++ ARPHRD_IRDA = 0x30f ++ ARPHRD_LAPB = 0x204 ++ ARPHRD_LOCALTLK = 0x305 ++ ARPHRD_LOOPBACK = 0x304 ++ ARPHRD_METRICOM = 0x17 ++ ARPHRD_NETROM = 0x0 ++ ARPHRD_NONE = 0xfffe ++ ARPHRD_PHONET = 0x334 ++ ARPHRD_PHONET_PIPE = 0x335 ++ ARPHRD_PIMREG = 0x30b ++ ARPHRD_PPP = 0x200 ++ ARPHRD_PRONET = 0x4 ++ ARPHRD_RAWHDLC = 0x206 ++ ARPHRD_ROSE = 0x10e ++ ARPHRD_RSRVD = 0x104 ++ ARPHRD_SIT = 0x308 ++ ARPHRD_SKIP = 0x303 ++ ARPHRD_SLIP = 0x100 ++ ARPHRD_SLIP6 = 0x102 ++ ARPHRD_TUNNEL = 0x300 ++ ARPHRD_TUNNEL6 = 0x301 ++ ARPHRD_VOID = 0xffff ++ ARPHRD_X25 = 0x10f ++ B0 = 0x0 ++ B1000000 = 0x1008 ++ B110 = 0x3 ++ B115200 = 0x1002 ++ B1152000 = 0x1009 ++ B1200 = 0x9 ++ B134 = 0x4 ++ B150 = 0x5 ++ B1500000 = 0x100a ++ B1800 = 0xa ++ B19200 = 0xe ++ B200 = 0x6 ++ B2000000 = 0x100b ++ B230400 = 0x1003 ++ B2400 = 0xb ++ B2500000 = 0x100c ++ B300 = 0x7 ++ B3000000 = 0x100d ++ B3500000 = 0x100e ++ B38400 = 0xf ++ B4000000 = 0x100f ++ B460800 = 0x1004 ++ B4800 = 0xc ++ B50 = 0x1 ++ B500000 = 0x1005 ++ B57600 = 0x1001 ++ B576000 = 0x1006 ++ B600 = 0x8 ++ B75 = 0x2 ++ B921600 = 0x1007 ++ B9600 = 0xd ++ BLKBSZGET = 0x80081270 ++ BLKBSZSET = 0x40081271 ++ BLKFLSBUF = 0x1261 ++ BLKFRAGET = 0x1265 ++ BLKFRASET = 0x1264 ++ BLKGETSIZE = 0x1260 ++ BLKGETSIZE64 = 0x80081272 ++ BLKRAGET = 0x1263 ++ BLKRASET = 0x1262 ++ BLKROGET = 0x125e ++ BLKROSET = 0x125d ++ BLKRRPART = 0x125f ++ BLKSECTGET = 0x1267 ++ BLKSECTSET = 0x1266 ++ BLKSSZGET = 0x1268 ++ BOTHER = 0x1000 ++ BPF_A = 0x10 ++ BPF_ABS = 0x20 ++ BPF_ADD = 0x0 ++ BPF_ALU = 0x4 ++ BPF_AND = 0x50 ++ BPF_B = 0x10 ++ BPF_DIV = 0x30 ++ BPF_H = 0x8 ++ BPF_IMM = 0x0 ++ BPF_IND = 0x40 ++ BPF_JA = 0x0 ++ BPF_JEQ = 0x10 ++ BPF_JGE = 0x30 ++ BPF_JGT = 0x20 ++ BPF_JMP = 0x5 ++ BPF_JSET = 0x40 ++ BPF_K = 0x0 ++ BPF_LD = 0x0 ++ BPF_LDX = 0x1 ++ BPF_LEN = 0x80 ++ BPF_LSH = 0x60 ++ BPF_MAJOR_VERSION = 0x1 ++ BPF_MAXINSNS = 0x1000 ++ BPF_MEM = 0x60 ++ BPF_MEMWORDS = 0x10 ++ BPF_MINOR_VERSION = 0x1 ++ BPF_MISC = 0x7 ++ BPF_MSH = 0xa0 ++ BPF_MUL = 0x20 ++ BPF_NEG = 0x80 ++ BPF_OR = 0x40 ++ BPF_RET = 0x6 ++ BPF_RSH = 0x70 ++ BPF_ST = 0x2 ++ BPF_STX = 0x3 ++ BPF_SUB = 0x10 ++ BPF_TAX = 0x0 ++ BPF_TXA = 0x80 ++ BPF_W = 0x0 ++ BPF_X = 0x8 ++ BRKINT = 0x2 ++ BS0 = 0x0 ++ BS1 = 0x2000 ++ BSDLY = 0x2000 ++ CAN_BCM = 0x2 ++ CAN_EFF_FLAG = 0x80000000 ++ CAN_EFF_MASK = 0x1fffffff ++ CAN_ERR_FLAG = 0x20000000 ++ CAN_ERR_MASK = 0x1fffffff ++ CAN_INV_FILTER = 0x20000000 ++ CAN_ISOTP = 0x6 ++ CAN_MCNET = 0x5 ++ CAN_NPROTO = 0x7 ++ CAN_RAW = 0x1 ++ CAN_RTR_FLAG = 0x40000000 ++ CAN_SFF_MASK = 0x7ff ++ CAN_TP16 = 0x3 ++ CAN_TP20 = 0x4 ++ CBAUD = 0x100f ++ CBAUDEX = 0x1000 ++ CFLUSH = 0xf ++ CIBAUD = 0x100f0000 ++ CLOCAL = 0x800 ++ CLOCK_DEFAULT = 0x0 ++ CLOCK_EXT = 0x1 ++ CLOCK_INT = 0x2 ++ CLOCK_MONOTONIC = 0x1 ++ CLOCK_MONOTONIC_COARSE = 0x6 ++ CLOCK_MONOTONIC_RAW = 0x4 ++ CLOCK_PROCESS_CPUTIME_ID = 0x2 ++ CLOCK_REALTIME = 0x0 ++ CLOCK_REALTIME_COARSE = 0x5 ++ CLOCK_THREAD_CPUTIME_ID = 0x3 ++ CLOCK_TXFROMRX = 0x4 ++ CLOCK_TXINT = 0x3 ++ CLONE_CHILD_CLEARTID = 0x200000 ++ CLONE_CHILD_SETTID = 0x1000000 ++ CLONE_DETACHED = 0x400000 ++ CLONE_FILES = 0x400 ++ CLONE_FS = 0x200 ++ CLONE_IO = 0x80000000 ++ CLONE_NEWIPC = 0x8000000 ++ CLONE_NEWNET = 0x40000000 ++ CLONE_NEWNS = 0x20000 ++ CLONE_NEWPID = 0x20000000 ++ CLONE_NEWUSER = 0x10000000 ++ CLONE_NEWUTS = 0x4000000 ++ CLONE_PARENT = 0x8000 ++ CLONE_PARENT_SETTID = 0x100000 ++ CLONE_PTRACE = 0x2000 ++ CLONE_SETTLS = 0x80000 ++ CLONE_SIGHAND = 0x800 ++ CLONE_SYSVSEM = 0x40000 ++ CLONE_THREAD = 0x10000 ++ CLONE_UNTRACED = 0x800000 ++ CLONE_VFORK = 0x4000 ++ CLONE_VM = 0x100 ++ CMSPAR = 0x40000000 ++ CR0 = 0x0 ++ CR1 = 0x200 ++ CR2 = 0x400 ++ CR3 = 0x600 ++ CRDLY = 0x600 ++ CREAD = 0x80 ++ CRTSCTS = 0x80000000 ++ CS5 = 0x0 ++ CS6 = 0x10 ++ CS7 = 0x20 ++ CS8 = 0x30 ++ CSIGNAL = 0xff ++ CSIZE = 0x30 ++ CSTART = 0x11 ++ CSTATUS = 0x0 ++ CSTOP = 0x13 ++ CSTOPB = 0x40 ++ CSUSP = 0x1a ++ DT_BLK = 0x6 ++ DT_CHR = 0x2 ++ DT_DIR = 0x4 ++ DT_FIFO = 0x1 ++ DT_LNK = 0xa ++ DT_REG = 0x8 ++ DT_SOCK = 0xc ++ DT_UNKNOWN = 0x0 ++ DT_WHT = 0xe ++ ECHO = 0x8 ++ ECHOCTL = 0x200 ++ ECHOE = 0x10 ++ ECHOK = 0x20 ++ ECHOKE = 0x800 ++ ECHONL = 0x40 ++ ECHOPRT = 0x400 ++ ENCODING_DEFAULT = 0x0 ++ ENCODING_FM_MARK = 0x3 ++ ENCODING_FM_SPACE = 0x4 ++ ENCODING_MANCHESTER = 0x5 ++ ENCODING_NRZ = 0x1 ++ ENCODING_NRZI = 0x2 ++ EPOLLERR = 0x8 ++ EPOLLET = -0x80000000 ++ EPOLLHUP = 0x10 ++ EPOLLIN = 0x1 ++ EPOLLMSG = 0x400 ++ EPOLLONESHOT = 0x40000000 ++ EPOLLOUT = 0x4 ++ EPOLLPRI = 0x2 ++ EPOLLRDBAND = 0x80 ++ EPOLLRDHUP = 0x2000 ++ EPOLLRDNORM = 0x40 ++ EPOLLWRBAND = 0x200 ++ EPOLLWRNORM = 0x100 ++ EPOLL_CLOEXEC = 0x80000 ++ EPOLL_CTL_ADD = 0x1 ++ EPOLL_CTL_DEL = 0x2 ++ EPOLL_CTL_MOD = 0x3 ++ EPOLL_NONBLOCK = 0x80 ++ ETH_P_1588 = 0x88f7 ++ ETH_P_8021AD = 0x88a8 ++ ETH_P_8021AH = 0x88e7 ++ ETH_P_8021Q = 0x8100 ++ ETH_P_802_2 = 0x4 ++ ETH_P_802_3 = 0x1 ++ ETH_P_AARP = 0x80f3 ++ ETH_P_AF_IUCV = 0xfbfb ++ ETH_P_ALL = 0x3 ++ ETH_P_AOE = 0x88a2 ++ ETH_P_ARCNET = 0x1a ++ ETH_P_ARP = 0x806 ++ ETH_P_ATALK = 0x809b ++ ETH_P_ATMFATE = 0x8884 ++ ETH_P_ATMMPOA = 0x884c ++ ETH_P_AX25 = 0x2 ++ ETH_P_BPQ = 0x8ff ++ ETH_P_CAIF = 0xf7 ++ ETH_P_CAN = 0xc ++ ETH_P_CONTROL = 0x16 ++ ETH_P_CUST = 0x6006 ++ ETH_P_DDCMP = 0x6 ++ ETH_P_DEC = 0x6000 ++ ETH_P_DIAG = 0x6005 ++ ETH_P_DNA_DL = 0x6001 ++ ETH_P_DNA_RC = 0x6002 ++ ETH_P_DNA_RT = 0x6003 ++ ETH_P_DSA = 0x1b ++ ETH_P_ECONET = 0x18 ++ ETH_P_EDSA = 0xdada ++ ETH_P_FCOE = 0x8906 ++ ETH_P_FIP = 0x8914 ++ ETH_P_HDLC = 0x19 ++ ETH_P_IEEE802154 = 0xf6 ++ ETH_P_IEEEPUP = 0xa00 ++ ETH_P_IEEEPUPAT = 0xa01 ++ ETH_P_IP = 0x800 ++ ETH_P_IPV6 = 0x86dd ++ ETH_P_IPX = 0x8137 ++ ETH_P_IRDA = 0x17 ++ ETH_P_LAT = 0x6004 ++ ETH_P_LINK_CTL = 0x886c ++ ETH_P_LOCALTALK = 0x9 ++ ETH_P_LOOP = 0x60 ++ ETH_P_MOBITEX = 0x15 ++ ETH_P_MPLS_MC = 0x8848 ++ ETH_P_MPLS_UC = 0x8847 ++ ETH_P_PAE = 0x888e ++ ETH_P_PAUSE = 0x8808 ++ ETH_P_PHONET = 0xf5 ++ ETH_P_PPPTALK = 0x10 ++ ETH_P_PPP_DISC = 0x8863 ++ ETH_P_PPP_MP = 0x8 ++ ETH_P_PPP_SES = 0x8864 ++ ETH_P_PUP = 0x200 ++ ETH_P_PUPAT = 0x201 ++ ETH_P_QINQ1 = 0x9100 ++ ETH_P_QINQ2 = 0x9200 ++ ETH_P_QINQ3 = 0x9300 ++ ETH_P_RARP = 0x8035 ++ ETH_P_SCA = 0x6007 ++ ETH_P_SLOW = 0x8809 ++ ETH_P_SNAP = 0x5 ++ ETH_P_TDLS = 0x890d ++ ETH_P_TEB = 0x6558 ++ ETH_P_TIPC = 0x88ca ++ ETH_P_TRAILER = 0x1c ++ ETH_P_TR_802_2 = 0x11 ++ ETH_P_WAN_PPP = 0x7 ++ ETH_P_WCCP = 0x883e ++ ETH_P_X25 = 0x805 ++ EXTA = 0xe ++ EXTB = 0xf ++ EXTPROC = 0x10000 ++ FALLOC_FL_COLLAPSE_RANGE = 0x8 ++ FALLOC_FL_INSERT_RANGE = 0x20 ++ FALLOC_FL_KEEP_SIZE = 0x1 ++ FALLOC_FL_NO_HIDE_STALE = 0x4 ++ FALLOC_FL_PUNCH_HOLE = 0x2 ++ FALLOC_FL_ZERO_RANGE = 0x10 ++ FD_CLOEXEC = 0x1 ++ FD_SETSIZE = 0x400 ++ FF0 = 0x0 ++ FF1 = 0x8000 ++ FFDLY = 0x8000 ++ FLUSHO = 0x2000 ++ F_DUPFD = 0x0 ++ F_DUPFD_CLOEXEC = 0x406 ++ F_EXLCK = 0x4 ++ F_GETFD = 0x1 ++ F_GETFL = 0x3 ++ F_GETLEASE = 0x401 ++ F_GETLK = 0x21 ++ F_GETLK64 = 0x21 ++ F_GETOWN = 0x17 ++ F_GETOWN_EX = 0x10 ++ F_GETPIPE_SZ = 0x408 ++ F_GETSIG = 0xb ++ F_LOCK = 0x1 ++ F_NOTIFY = 0x402 ++ F_OK = 0x0 ++ F_RDLCK = 0x0 ++ F_SETFD = 0x2 ++ F_SETFL = 0x4 ++ F_SETLEASE = 0x400 ++ F_SETLK = 0x22 ++ F_SETLK64 = 0x22 ++ F_SETLKW = 0x23 ++ F_SETLKW64 = 0x23 ++ F_SETOWN = 0x18 ++ F_SETOWN_EX = 0xf ++ F_SETPIPE_SZ = 0x407 ++ F_SETSIG = 0xa ++ F_SHLCK = 0x8 ++ F_TEST = 0x3 ++ F_TLOCK = 0x2 ++ F_ULOCK = 0x0 ++ F_UNLCK = 0x2 ++ F_WRLCK = 0x1 ++ GRND_NONBLOCK = 0x1 ++ GRND_RANDOM = 0x2 ++ HUPCL = 0x400 ++ IBSHIFT = 0x10 ++ ICANON = 0x2 ++ ICMPV6_FILTER = 0x1 ++ ICRNL = 0x100 ++ IEXTEN = 0x100 ++ IFA_F_DADFAILED = 0x8 ++ IFA_F_DEPRECATED = 0x20 ++ IFA_F_HOMEADDRESS = 0x10 ++ IFA_F_NODAD = 0x2 ++ IFA_F_OPTIMISTIC = 0x4 ++ IFA_F_PERMANENT = 0x80 ++ IFA_F_SECONDARY = 0x1 ++ IFA_F_TEMPORARY = 0x1 ++ IFA_F_TENTATIVE = 0x40 ++ IFA_MAX = 0x7 ++ IFF_802_1Q_VLAN = 0x1 ++ IFF_ALLMULTI = 0x200 ++ IFF_AUTOMEDIA = 0x4000 ++ IFF_BONDING = 0x20 ++ IFF_BRIDGE_PORT = 0x4000 ++ IFF_BROADCAST = 0x2 ++ IFF_DEBUG = 0x4 ++ IFF_DISABLE_NETPOLL = 0x1000 ++ IFF_DONT_BRIDGE = 0x800 ++ IFF_DORMANT = 0x20000 ++ IFF_DYNAMIC = 0x8000 ++ IFF_EBRIDGE = 0x2 ++ IFF_ECHO = 0x40000 ++ IFF_ISATAP = 0x80 ++ IFF_LOOPBACK = 0x8 ++ IFF_LOWER_UP = 0x10000 ++ IFF_MACVLAN_PORT = 0x2000 ++ IFF_MASTER = 0x400 ++ IFF_MASTER_8023AD = 0x8 ++ IFF_MASTER_ALB = 0x10 ++ IFF_MASTER_ARPMON = 0x100 ++ IFF_MULTICAST = 0x1000 ++ IFF_NOARP = 0x80 ++ IFF_NOTRAILERS = 0x20 ++ IFF_NO_PI = 0x1000 ++ IFF_ONE_QUEUE = 0x2000 ++ IFF_OVS_DATAPATH = 0x8000 ++ IFF_POINTOPOINT = 0x10 ++ IFF_PORTSEL = 0x2000 ++ IFF_PROMISC = 0x100 ++ IFF_RUNNING = 0x40 ++ IFF_SLAVE = 0x800 ++ IFF_SLAVE_INACTIVE = 0x4 ++ IFF_SLAVE_NEEDARP = 0x40 ++ IFF_TAP = 0x2 ++ IFF_TUN = 0x1 ++ IFF_TUN_EXCL = 0x8000 ++ IFF_TX_SKB_SHARING = 0x10000 ++ IFF_UNICAST_FLT = 0x20000 ++ IFF_UP = 0x1 ++ IFF_VNET_HDR = 0x4000 ++ IFF_VOLATILE = 0x70c5a ++ IFF_WAN_HDLC = 0x200 ++ IFF_XMIT_DST_RELEASE = 0x400 ++ IFNAMSIZ = 0x10 ++ IGNBRK = 0x1 ++ IGNCR = 0x80 ++ IGNPAR = 0x4 ++ IMAXBEL = 0x2000 ++ INLCR = 0x40 ++ INPCK = 0x10 ++ IN_ACCESS = 0x1 ++ IN_ALL_EVENTS = 0xfff ++ IN_ATTRIB = 0x4 ++ IN_CLASSA_HOST = 0xffffff ++ IN_CLASSA_MAX = 0x80 ++ IN_CLASSA_NET = 0xff000000 ++ IN_CLASSA_NSHIFT = 0x18 ++ IN_CLASSB_HOST = 0xffff ++ IN_CLASSB_MAX = 0x10000 ++ IN_CLASSB_NET = 0xffff0000 ++ IN_CLASSB_NSHIFT = 0x10 ++ IN_CLASSC_HOST = 0xff ++ IN_CLASSC_NET = 0xffffff00 ++ IN_CLASSC_NSHIFT = 0x8 ++ IN_CLOEXEC = 0x80000 ++ IN_CLOSE = 0x18 ++ IN_CLOSE_NOWRITE = 0x10 ++ IN_CLOSE_WRITE = 0x8 ++ IN_CREATE = 0x100 ++ IN_DELETE = 0x200 ++ IN_DELETE_SELF = 0x400 ++ IN_DONT_FOLLOW = 0x2000000 ++ IN_EXCL_UNLINK = 0x4000000 ++ IN_IGNORED = 0x8000 ++ IN_ISDIR = 0x40000000 ++ IN_LOOPBACKNET = 0x7f ++ IN_MASK_ADD = 0x20000000 ++ IN_MODIFY = 0x2 ++ IN_MOVE = 0xc0 ++ IN_MOVED_FROM = 0x40 ++ IN_MOVED_TO = 0x80 ++ IN_MOVE_SELF = 0x800 ++ IN_NONBLOCK = 0x80 ++ IN_ONESHOT = 0x80000000 ++ IN_ONLYDIR = 0x1000000 ++ IN_OPEN = 0x20 ++ IN_Q_OVERFLOW = 0x4000 ++ IN_UNMOUNT = 0x2000 ++ IPPROTO_AH = 0x33 ++ IPPROTO_COMP = 0x6c ++ IPPROTO_DCCP = 0x21 ++ IPPROTO_DSTOPTS = 0x3c ++ IPPROTO_EGP = 0x8 ++ IPPROTO_ENCAP = 0x62 ++ IPPROTO_ESP = 0x32 ++ IPPROTO_FRAGMENT = 0x2c ++ IPPROTO_GRE = 0x2f ++ IPPROTO_HOPOPTS = 0x0 ++ IPPROTO_ICMP = 0x1 ++ IPPROTO_ICMPV6 = 0x3a ++ IPPROTO_IDP = 0x16 ++ IPPROTO_IGMP = 0x2 ++ IPPROTO_IP = 0x0 ++ IPPROTO_IPIP = 0x4 ++ IPPROTO_IPV6 = 0x29 ++ IPPROTO_MTP = 0x5c ++ IPPROTO_NONE = 0x3b ++ IPPROTO_PIM = 0x67 ++ IPPROTO_PUP = 0xc ++ IPPROTO_RAW = 0xff ++ IPPROTO_ROUTING = 0x2b ++ IPPROTO_RSVP = 0x2e ++ IPPROTO_SCTP = 0x84 ++ IPPROTO_TCP = 0x6 ++ IPPROTO_TP = 0x1d ++ IPPROTO_UDP = 0x11 ++ IPPROTO_UDPLITE = 0x88 ++ IPV6_2292DSTOPTS = 0x4 ++ IPV6_2292HOPLIMIT = 0x8 ++ IPV6_2292HOPOPTS = 0x3 ++ IPV6_2292PKTINFO = 0x2 ++ IPV6_2292PKTOPTIONS = 0x6 ++ IPV6_2292RTHDR = 0x5 ++ IPV6_ADDRFORM = 0x1 ++ IPV6_ADD_MEMBERSHIP = 0x14 ++ IPV6_AUTHHDR = 0xa ++ IPV6_CHECKSUM = 0x7 ++ IPV6_DROP_MEMBERSHIP = 0x15 ++ IPV6_DSTOPTS = 0x3b ++ IPV6_HOPLIMIT = 0x34 ++ IPV6_HOPOPTS = 0x36 ++ IPV6_IPSEC_POLICY = 0x22 ++ IPV6_JOIN_ANYCAST = 0x1b ++ IPV6_JOIN_GROUP = 0x14 ++ IPV6_LEAVE_ANYCAST = 0x1c ++ IPV6_LEAVE_GROUP = 0x15 ++ IPV6_MTU = 0x18 ++ IPV6_MTU_DISCOVER = 0x17 ++ IPV6_MULTICAST_HOPS = 0x12 ++ IPV6_MULTICAST_IF = 0x11 ++ IPV6_MULTICAST_LOOP = 0x13 ++ IPV6_NEXTHOP = 0x9 ++ IPV6_PKTINFO = 0x32 ++ IPV6_PMTUDISC_DO = 0x2 ++ IPV6_PMTUDISC_DONT = 0x0 ++ IPV6_PMTUDISC_PROBE = 0x3 ++ IPV6_PMTUDISC_WANT = 0x1 ++ IPV6_RECVDSTOPTS = 0x3a ++ IPV6_RECVERR = 0x19 ++ IPV6_RECVHOPLIMIT = 0x33 ++ IPV6_RECVHOPOPTS = 0x35 ++ IPV6_RECVPKTINFO = 0x31 ++ IPV6_RECVRTHDR = 0x38 ++ IPV6_RECVTCLASS = 0x42 ++ IPV6_ROUTER_ALERT = 0x16 ++ IPV6_RTHDR = 0x39 ++ IPV6_RTHDRDSTOPTS = 0x37 ++ IPV6_RTHDR_LOOSE = 0x0 ++ IPV6_RTHDR_STRICT = 0x1 ++ IPV6_RTHDR_TYPE_0 = 0x0 ++ IPV6_RXDSTOPTS = 0x3b ++ IPV6_RXHOPOPTS = 0x36 ++ IPV6_TCLASS = 0x43 ++ IPV6_UNICAST_HOPS = 0x10 ++ IPV6_V6ONLY = 0x1a ++ IPV6_XFRM_POLICY = 0x23 ++ IP_ADD_MEMBERSHIP = 0x23 ++ IP_ADD_SOURCE_MEMBERSHIP = 0x27 ++ IP_BLOCK_SOURCE = 0x26 ++ IP_DEFAULT_MULTICAST_LOOP = 0x1 ++ IP_DEFAULT_MULTICAST_TTL = 0x1 ++ IP_DF = 0x4000 ++ IP_DROP_MEMBERSHIP = 0x24 ++ IP_DROP_SOURCE_MEMBERSHIP = 0x28 ++ IP_FREEBIND = 0xf ++ IP_HDRINCL = 0x3 ++ IP_IPSEC_POLICY = 0x10 ++ IP_MAXPACKET = 0xffff ++ IP_MAX_MEMBERSHIPS = 0x14 ++ IP_MF = 0x2000 ++ IP_MINTTL = 0x15 ++ IP_MSFILTER = 0x29 ++ IP_MSS = 0x240 ++ IP_MTU = 0xe ++ IP_MTU_DISCOVER = 0xa ++ IP_MULTICAST_IF = 0x20 ++ IP_MULTICAST_LOOP = 0x22 ++ IP_MULTICAST_TTL = 0x21 ++ IP_OFFMASK = 0x1fff ++ IP_OPTIONS = 0x4 ++ IP_ORIGDSTADDR = 0x14 ++ IP_PASSSEC = 0x12 ++ IP_PKTINFO = 0x8 ++ IP_PKTOPTIONS = 0x9 ++ IP_PMTUDISC = 0xa ++ IP_PMTUDISC_DO = 0x2 ++ IP_PMTUDISC_DONT = 0x0 ++ IP_PMTUDISC_PROBE = 0x3 ++ IP_PMTUDISC_WANT = 0x1 ++ IP_RECVERR = 0xb ++ IP_RECVOPTS = 0x6 ++ IP_RECVORIGDSTADDR = 0x14 ++ IP_RECVRETOPTS = 0x7 ++ IP_RECVTOS = 0xd ++ IP_RECVTTL = 0xc ++ IP_RETOPTS = 0x7 ++ IP_RF = 0x8000 ++ IP_ROUTER_ALERT = 0x5 ++ IP_TOS = 0x1 ++ IP_TRANSPARENT = 0x13 ++ IP_TTL = 0x2 ++ IP_UNBLOCK_SOURCE = 0x25 ++ IP_XFRM_POLICY = 0x11 ++ ISIG = 0x1 ++ ISTRIP = 0x20 ++ IUCLC = 0x200 ++ IUTF8 = 0x4000 ++ IXANY = 0x800 ++ IXOFF = 0x1000 ++ IXON = 0x400 ++ LINUX_REBOOT_CMD_CAD_OFF = 0x0 ++ LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef ++ LINUX_REBOOT_CMD_HALT = 0xcdef0123 ++ LINUX_REBOOT_CMD_KEXEC = 0x45584543 ++ LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc ++ LINUX_REBOOT_CMD_RESTART = 0x1234567 ++ LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 ++ LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 ++ LINUX_REBOOT_MAGIC1 = 0xfee1dead ++ LINUX_REBOOT_MAGIC2 = 0x28121969 ++ LOCK_EX = 0x2 ++ LOCK_NB = 0x4 ++ LOCK_SH = 0x1 ++ LOCK_UN = 0x8 ++ MADV_DOFORK = 0xb ++ MADV_DONTFORK = 0xa ++ MADV_DONTNEED = 0x4 ++ MADV_HUGEPAGE = 0xe ++ MADV_HWPOISON = 0x64 ++ MADV_MERGEABLE = 0xc ++ MADV_NOHUGEPAGE = 0xf ++ MADV_NORMAL = 0x0 ++ MADV_RANDOM = 0x1 ++ MADV_REMOVE = 0x9 ++ MADV_SEQUENTIAL = 0x2 ++ MADV_UNMERGEABLE = 0xd ++ MADV_WILLNEED = 0x3 ++ MAP_ANON = 0x800 ++ MAP_ANONYMOUS = 0x800 ++ MAP_DENYWRITE = 0x2000 ++ MAP_EXECUTABLE = 0x4000 ++ MAP_FILE = 0x0 ++ MAP_FIXED = 0x10 ++ MAP_GROWSDOWN = 0x1000 ++ MAP_LOCKED = 0x8000 ++ MAP_NONBLOCK = 0x20000 ++ MAP_NORESERVE = 0x400 ++ MAP_POPULATE = 0x10000 ++ MAP_PRIVATE = 0x2 ++ MAP_RENAME = 0x800 ++ MAP_SHARED = 0x1 ++ MAP_TYPE = 0xf ++ MCL_CURRENT = 0x1 ++ MCL_FUTURE = 0x2 ++ MNT_DETACH = 0x2 ++ MNT_EXPIRE = 0x4 ++ MNT_FORCE = 0x1 ++ MSG_CMSG_CLOEXEC = 0x40000000 ++ MSG_CONFIRM = 0x800 ++ MSG_CTRUNC = 0x8 ++ MSG_DONTROUTE = 0x4 ++ MSG_DONTWAIT = 0x40 ++ MSG_EOR = 0x80 ++ MSG_ERRQUEUE = 0x2000 ++ MSG_FASTOPEN = 0x20000000 ++ MSG_FIN = 0x200 ++ MSG_MORE = 0x8000 ++ MSG_NOSIGNAL = 0x4000 ++ MSG_OOB = 0x1 ++ MSG_PEEK = 0x2 ++ MSG_PROXY = 0x10 ++ MSG_RST = 0x1000 ++ MSG_SYN = 0x400 ++ MSG_TRUNC = 0x20 ++ MSG_TRYHARD = 0x4 ++ MSG_WAITALL = 0x100 ++ MSG_WAITFORONE = 0x10000 ++ MS_ACTIVE = 0x40000000 ++ MS_ASYNC = 0x1 ++ MS_BIND = 0x1000 ++ MS_DIRSYNC = 0x80 ++ MS_INVALIDATE = 0x2 ++ MS_I_VERSION = 0x800000 ++ MS_KERNMOUNT = 0x400000 ++ MS_MANDLOCK = 0x40 ++ MS_MGC_MSK = 0xffff0000 ++ MS_MGC_VAL = 0xc0ed0000 ++ MS_MOVE = 0x2000 ++ MS_NOATIME = 0x400 ++ MS_NODEV = 0x4 ++ MS_NODIRATIME = 0x800 ++ MS_NOEXEC = 0x8 ++ MS_NOSUID = 0x2 ++ MS_NOUSER = -0x80000000 ++ MS_POSIXACL = 0x10000 ++ MS_PRIVATE = 0x40000 ++ MS_RDONLY = 0x1 ++ MS_REC = 0x4000 ++ MS_RELATIME = 0x200000 ++ MS_REMOUNT = 0x20 ++ MS_RMT_MASK = 0x800051 ++ MS_SHARED = 0x100000 ++ MS_SILENT = 0x8000 ++ MS_SLAVE = 0x80000 ++ MS_STRICTATIME = 0x1000000 ++ MS_SYNC = 0x4 ++ MS_SYNCHRONOUS = 0x10 ++ MS_UNBINDABLE = 0x20000 ++ NAME_MAX = 0xff ++ NETLINK_ADD_MEMBERSHIP = 0x1 ++ NETLINK_AUDIT = 0x9 ++ NETLINK_BROADCAST_ERROR = 0x4 ++ NETLINK_CAP_ACK = 0xa ++ NETLINK_CONNECTOR = 0xb ++ NETLINK_CRYPTO = 0x15 ++ NETLINK_DNRTMSG = 0xe ++ NETLINK_DROP_MEMBERSHIP = 0x2 ++ NETLINK_ECRYPTFS = 0x13 ++ NETLINK_FIB_LOOKUP = 0xa ++ NETLINK_FIREWALL = 0x3 ++ NETLINK_GENERIC = 0x10 ++ NETLINK_INET_DIAG = 0x4 ++ NETLINK_IP6_FW = 0xd ++ NETLINK_ISCSI = 0x8 ++ NETLINK_KOBJECT_UEVENT = 0xf ++ NETLINK_LISTEN_ALL_NSID = 0x8 ++ NETLINK_LIST_MEMBERSHIPS = 0x9 ++ NETLINK_NETFILTER = 0xc ++ NETLINK_NFLOG = 0x5 ++ NETLINK_NO_ENOBUFS = 0x5 ++ NETLINK_PKTINFO = 0x3 ++ NETLINK_RDMA = 0x14 ++ NETLINK_ROUTE = 0x0 ++ NETLINK_RX_RING = 0x6 ++ NETLINK_SCSITRANSPORT = 0x12 ++ NETLINK_SELINUX = 0x7 ++ NETLINK_SOCK_DIAG = 0x4 ++ NETLINK_TX_RING = 0x7 ++ NETLINK_UNUSED = 0x1 ++ NETLINK_USERSOCK = 0x2 ++ NETLINK_XFRM = 0x6 ++ NL0 = 0x0 ++ NL1 = 0x100 ++ NLA_ALIGNTO = 0x4 ++ NLA_F_NESTED = 0x8000 ++ NLA_F_NET_BYTEORDER = 0x4000 ++ NLA_HDRLEN = 0x4 ++ NLDLY = 0x100 ++ NLMSG_ALIGNTO = 0x4 ++ NLMSG_DONE = 0x3 ++ NLMSG_ERROR = 0x2 ++ NLMSG_HDRLEN = 0x10 ++ NLMSG_MIN_TYPE = 0x10 ++ NLMSG_NOOP = 0x1 ++ NLMSG_OVERRUN = 0x4 ++ NLM_F_ACK = 0x4 ++ NLM_F_APPEND = 0x800 ++ NLM_F_ATOMIC = 0x400 ++ NLM_F_CREATE = 0x400 ++ NLM_F_DUMP = 0x300 ++ NLM_F_DUMP_FILTERED = 0x20 ++ NLM_F_DUMP_INTR = 0x10 ++ NLM_F_ECHO = 0x8 ++ NLM_F_EXCL = 0x200 ++ NLM_F_MATCH = 0x200 ++ NLM_F_MULTI = 0x2 ++ NLM_F_REPLACE = 0x100 ++ NLM_F_REQUEST = 0x1 ++ NLM_F_ROOT = 0x100 ++ NOFLSH = 0x80 ++ OCRNL = 0x8 ++ OFDEL = 0x80 ++ OFILL = 0x40 ++ OLCUC = 0x2 ++ ONLCR = 0x4 ++ ONLRET = 0x20 ++ ONOCR = 0x10 ++ OPOST = 0x1 ++ O_ACCMODE = 0x3 ++ O_APPEND = 0x8 ++ O_ASYNC = 0x1000 ++ O_CLOEXEC = 0x80000 ++ O_CREAT = 0x100 ++ O_DIRECT = 0x8000 ++ O_DIRECTORY = 0x10000 ++ O_DSYNC = 0x10 ++ O_EXCL = 0x400 ++ O_FSYNC = 0x4010 ++ O_LARGEFILE = 0x2000 ++ O_NDELAY = 0x80 ++ O_NOATIME = 0x40000 ++ O_NOCTTY = 0x800 ++ O_NOFOLLOW = 0x20000 ++ O_NONBLOCK = 0x80 ++ O_RDONLY = 0x0 ++ O_RDWR = 0x2 ++ O_RSYNC = 0x4010 ++ O_SYNC = 0x4010 ++ O_TRUNC = 0x200 ++ O_WRONLY = 0x1 ++ PACKET_ADD_MEMBERSHIP = 0x1 ++ PACKET_AUXDATA = 0x8 ++ PACKET_BROADCAST = 0x1 ++ PACKET_COPY_THRESH = 0x7 ++ PACKET_DROP_MEMBERSHIP = 0x2 ++ PACKET_FANOUT = 0x12 ++ PACKET_FANOUT_CPU = 0x2 ++ PACKET_FANOUT_FLAG_DEFRAG = 0x8000 ++ PACKET_FANOUT_HASH = 0x0 ++ PACKET_FANOUT_LB = 0x1 ++ PACKET_FASTROUTE = 0x6 ++ PACKET_HDRLEN = 0xb ++ PACKET_HOST = 0x0 ++ PACKET_LOOPBACK = 0x5 ++ PACKET_LOSS = 0xe ++ PACKET_MR_ALLMULTI = 0x2 ++ PACKET_MR_MULTICAST = 0x0 ++ PACKET_MR_PROMISC = 0x1 ++ PACKET_MR_UNICAST = 0x3 ++ PACKET_MULTICAST = 0x2 ++ PACKET_ORIGDEV = 0x9 ++ PACKET_OTHERHOST = 0x3 ++ PACKET_OUTGOING = 0x4 ++ PACKET_RECV_OUTPUT = 0x3 ++ PACKET_RESERVE = 0xc ++ PACKET_RX_RING = 0x5 ++ PACKET_STATISTICS = 0x6 ++ PACKET_TIMESTAMP = 0x11 ++ PACKET_TX_RING = 0xd ++ PACKET_TX_TIMESTAMP = 0x10 ++ PACKET_VERSION = 0xa ++ PACKET_VNET_HDR = 0xf ++ PARENB = 0x100 ++ PARITY_CRC16_PR0 = 0x2 ++ PARITY_CRC16_PR0_CCITT = 0x4 ++ PARITY_CRC16_PR1 = 0x3 ++ PARITY_CRC16_PR1_CCITT = 0x5 ++ PARITY_CRC32_PR0_CCITT = 0x6 ++ PARITY_CRC32_PR1_CCITT = 0x7 ++ PARITY_DEFAULT = 0x0 ++ PARITY_NONE = 0x1 ++ PARMRK = 0x8 ++ PARODD = 0x200 ++ PENDIN = 0x4000 ++ PRIO_PGRP = 0x1 ++ PRIO_PROCESS = 0x0 ++ PRIO_USER = 0x2 ++ PROT_EXEC = 0x4 ++ PROT_GROWSDOWN = 0x1000000 ++ PROT_GROWSUP = 0x2000000 ++ PROT_NONE = 0x0 ++ PROT_READ = 0x1 ++ PROT_WRITE = 0x2 ++ PR_CAPBSET_DROP = 0x18 ++ PR_CAPBSET_READ = 0x17 ++ PR_ENDIAN_BIG = 0x0 ++ PR_ENDIAN_LITTLE = 0x1 ++ PR_ENDIAN_PPC_LITTLE = 0x2 ++ PR_FPEMU_NOPRINT = 0x1 ++ PR_FPEMU_SIGFPE = 0x2 ++ PR_FP_EXC_ASYNC = 0x2 ++ PR_FP_EXC_DISABLED = 0x0 ++ PR_FP_EXC_DIV = 0x10000 ++ PR_FP_EXC_INV = 0x100000 ++ PR_FP_EXC_NONRECOV = 0x1 ++ PR_FP_EXC_OVF = 0x20000 ++ PR_FP_EXC_PRECISE = 0x3 ++ PR_FP_EXC_RES = 0x80000 ++ PR_FP_EXC_SW_ENABLE = 0x80 ++ PR_FP_EXC_UND = 0x40000 ++ PR_GET_DUMPABLE = 0x3 ++ PR_GET_ENDIAN = 0x13 ++ PR_GET_FPEMU = 0x9 ++ PR_GET_FPEXC = 0xb ++ PR_GET_KEEPCAPS = 0x7 ++ PR_GET_NAME = 0x10 ++ PR_GET_PDEATHSIG = 0x2 ++ PR_GET_SECCOMP = 0x15 ++ PR_GET_SECUREBITS = 0x1b ++ PR_GET_TIMERSLACK = 0x1e ++ PR_GET_TIMING = 0xd ++ PR_GET_TSC = 0x19 ++ PR_GET_UNALIGN = 0x5 ++ PR_MCE_KILL = 0x21 ++ PR_MCE_KILL_CLEAR = 0x0 ++ PR_MCE_KILL_DEFAULT = 0x2 ++ PR_MCE_KILL_EARLY = 0x1 ++ PR_MCE_KILL_GET = 0x22 ++ PR_MCE_KILL_LATE = 0x0 ++ PR_MCE_KILL_SET = 0x1 ++ PR_SET_DUMPABLE = 0x4 ++ PR_SET_ENDIAN = 0x14 ++ PR_SET_FPEMU = 0xa ++ PR_SET_FPEXC = 0xc ++ PR_SET_KEEPCAPS = 0x8 ++ PR_SET_NAME = 0xf ++ PR_SET_PDEATHSIG = 0x1 ++ PR_SET_SECCOMP = 0x16 ++ PR_SET_SECUREBITS = 0x1c ++ PR_SET_TIMERSLACK = 0x1d ++ PR_SET_TIMING = 0xe ++ PR_SET_TSC = 0x1a ++ PR_SET_UNALIGN = 0x6 ++ PR_TASK_PERF_EVENTS_DISABLE = 0x1f ++ PR_TASK_PERF_EVENTS_ENABLE = 0x20 ++ PR_TIMING_STATISTICAL = 0x0 ++ PR_TIMING_TIMESTAMP = 0x1 ++ PR_TSC_ENABLE = 0x1 ++ PR_TSC_SIGSEGV = 0x2 ++ PR_UNALIGN_NOPRINT = 0x1 ++ PR_UNALIGN_SIGBUS = 0x2 ++ PTRACE_ATTACH = 0x10 ++ PTRACE_CONT = 0x7 ++ PTRACE_DETACH = 0x11 ++ PTRACE_EVENT_CLONE = 0x3 ++ PTRACE_EVENT_EXEC = 0x4 ++ PTRACE_EVENT_EXIT = 0x6 ++ PTRACE_EVENT_FORK = 0x1 ++ PTRACE_EVENT_STOP = 0x7 ++ PTRACE_EVENT_VFORK = 0x2 ++ PTRACE_EVENT_VFORK_DONE = 0x5 ++ PTRACE_GETEVENTMSG = 0x4201 ++ PTRACE_GETFPREGS = 0xe ++ PTRACE_GETREGS = 0xc ++ PTRACE_GETREGSET = 0x4204 ++ PTRACE_GETSIGINFO = 0x4202 ++ PTRACE_GET_THREAD_AREA = 0x19 ++ PTRACE_GET_THREAD_AREA_3264 = 0xc4 ++ PTRACE_GET_WATCH_REGS = 0xd0 ++ PTRACE_INTERRUPT = 0x4207 ++ PTRACE_KILL = 0x8 ++ PTRACE_LISTEN = 0x4208 ++ PTRACE_OLDSETOPTIONS = 0x15 ++ PTRACE_O_MASK = 0x7f ++ PTRACE_O_TRACECLONE = 0x8 ++ PTRACE_O_TRACEEXEC = 0x10 ++ PTRACE_O_TRACEEXIT = 0x40 ++ PTRACE_O_TRACEFORK = 0x2 ++ PTRACE_O_TRACESYSGOOD = 0x1 ++ PTRACE_O_TRACEVFORK = 0x4 ++ PTRACE_O_TRACEVFORKDONE = 0x20 ++ PTRACE_PEEKDATA = 0x2 ++ PTRACE_PEEKDATA_3264 = 0xc1 ++ PTRACE_PEEKTEXT = 0x1 ++ PTRACE_PEEKTEXT_3264 = 0xc0 ++ PTRACE_PEEKUSR = 0x3 ++ PTRACE_POKEDATA = 0x5 ++ PTRACE_POKEDATA_3264 = 0xc3 ++ PTRACE_POKETEXT = 0x4 ++ PTRACE_POKETEXT_3264 = 0xc2 ++ PTRACE_POKEUSR = 0x6 ++ PTRACE_SEIZE = 0x4206 ++ PTRACE_SEIZE_DEVEL = 0x80000000 ++ PTRACE_SETFPREGS = 0xf ++ PTRACE_SETOPTIONS = 0x4200 ++ PTRACE_SETREGS = 0xd ++ PTRACE_SETREGSET = 0x4205 ++ PTRACE_SETSIGINFO = 0x4203 ++ PTRACE_SET_THREAD_AREA = 0x1a ++ PTRACE_SET_WATCH_REGS = 0xd1 ++ PTRACE_SINGLESTEP = 0x9 ++ PTRACE_SYSCALL = 0x18 ++ PTRACE_TRACEME = 0x0 ++ RLIMIT_AS = 0x6 ++ RLIMIT_CORE = 0x4 ++ RLIMIT_CPU = 0x0 ++ RLIMIT_DATA = 0x2 ++ RLIMIT_FSIZE = 0x1 ++ RLIMIT_NOFILE = 0x5 ++ RLIMIT_STACK = 0x3 ++ RLIM_INFINITY = 0x7fffffffffffffff ++ RTAX_ADVMSS = 0x8 ++ RTAX_CWND = 0x7 ++ RTAX_FEATURES = 0xc ++ RTAX_FEATURE_ALLFRAG = 0x8 ++ RTAX_FEATURE_ECN = 0x1 ++ RTAX_FEATURE_SACK = 0x2 ++ RTAX_FEATURE_TIMESTAMP = 0x4 ++ RTAX_HOPLIMIT = 0xa ++ RTAX_INITCWND = 0xb ++ RTAX_INITRWND = 0xe ++ RTAX_LOCK = 0x1 ++ RTAX_MAX = 0xe ++ RTAX_MTU = 0x2 ++ RTAX_REORDERING = 0x9 ++ RTAX_RTO_MIN = 0xd ++ RTAX_RTT = 0x4 ++ RTAX_RTTVAR = 0x5 ++ RTAX_SSTHRESH = 0x6 ++ RTAX_UNSPEC = 0x0 ++ RTAX_WINDOW = 0x3 ++ RTA_ALIGNTO = 0x4 ++ RTA_MAX = 0x10 ++ RTCF_DIRECTSRC = 0x4000000 ++ RTCF_DOREDIRECT = 0x1000000 ++ RTCF_LOG = 0x2000000 ++ RTCF_MASQ = 0x400000 ++ RTCF_NAT = 0x800000 ++ RTCF_VALVE = 0x200000 ++ RTF_ADDRCLASSMASK = 0xf8000000 ++ RTF_ADDRCONF = 0x40000 ++ RTF_ALLONLINK = 0x20000 ++ RTF_BROADCAST = 0x10000000 ++ RTF_CACHE = 0x1000000 ++ RTF_DEFAULT = 0x10000 ++ RTF_DYNAMIC = 0x10 ++ RTF_FLOW = 0x2000000 ++ RTF_GATEWAY = 0x2 ++ RTF_HOST = 0x4 ++ RTF_INTERFACE = 0x40000000 ++ RTF_IRTT = 0x100 ++ RTF_LINKRT = 0x100000 ++ RTF_LOCAL = 0x80000000 ++ RTF_MODIFIED = 0x20 ++ RTF_MSS = 0x40 ++ RTF_MTU = 0x40 ++ RTF_MULTICAST = 0x20000000 ++ RTF_NAT = 0x8000000 ++ RTF_NOFORWARD = 0x1000 ++ RTF_NONEXTHOP = 0x200000 ++ RTF_NOPMTUDISC = 0x4000 ++ RTF_POLICY = 0x4000000 ++ RTF_REINSTATE = 0x8 ++ RTF_REJECT = 0x200 ++ RTF_STATIC = 0x400 ++ RTF_THROW = 0x2000 ++ RTF_UP = 0x1 ++ RTF_WINDOW = 0x80 ++ RTF_XRESOLVE = 0x800 ++ RTM_BASE = 0x10 ++ RTM_DELACTION = 0x31 ++ RTM_DELADDR = 0x15 ++ RTM_DELADDRLABEL = 0x49 ++ RTM_DELLINK = 0x11 ++ RTM_DELNEIGH = 0x1d ++ RTM_DELQDISC = 0x25 ++ RTM_DELROUTE = 0x19 ++ RTM_DELRULE = 0x21 ++ RTM_DELTCLASS = 0x29 ++ RTM_DELTFILTER = 0x2d ++ RTM_F_CLONED = 0x200 ++ RTM_F_EQUALIZE = 0x400 ++ RTM_F_NOTIFY = 0x100 ++ RTM_F_PREFIX = 0x800 ++ RTM_GETACTION = 0x32 ++ RTM_GETADDR = 0x16 ++ RTM_GETADDRLABEL = 0x4a ++ RTM_GETANYCAST = 0x3e ++ RTM_GETDCB = 0x4e ++ RTM_GETLINK = 0x12 ++ RTM_GETMULTICAST = 0x3a ++ RTM_GETNEIGH = 0x1e ++ RTM_GETNEIGHTBL = 0x42 ++ RTM_GETQDISC = 0x26 ++ RTM_GETROUTE = 0x1a ++ RTM_GETRULE = 0x22 ++ RTM_GETTCLASS = 0x2a ++ RTM_GETTFILTER = 0x2e ++ RTM_MAX = 0x4f ++ RTM_NEWACTION = 0x30 ++ RTM_NEWADDR = 0x14 ++ RTM_NEWADDRLABEL = 0x48 ++ RTM_NEWLINK = 0x10 ++ RTM_NEWNDUSEROPT = 0x44 ++ RTM_NEWNEIGH = 0x1c ++ RTM_NEWNEIGHTBL = 0x40 ++ RTM_NEWPREFIX = 0x34 ++ RTM_NEWQDISC = 0x24 ++ RTM_NEWROUTE = 0x18 ++ RTM_NEWRULE = 0x20 ++ RTM_NEWTCLASS = 0x28 ++ RTM_NEWTFILTER = 0x2c ++ RTM_NR_FAMILIES = 0x10 ++ RTM_NR_MSGTYPES = 0x40 ++ RTM_SETDCB = 0x4f ++ RTM_SETLINK = 0x13 ++ RTM_SETNEIGHTBL = 0x43 ++ RTNH_ALIGNTO = 0x4 ++ RTNH_F_DEAD = 0x1 ++ RTNH_F_ONLINK = 0x4 ++ RTNH_F_PERVASIVE = 0x2 ++ RTN_MAX = 0xb ++ RTPROT_BIRD = 0xc ++ RTPROT_BOOT = 0x3 ++ RTPROT_DHCP = 0x10 ++ RTPROT_DNROUTED = 0xd ++ RTPROT_GATED = 0x8 ++ RTPROT_KERNEL = 0x2 ++ RTPROT_MRT = 0xa ++ RTPROT_NTK = 0xf ++ RTPROT_RA = 0x9 ++ RTPROT_REDIRECT = 0x1 ++ RTPROT_STATIC = 0x4 ++ RTPROT_UNSPEC = 0x0 ++ RTPROT_XORP = 0xe ++ RTPROT_ZEBRA = 0xb ++ RT_CLASS_DEFAULT = 0xfd ++ RT_CLASS_LOCAL = 0xff ++ RT_CLASS_MAIN = 0xfe ++ RT_CLASS_MAX = 0xff ++ RT_CLASS_UNSPEC = 0x0 ++ RUSAGE_CHILDREN = -0x1 ++ RUSAGE_SELF = 0x0 ++ RUSAGE_THREAD = 0x1 ++ SCM_CREDENTIALS = 0x2 ++ SCM_RIGHTS = 0x1 ++ SCM_TIMESTAMP = 0x1d ++ SCM_TIMESTAMPING = 0x25 ++ SCM_TIMESTAMPNS = 0x23 ++ SHUT_RD = 0x0 ++ SHUT_RDWR = 0x2 ++ SHUT_WR = 0x1 ++ SIOCADDDLCI = 0x8980 ++ SIOCADDMULTI = 0x8931 ++ SIOCADDRT = 0x890b ++ SIOCATMARK = 0x40047307 ++ SIOCDARP = 0x8953 ++ SIOCDELDLCI = 0x8981 ++ SIOCDELMULTI = 0x8932 ++ SIOCDELRT = 0x890c ++ SIOCDEVPRIVATE = 0x89f0 ++ SIOCDIFADDR = 0x8936 ++ SIOCDRARP = 0x8960 ++ SIOCGARP = 0x8954 ++ SIOCGIFADDR = 0x8915 ++ SIOCGIFBR = 0x8940 ++ SIOCGIFBRDADDR = 0x8919 ++ SIOCGIFCONF = 0x8912 ++ SIOCGIFCOUNT = 0x8938 ++ SIOCGIFDSTADDR = 0x8917 ++ SIOCGIFENCAP = 0x8925 ++ SIOCGIFFLAGS = 0x8913 ++ SIOCGIFHWADDR = 0x8927 ++ SIOCGIFINDEX = 0x8933 ++ SIOCGIFMAP = 0x8970 ++ SIOCGIFMEM = 0x891f ++ SIOCGIFMETRIC = 0x891d ++ SIOCGIFMTU = 0x8921 ++ SIOCGIFNAME = 0x8910 ++ SIOCGIFNETMASK = 0x891b ++ SIOCGIFPFLAGS = 0x8935 ++ SIOCGIFSLAVE = 0x8929 ++ SIOCGIFTXQLEN = 0x8942 ++ SIOCGPGRP = 0x40047309 ++ SIOCGRARP = 0x8961 ++ SIOCGSTAMP = 0x8906 ++ SIOCGSTAMPNS = 0x8907 ++ SIOCPROTOPRIVATE = 0x89e0 ++ SIOCRTMSG = 0x890d ++ SIOCSARP = 0x8955 ++ SIOCSIFADDR = 0x8916 ++ SIOCSIFBR = 0x8941 ++ SIOCSIFBRDADDR = 0x891a ++ SIOCSIFDSTADDR = 0x8918 ++ SIOCSIFENCAP = 0x8926 ++ SIOCSIFFLAGS = 0x8914 ++ SIOCSIFHWADDR = 0x8924 ++ SIOCSIFHWBROADCAST = 0x8937 ++ SIOCSIFLINK = 0x8911 ++ SIOCSIFMAP = 0x8971 ++ SIOCSIFMEM = 0x8920 ++ SIOCSIFMETRIC = 0x891e ++ SIOCSIFMTU = 0x8922 ++ SIOCSIFNAME = 0x8923 ++ SIOCSIFNETMASK = 0x891c ++ SIOCSIFPFLAGS = 0x8934 ++ SIOCSIFSLAVE = 0x8930 ++ SIOCSIFTXQLEN = 0x8943 ++ SIOCSPGRP = 0x80047308 ++ SIOCSRARP = 0x8962 ++ SOCK_CLOEXEC = 0x80000 ++ SOCK_DCCP = 0x6 ++ SOCK_DGRAM = 0x1 ++ SOCK_NONBLOCK = 0x80 ++ SOCK_PACKET = 0xa ++ SOCK_RAW = 0x3 ++ SOCK_RDM = 0x4 ++ SOCK_SEQPACKET = 0x5 ++ SOCK_STREAM = 0x2 ++ SOL_AAL = 0x109 ++ SOL_ATM = 0x108 ++ SOL_CAN_BASE = 0x64 ++ SOL_DECNET = 0x105 ++ SOL_ICMPV6 = 0x3a ++ SOL_IP = 0x0 ++ SOL_IPV6 = 0x29 ++ SOL_IRDA = 0x10a ++ SOL_NETLINK = 0x10e ++ SOL_PACKET = 0x107 ++ SOL_RAW = 0xff ++ SOL_SOCKET = 0xffff ++ SOL_TCP = 0x6 ++ SOL_X25 = 0x106 ++ SOMAXCONN = 0x80 ++ SO_ACCEPTCONN = 0x1009 ++ SO_ATTACH_FILTER = 0x1a ++ SO_BINDTODEVICE = 0x19 ++ SO_BROADCAST = 0x20 ++ SO_BSDCOMPAT = 0xe ++ SO_DEBUG = 0x1 ++ SO_DETACH_FILTER = 0x1b ++ SO_DOMAIN = 0x1029 ++ SO_DONTROUTE = 0x10 ++ SO_ERROR = 0x1007 ++ SO_KEEPALIVE = 0x8 ++ SO_LINGER = 0x80 ++ SO_MARK = 0x24 ++ SO_NO_CHECK = 0xb ++ SO_OOBINLINE = 0x100 ++ SO_PASSCRED = 0x11 ++ SO_PASSSEC = 0x22 ++ SO_PEERCRED = 0x12 ++ SO_PEERNAME = 0x1c ++ SO_PEERSEC = 0x1e ++ SO_PRIORITY = 0xc ++ SO_PROTOCOL = 0x1028 ++ SO_RCVBUF = 0x1002 ++ SO_RCVBUFFORCE = 0x21 ++ SO_RCVLOWAT = 0x1004 ++ SO_RCVTIMEO = 0x1006 ++ SO_REUSEADDR = 0x4 ++ SO_RXQ_OVFL = 0x28 ++ SO_SECURITY_AUTHENTICATION = 0x16 ++ SO_SECURITY_ENCRYPTION_NETWORK = 0x18 ++ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 ++ SO_SNDBUF = 0x1001 ++ SO_SNDBUFFORCE = 0x1f ++ SO_SNDLOWAT = 0x1003 ++ SO_SNDTIMEO = 0x1005 ++ SO_STYLE = 0x1008 ++ SO_TIMESTAMP = 0x1d ++ SO_TIMESTAMPING = 0x25 ++ SO_TIMESTAMPNS = 0x23 ++ SO_TYPE = 0x1008 ++ SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 ++ SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 ++ SO_VM_SOCKETS_BUFFER_SIZE = 0x0 ++ SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 ++ SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 ++ SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 ++ SO_VM_SOCKETS_TRUSTED = 0x5 ++ SPLICE_F_GIFT = 0x8 ++ SPLICE_F_MORE = 0x4 ++ SPLICE_F_MOVE = 0x1 ++ SPLICE_F_NONBLOCK = 0x2 ++ S_BLKSIZE = 0x200 ++ S_IEXEC = 0x40 ++ S_IFBLK = 0x6000 ++ S_IFCHR = 0x2000 ++ S_IFDIR = 0x4000 ++ S_IFIFO = 0x1000 ++ S_IFLNK = 0xa000 ++ S_IFMT = 0xf000 ++ S_IFREG = 0x8000 ++ S_IFSOCK = 0xc000 ++ S_IREAD = 0x100 ++ S_IRGRP = 0x20 ++ S_IROTH = 0x4 ++ S_IRUSR = 0x100 ++ S_IRWXG = 0x38 ++ S_IRWXO = 0x7 ++ S_IRWXU = 0x1c0 ++ S_ISGID = 0x400 ++ S_ISUID = 0x800 ++ S_ISVTX = 0x200 ++ S_IWGRP = 0x10 ++ S_IWOTH = 0x2 ++ S_IWRITE = 0x80 ++ S_IWUSR = 0x80 ++ S_IXGRP = 0x8 ++ S_IXOTH = 0x1 ++ S_IXUSR = 0x40 ++ TAB0 = 0x0 ++ TAB1 = 0x800 ++ TAB2 = 0x1000 ++ TAB3 = 0x1800 ++ TABDLY = 0x1800 ++ TCFLSH = 0x5407 ++ TCGETA = 0x5401 ++ TCGETS = 0x540d ++ TCGETS2 = 0x4030542a ++ TCIFLUSH = 0x0 ++ TCIOFF = 0x2 ++ TCIOFLUSH = 0x2 ++ TCION = 0x3 ++ TCOFLUSH = 0x1 ++ TCOOFF = 0x0 ++ TCOON = 0x1 ++ TCP_CONGESTION = 0xd ++ TCP_CORK = 0x3 ++ TCP_DEFER_ACCEPT = 0x9 ++ TCP_INFO = 0xb ++ TCP_KEEPCNT = 0x6 ++ TCP_KEEPIDLE = 0x4 ++ TCP_KEEPINTVL = 0x5 ++ TCP_LINGER2 = 0x8 ++ TCP_MAXSEG = 0x2 ++ TCP_MAXWIN = 0xffff ++ TCP_MAX_WINSHIFT = 0xe ++ TCP_MD5SIG = 0xe ++ TCP_MD5SIG_MAXKEYLEN = 0x50 ++ TCP_MSS = 0x200 ++ TCP_NODELAY = 0x1 ++ TCP_QUICKACK = 0xc ++ TCP_SYNCNT = 0x7 ++ TCP_WINDOW_CLAMP = 0xa ++ TCSAFLUSH = 0x5410 ++ TCSBRK = 0x5405 ++ TCSBRKP = 0x5486 ++ TCSETA = 0x5402 ++ TCSETAF = 0x5404 ++ TCSETAW = 0x5403 ++ TCSETS = 0x540e ++ TCSETS2 = 0x8030542b ++ TCSETSF = 0x5410 ++ TCSETSF2 = 0x8030542d ++ TCSETSW = 0x540f ++ TCSETSW2 = 0x8030542c ++ TCXONC = 0x5406 ++ TIOCCBRK = 0x5428 ++ TIOCCONS = 0x80047478 ++ TIOCEXCL = 0x740d ++ TIOCGDEV = 0x40045432 ++ TIOCGETD = 0x7400 ++ TIOCGETP = 0x7408 ++ TIOCGICOUNT = 0x5492 ++ TIOCGLCKTRMIOS = 0x548b ++ TIOCGLTC = 0x7474 ++ TIOCGPGRP = 0x40047477 ++ TIOCGPTN = 0x40045430 ++ TIOCGSERIAL = 0x5484 ++ TIOCGSID = 0x7416 ++ TIOCGSOFTCAR = 0x5481 ++ TIOCGWINSZ = 0x40087468 ++ TIOCINQ = 0x467f ++ TIOCLINUX = 0x5483 ++ TIOCMBIC = 0x741c ++ TIOCMBIS = 0x741b ++ TIOCMGET = 0x741d ++ TIOCMIWAIT = 0x5491 ++ TIOCMSET = 0x741a ++ TIOCM_CAR = 0x100 ++ TIOCM_CD = 0x100 ++ TIOCM_CTS = 0x40 ++ TIOCM_DSR = 0x400 ++ TIOCM_DTR = 0x2 ++ TIOCM_LE = 0x1 ++ TIOCM_RI = 0x200 ++ TIOCM_RNG = 0x200 ++ TIOCM_RTS = 0x4 ++ TIOCM_SR = 0x20 ++ TIOCM_ST = 0x10 ++ TIOCNOTTY = 0x5471 ++ TIOCNXCL = 0x740e ++ TIOCOUTQ = 0x7472 ++ TIOCPKT = 0x5470 ++ TIOCPKT_DATA = 0x0 ++ TIOCPKT_DOSTOP = 0x20 ++ TIOCPKT_FLUSHREAD = 0x1 ++ TIOCPKT_FLUSHWRITE = 0x2 ++ TIOCPKT_IOCTL = 0x40 ++ TIOCPKT_NOSTOP = 0x10 ++ TIOCPKT_START = 0x8 ++ TIOCPKT_STOP = 0x4 ++ TIOCSBRK = 0x5427 ++ TIOCSCTTY = 0x5480 ++ TIOCSERCONFIG = 0x5488 ++ TIOCSERGETLSR = 0x548e ++ TIOCSERGETMULTI = 0x548f ++ TIOCSERGSTRUCT = 0x548d ++ TIOCSERGWILD = 0x5489 ++ TIOCSERSETMULTI = 0x5490 ++ TIOCSERSWILD = 0x548a ++ TIOCSER_TEMT = 0x1 ++ TIOCSETD = 0x7401 ++ TIOCSETN = 0x740a ++ TIOCSETP = 0x7409 ++ TIOCSIG = 0x80045436 ++ TIOCSLCKTRMIOS = 0x548c ++ TIOCSLTC = 0x7475 ++ TIOCSPGRP = 0x80047476 ++ TIOCSPTLCK = 0x80045431 ++ TIOCSSERIAL = 0x5485 ++ TIOCSSOFTCAR = 0x5482 ++ TIOCSTI = 0x5472 ++ TIOCSWINSZ = 0x80087467 ++ TIOCVHANGUP = 0x5437 ++ TOSTOP = 0x8000 ++ TUNATTACHFILTER = 0x800854d5 ++ TUNDETACHFILTER = 0x800854d6 ++ TUNGETFEATURES = 0x400454cf ++ TUNGETIFF = 0x400454d2 ++ TUNGETSNDBUF = 0x400454d3 ++ TUNGETVNETHDRSZ = 0x400454d7 ++ TUNSETDEBUG = 0x800454c9 ++ TUNSETGROUP = 0x800454ce ++ TUNSETIFF = 0x800454ca ++ TUNSETLINK = 0x800454cd ++ TUNSETNOCSUM = 0x800454c8 ++ TUNSETOFFLOAD = 0x800454d0 ++ TUNSETOWNER = 0x800454cc ++ TUNSETPERSIST = 0x800454cb ++ TUNSETSNDBUF = 0x800454d4 ++ TUNSETTXFILTER = 0x800454d1 ++ TUNSETVNETHDRSZ = 0x800454d8 ++ VDISCARD = 0xd ++ VEOF = 0x10 ++ VEOL = 0x11 ++ VEOL2 = 0x6 ++ VERASE = 0x2 ++ VINTR = 0x0 ++ VKILL = 0x3 ++ VLNEXT = 0xf ++ VMADDR_CID_ANY = 0xffffffff ++ VMADDR_CID_HOST = 0x2 ++ VMADDR_CID_HYPERVISOR = 0x0 ++ VMADDR_CID_RESERVED = 0x1 ++ VMADDR_PORT_ANY = 0xffffffff ++ VMIN = 0x4 ++ VQUIT = 0x1 ++ VREPRINT = 0xc ++ VSTART = 0x8 ++ VSTOP = 0x9 ++ VSUSP = 0xa ++ VSWTC = 0x7 ++ VSWTCH = 0x7 ++ VT0 = 0x0 ++ VT1 = 0x4000 ++ VTDLY = 0x4000 ++ VTIME = 0x5 ++ VWERASE = 0xe ++ WALL = 0x40000000 ++ WCLONE = 0x80000000 ++ WCONTINUED = 0x8 ++ WEXITED = 0x4 ++ WNOHANG = 0x1 ++ WNOTHREAD = 0x20000000 ++ WNOWAIT = 0x1000000 ++ WORDSIZE = 0x20 ++ WSTOPPED = 0x2 ++ WUNTRACED = 0x2 ++ XCASE = 0x4 ++ XTABS = 0x1800 ++) ++ ++// Errors ++const ( ++ E2BIG = syscall.Errno(0x7) ++ EACCES = syscall.Errno(0xd) ++ EADDRINUSE = syscall.Errno(0x7d) ++ EADDRNOTAVAIL = syscall.Errno(0x7e) ++ EADV = syscall.Errno(0x44) ++ EAFNOSUPPORT = syscall.Errno(0x7c) ++ EAGAIN = syscall.Errno(0xb) ++ EALREADY = syscall.Errno(0x95) ++ EBADE = syscall.Errno(0x32) ++ EBADF = syscall.Errno(0x9) ++ EBADFD = syscall.Errno(0x51) ++ EBADMSG = syscall.Errno(0x4d) ++ EBADR = syscall.Errno(0x33) ++ EBADRQC = syscall.Errno(0x36) ++ EBADSLT = syscall.Errno(0x37) ++ EBFONT = syscall.Errno(0x3b) ++ EBUSY = syscall.Errno(0x10) ++ ECANCELED = syscall.Errno(0x9e) ++ ECHILD = syscall.Errno(0xa) ++ ECHRNG = syscall.Errno(0x25) ++ ECOMM = syscall.Errno(0x46) ++ ECONNABORTED = syscall.Errno(0x82) ++ ECONNREFUSED = syscall.Errno(0x92) ++ ECONNRESET = syscall.Errno(0x83) ++ EDEADLK = syscall.Errno(0x2d) ++ EDEADLOCK = syscall.Errno(0x38) ++ EDESTADDRREQ = syscall.Errno(0x60) ++ EDOM = syscall.Errno(0x21) ++ EDOTDOT = syscall.Errno(0x49) ++ EDQUOT = syscall.Errno(0x46d) ++ EEXIST = syscall.Errno(0x11) ++ EFAULT = syscall.Errno(0xe) ++ EFBIG = syscall.Errno(0x1b) ++ EHOSTDOWN = syscall.Errno(0x93) ++ EHOSTUNREACH = syscall.Errno(0x94) ++ EHWPOISON = syscall.Errno(0xa8) ++ EIDRM = syscall.Errno(0x24) ++ EILSEQ = syscall.Errno(0x58) ++ EINIT = syscall.Errno(0x8d) ++ EINPROGRESS = syscall.Errno(0x96) ++ EINTR = syscall.Errno(0x4) ++ EINVAL = syscall.Errno(0x16) ++ EIO = syscall.Errno(0x5) ++ EISCONN = syscall.Errno(0x85) ++ EISDIR = syscall.Errno(0x15) ++ EISNAM = syscall.Errno(0x8b) ++ EKEYEXPIRED = syscall.Errno(0xa2) ++ EKEYREJECTED = syscall.Errno(0xa4) ++ EKEYREVOKED = syscall.Errno(0xa3) ++ EL2HLT = syscall.Errno(0x2c) ++ EL2NSYNC = syscall.Errno(0x26) ++ EL3HLT = syscall.Errno(0x27) ++ EL3RST = syscall.Errno(0x28) ++ ELIBACC = syscall.Errno(0x53) ++ ELIBBAD = syscall.Errno(0x54) ++ ELIBEXEC = syscall.Errno(0x57) ++ ELIBMAX = syscall.Errno(0x56) ++ ELIBSCN = syscall.Errno(0x55) ++ ELNRNG = syscall.Errno(0x29) ++ ELOOP = syscall.Errno(0x5a) ++ EMEDIUMTYPE = syscall.Errno(0xa0) ++ EMFILE = syscall.Errno(0x18) ++ EMLINK = syscall.Errno(0x1f) ++ EMSGSIZE = syscall.Errno(0x61) ++ EMULTIHOP = syscall.Errno(0x4a) ++ ENAMETOOLONG = syscall.Errno(0x4e) ++ ENAVAIL = syscall.Errno(0x8a) ++ ENETDOWN = syscall.Errno(0x7f) ++ ENETRESET = syscall.Errno(0x81) ++ ENETUNREACH = syscall.Errno(0x80) ++ ENFILE = syscall.Errno(0x17) ++ ENOANO = syscall.Errno(0x35) ++ ENOBUFS = syscall.Errno(0x84) ++ ENOCSI = syscall.Errno(0x2b) ++ ENODATA = syscall.Errno(0x3d) ++ ENODEV = syscall.Errno(0x13) ++ ENOENT = syscall.Errno(0x2) ++ ENOEXEC = syscall.Errno(0x8) ++ ENOKEY = syscall.Errno(0xa1) ++ ENOLCK = syscall.Errno(0x2e) ++ ENOLINK = syscall.Errno(0x43) ++ ENOMEDIUM = syscall.Errno(0x9f) ++ ENOMEM = syscall.Errno(0xc) ++ ENOMSG = syscall.Errno(0x23) ++ ENONET = syscall.Errno(0x40) ++ ENOPKG = syscall.Errno(0x41) ++ ENOPROTOOPT = syscall.Errno(0x63) ++ ENOSPC = syscall.Errno(0x1c) ++ ENOSR = syscall.Errno(0x3f) ++ ENOSTR = syscall.Errno(0x3c) ++ ENOSYS = syscall.Errno(0x59) ++ ENOTBLK = syscall.Errno(0xf) ++ ENOTCONN = syscall.Errno(0x86) ++ ENOTDIR = syscall.Errno(0x14) ++ ENOTEMPTY = syscall.Errno(0x5d) ++ ENOTNAM = syscall.Errno(0x89) ++ ENOTRECOVERABLE = syscall.Errno(0xa6) ++ ENOTSOCK = syscall.Errno(0x5f) ++ ENOTSUP = syscall.Errno(0x7a) ++ ENOTTY = syscall.Errno(0x19) ++ ENOTUNIQ = syscall.Errno(0x50) ++ ENXIO = syscall.Errno(0x6) ++ EOPNOTSUPP = syscall.Errno(0x7a) ++ EOVERFLOW = syscall.Errno(0x4f) ++ EOWNERDEAD = syscall.Errno(0xa5) ++ EPERM = syscall.Errno(0x1) ++ EPFNOSUPPORT = syscall.Errno(0x7b) ++ EPIPE = syscall.Errno(0x20) ++ EPROTO = syscall.Errno(0x47) ++ EPROTONOSUPPORT = syscall.Errno(0x78) ++ EPROTOTYPE = syscall.Errno(0x62) ++ ERANGE = syscall.Errno(0x22) ++ EREMCHG = syscall.Errno(0x52) ++ EREMDEV = syscall.Errno(0x8e) ++ EREMOTE = syscall.Errno(0x42) ++ EREMOTEIO = syscall.Errno(0x8c) ++ ERESTART = syscall.Errno(0x5b) ++ ERFKILL = syscall.Errno(0xa7) ++ EROFS = syscall.Errno(0x1e) ++ ESHUTDOWN = syscall.Errno(0x8f) ++ ESOCKTNOSUPPORT = syscall.Errno(0x79) ++ ESPIPE = syscall.Errno(0x1d) ++ ESRCH = syscall.Errno(0x3) ++ ESRMNT = syscall.Errno(0x45) ++ ESTALE = syscall.Errno(0x97) ++ ESTRPIPE = syscall.Errno(0x5c) ++ ETIME = syscall.Errno(0x3e) ++ ETIMEDOUT = syscall.Errno(0x91) ++ ETOOMANYREFS = syscall.Errno(0x90) ++ ETXTBSY = syscall.Errno(0x1a) ++ EUCLEAN = syscall.Errno(0x87) ++ EUNATCH = syscall.Errno(0x2a) ++ EUSERS = syscall.Errno(0x5e) ++ EWOULDBLOCK = syscall.Errno(0xb) ++ EXDEV = syscall.Errno(0x12) ++ EXFULL = syscall.Errno(0x34) ++) ++ ++// Signals ++const ( ++ SIGABRT = syscall.Signal(0x6) ++ SIGALRM = syscall.Signal(0xe) ++ SIGBUS = syscall.Signal(0xa) ++ SIGCHLD = syscall.Signal(0x12) ++ SIGCLD = syscall.Signal(0x12) ++ SIGCONT = syscall.Signal(0x19) ++ SIGEMT = syscall.Signal(0x7) ++ SIGFPE = syscall.Signal(0x8) ++ SIGHUP = syscall.Signal(0x1) ++ SIGILL = syscall.Signal(0x4) ++ SIGINT = syscall.Signal(0x2) ++ SIGIO = syscall.Signal(0x16) ++ SIGIOT = syscall.Signal(0x6) ++ SIGKILL = syscall.Signal(0x9) ++ SIGPIPE = syscall.Signal(0xd) ++ SIGPOLL = syscall.Signal(0x16) ++ SIGPROF = syscall.Signal(0x1d) ++ SIGPWR = syscall.Signal(0x13) ++ SIGQUIT = syscall.Signal(0x3) ++ SIGSEGV = syscall.Signal(0xb) ++ SIGSTOP = syscall.Signal(0x17) ++ SIGSYS = syscall.Signal(0xc) ++ SIGTERM = syscall.Signal(0xf) ++ SIGTRAP = syscall.Signal(0x5) ++ SIGTSTP = syscall.Signal(0x18) ++ SIGTTIN = syscall.Signal(0x1a) ++ SIGTTOU = syscall.Signal(0x1b) ++ SIGURG = syscall.Signal(0x15) ++ SIGUSR1 = syscall.Signal(0x10) ++ SIGUSR2 = syscall.Signal(0x11) ++ SIGVTALRM = syscall.Signal(0x1c) ++ SIGWINCH = syscall.Signal(0x14) ++ SIGXCPU = syscall.Signal(0x1e) ++ SIGXFSZ = syscall.Signal(0x1f) ++) ++ ++// Error table ++var errors = [...]string{ ++ 1: "operation not permitted", ++ 2: "no such file or directory", ++ 3: "no such process", ++ 4: "interrupted system call", ++ 5: "input/output error", ++ 6: "no such device or address", ++ 7: "argument list too long", ++ 8: "exec format error", ++ 9: "bad file descriptor", ++ 10: "no child processes", ++ 11: "resource temporarily unavailable", ++ 12: "cannot allocate memory", ++ 13: "permission denied", ++ 14: "bad address", ++ 15: "block device required", ++ 16: "device or resource busy", ++ 17: "file exists", ++ 18: "invalid cross-device link", ++ 19: "no such device", ++ 20: "not a directory", ++ 21: "is a directory", ++ 22: "invalid argument", ++ 23: "too many open files in system", ++ 24: "too many open files", ++ 25: "inappropriate ioctl for device", ++ 26: "text file busy", ++ 27: "file too large", ++ 28: "no space left on device", ++ 29: "illegal seek", ++ 30: "read-only file system", ++ 31: "too many links", ++ 32: "broken pipe", ++ 33: "numerical argument out of domain", ++ 34: "numerical result out of range", ++ 35: "no message of desired type", ++ 36: "identifier removed", ++ 37: "channel number out of range", ++ 38: "level 2 not synchronized", ++ 39: "level 3 halted", ++ 40: "level 3 reset", ++ 41: "link number out of range", ++ 42: "protocol driver not attached", ++ 43: "no CSI structure available", ++ 44: "level 2 halted", ++ 45: "resource deadlock avoided", ++ 46: "no locks available", ++ 50: "invalid exchange", ++ 51: "invalid request descriptor", ++ 52: "exchange full", ++ 53: "no anode", ++ 54: "invalid request code", ++ 55: "invalid slot", ++ 56: "file locking deadlock error", ++ 59: "bad font file format", ++ 60: "device not a stream", ++ 61: "no data available", ++ 62: "timer expired", ++ 63: "out of streams resources", ++ 64: "machine is not on the network", ++ 65: "package not installed", ++ 66: "object is remote", ++ 67: "link has been severed", ++ 68: "advertise error", ++ 69: "srmount error", ++ 70: "communication error on send", ++ 71: "protocol error", ++ 73: "RFS specific error", ++ 74: "multihop attempted", ++ 77: "bad message", ++ 78: "file name too long", ++ 79: "value too large for defined data type", ++ 80: "name not unique on network", ++ 81: "file descriptor in bad state", ++ 82: "remote address changed", ++ 83: "can not access a needed shared library", ++ 84: "accessing a corrupted shared library", ++ 85: ".lib section in a.out corrupted", ++ 86: "attempting to link in too many shared libraries", ++ 87: "cannot exec a shared library directly", ++ 88: "invalid or incomplete multibyte or wide character", ++ 89: "function not implemented", ++ 90: "too many levels of symbolic links", ++ 91: "interrupted system call should be restarted", ++ 92: "streams pipe error", ++ 93: "directory not empty", ++ 94: "too many users", ++ 95: "socket operation on non-socket", ++ 96: "destination address required", ++ 97: "message too long", ++ 98: "protocol wrong type for socket", ++ 99: "protocol not available", ++ 120: "protocol not supported", ++ 121: "socket type not supported", ++ 122: "operation not supported", ++ 123: "protocol family not supported", ++ 124: "address family not supported by protocol", ++ 125: "address already in use", ++ 126: "cannot assign requested address", ++ 127: "network is down", ++ 128: "network is unreachable", ++ 129: "network dropped connection on reset", ++ 130: "software caused connection abort", ++ 131: "connection reset by peer", ++ 132: "no buffer space available", ++ 133: "transport endpoint is already connected", ++ 134: "transport endpoint is not connected", ++ 135: "structure needs cleaning", ++ 137: "not a XENIX named type file", ++ 138: "no XENIX semaphores available", ++ 139: "is a named type file", ++ 140: "remote I/O error", ++ 141: "unknown error 141", ++ 142: "unknown error 142", ++ 143: "cannot send after transport endpoint shutdown", ++ 144: "too many references: cannot splice", ++ 145: "connection timed out", ++ 146: "connection refused", ++ 147: "host is down", ++ 148: "no route to host", ++ 149: "operation already in progress", ++ 150: "operation now in progress", ++ 151: "stale NFS file handle", ++ 158: "operation canceled", ++ 159: "no medium found", ++ 160: "wrong medium type", ++ 161: "required key not available", ++ 162: "key has expired", ++ 163: "key has been revoked", ++ 164: "key was rejected by service", ++ 165: "owner died", ++ 166: "state not recoverable", ++ 167: "operation not possible due to RF-kill", ++ 168: "unknown error 168", ++ 1133: "disk quota exceeded", ++} ++ ++// Signal table ++var signals = [...]string{ ++ 1: "hangup", ++ 2: "interrupt", ++ 3: "quit", ++ 4: "illegal instruction", ++ 5: "trace/breakpoint trap", ++ 6: "aborted", ++ 7: "EMT trap", ++ 8: "floating point exception", ++ 9: "killed", ++ 10: "bus error", ++ 11: "segmentation fault", ++ 12: "bad system call", ++ 13: "broken pipe", ++ 14: "alarm clock", ++ 15: "terminated", ++ 16: "user defined signal 1", ++ 17: "user defined signal 2", ++ 18: "child exited", ++ 19: "power failure", ++ 20: "window changed", ++ 21: "urgent I/O condition", ++ 22: "I/O possible", ++ 23: "stopped (signal)", ++ 24: "stopped", ++ 25: "continued", ++ 26: "stopped (tty input)", ++ 27: "stopped (tty output)", ++ 28: "virtual timer expired", ++ 29: "profiling timer expired", ++ 30: "CPU time limit exceeded", ++ 31: "file size limit exceeded", ++} +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +new file mode 100644 +index 0000000..9c91dbf +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +@@ -0,0 +1,1965 @@ ++// mkerrors.sh ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build mips64,linux ++ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- _const.go ++ ++package unix ++ ++import "syscall" ++ ++const ( ++ AF_ALG = 0x26 ++ AF_APPLETALK = 0x5 ++ AF_ASH = 0x12 ++ AF_ATMPVC = 0x8 ++ AF_ATMSVC = 0x14 ++ AF_AX25 = 0x3 ++ AF_BLUETOOTH = 0x1f ++ AF_BRIDGE = 0x7 ++ AF_CAIF = 0x25 ++ AF_CAN = 0x1d ++ AF_DECnet = 0xc ++ AF_ECONET = 0x13 ++ AF_FILE = 0x1 ++ AF_IB = 0x1b ++ AF_IEEE802154 = 0x24 ++ AF_INET = 0x2 ++ AF_INET6 = 0xa ++ AF_IPX = 0x4 ++ AF_IRDA = 0x17 ++ AF_ISDN = 0x22 ++ AF_IUCV = 0x20 ++ AF_KEY = 0xf ++ AF_LLC = 0x1a ++ AF_LOCAL = 0x1 ++ AF_MAX = 0x29 ++ AF_MPLS = 0x1c ++ AF_NETBEUI = 0xd ++ AF_NETLINK = 0x10 ++ AF_NETROM = 0x6 ++ AF_NFC = 0x27 ++ AF_PACKET = 0x11 ++ AF_PHONET = 0x23 ++ AF_PPPOX = 0x18 ++ AF_RDS = 0x15 ++ AF_ROSE = 0xb ++ AF_ROUTE = 0x10 ++ AF_RXRPC = 0x21 ++ AF_SECURITY = 0xe ++ AF_SNA = 0x16 ++ AF_TIPC = 0x1e ++ AF_UNIX = 0x1 ++ AF_UNSPEC = 0x0 ++ AF_VSOCK = 0x28 ++ AF_WANPIPE = 0x19 ++ AF_X25 = 0x9 ++ ALG_OP_DECRYPT = 0x0 ++ ALG_OP_ENCRYPT = 0x1 ++ ALG_SET_AEAD_ASSOCLEN = 0x4 ++ ALG_SET_AEAD_AUTHSIZE = 0x5 ++ ALG_SET_IV = 0x2 ++ ALG_SET_KEY = 0x1 ++ ALG_SET_OP = 0x3 ++ ARPHRD_6LOWPAN = 0x339 ++ ARPHRD_ADAPT = 0x108 ++ ARPHRD_APPLETLK = 0x8 ++ ARPHRD_ARCNET = 0x7 ++ ARPHRD_ASH = 0x30d ++ ARPHRD_ATM = 0x13 ++ ARPHRD_AX25 = 0x3 ++ ARPHRD_BIF = 0x307 ++ ARPHRD_CAIF = 0x336 ++ ARPHRD_CAN = 0x118 ++ ARPHRD_CHAOS = 0x5 ++ ARPHRD_CISCO = 0x201 ++ ARPHRD_CSLIP = 0x101 ++ ARPHRD_CSLIP6 = 0x103 ++ ARPHRD_DDCMP = 0x205 ++ ARPHRD_DLCI = 0xf ++ ARPHRD_ECONET = 0x30e ++ ARPHRD_EETHER = 0x2 ++ ARPHRD_ETHER = 0x1 ++ ARPHRD_EUI64 = 0x1b ++ ARPHRD_FCAL = 0x311 ++ ARPHRD_FCFABRIC = 0x313 ++ ARPHRD_FCPL = 0x312 ++ ARPHRD_FCPP = 0x310 ++ ARPHRD_FDDI = 0x306 ++ ARPHRD_FRAD = 0x302 ++ ARPHRD_HDLC = 0x201 ++ ARPHRD_HIPPI = 0x30c ++ ARPHRD_HWX25 = 0x110 ++ ARPHRD_IEEE1394 = 0x18 ++ ARPHRD_IEEE802 = 0x6 ++ ARPHRD_IEEE80211 = 0x321 ++ ARPHRD_IEEE80211_PRISM = 0x322 ++ ARPHRD_IEEE80211_RADIOTAP = 0x323 ++ ARPHRD_IEEE802154 = 0x324 ++ ARPHRD_IEEE802154_MONITOR = 0x325 ++ ARPHRD_IEEE802_TR = 0x320 ++ ARPHRD_INFINIBAND = 0x20 ++ ARPHRD_IP6GRE = 0x337 ++ ARPHRD_IPDDP = 0x309 ++ ARPHRD_IPGRE = 0x30a ++ ARPHRD_IRDA = 0x30f ++ ARPHRD_LAPB = 0x204 ++ ARPHRD_LOCALTLK = 0x305 ++ ARPHRD_LOOPBACK = 0x304 ++ ARPHRD_METRICOM = 0x17 ++ ARPHRD_NETLINK = 0x338 ++ ARPHRD_NETROM = 0x0 ++ ARPHRD_NONE = 0xfffe ++ ARPHRD_PHONET = 0x334 ++ ARPHRD_PHONET_PIPE = 0x335 ++ ARPHRD_PIMREG = 0x30b ++ ARPHRD_PPP = 0x200 ++ ARPHRD_PRONET = 0x4 ++ ARPHRD_RAWHDLC = 0x206 ++ ARPHRD_ROSE = 0x10e ++ ARPHRD_RSRVD = 0x104 ++ ARPHRD_SIT = 0x308 ++ ARPHRD_SKIP = 0x303 ++ ARPHRD_SLIP = 0x100 ++ ARPHRD_SLIP6 = 0x102 ++ ARPHRD_TUNNEL = 0x300 ++ ARPHRD_TUNNEL6 = 0x301 ++ ARPHRD_VOID = 0xffff ++ ARPHRD_X25 = 0x10f ++ B0 = 0x0 ++ B1000000 = 0x1008 ++ B110 = 0x3 ++ B115200 = 0x1002 ++ B1152000 = 0x1009 ++ B1200 = 0x9 ++ B134 = 0x4 ++ B150 = 0x5 ++ B1500000 = 0x100a ++ B1800 = 0xa ++ B19200 = 0xe ++ B200 = 0x6 ++ B2000000 = 0x100b ++ B230400 = 0x1003 ++ B2400 = 0xb ++ B2500000 = 0x100c ++ B300 = 0x7 ++ B3000000 = 0x100d ++ B3500000 = 0x100e ++ B38400 = 0xf ++ B4000000 = 0x100f ++ B460800 = 0x1004 ++ B4800 = 0xc ++ B50 = 0x1 ++ B500000 = 0x1005 ++ B57600 = 0x1001 ++ B576000 = 0x1006 ++ B600 = 0x8 ++ B75 = 0x2 ++ B921600 = 0x1007 ++ B9600 = 0xd ++ BLKBSZGET = 0x80081270 ++ BLKBSZSET = 0x40081271 ++ BLKFLSBUF = 0x1261 ++ BLKFRAGET = 0x1265 ++ BLKFRASET = 0x1264 ++ BLKGETSIZE = 0x1260 ++ BLKGETSIZE64 = 0x80081272 ++ BLKRAGET = 0x1263 ++ BLKRASET = 0x1262 ++ BLKROGET = 0x125e ++ BLKROSET = 0x125d ++ BLKRRPART = 0x125f ++ BLKSECTGET = 0x1267 ++ BLKSECTSET = 0x1266 ++ BLKSSZGET = 0x1268 ++ BPF_A = 0x10 ++ BPF_ABS = 0x20 ++ BPF_ADD = 0x0 ++ BPF_ALU = 0x4 ++ BPF_AND = 0x50 ++ BPF_B = 0x10 ++ BPF_DIV = 0x30 ++ BPF_H = 0x8 ++ BPF_IMM = 0x0 ++ BPF_IND = 0x40 ++ BPF_JA = 0x0 ++ BPF_JEQ = 0x10 ++ BPF_JGE = 0x30 ++ BPF_JGT = 0x20 ++ BPF_JMP = 0x5 ++ BPF_JSET = 0x40 ++ BPF_K = 0x0 ++ BPF_LD = 0x0 ++ BPF_LDX = 0x1 ++ BPF_LEN = 0x80 ++ BPF_LL_OFF = -0x200000 ++ BPF_LSH = 0x60 ++ BPF_MAJOR_VERSION = 0x1 ++ BPF_MAXINSNS = 0x1000 ++ BPF_MEM = 0x60 ++ BPF_MEMWORDS = 0x10 ++ BPF_MINOR_VERSION = 0x1 ++ BPF_MISC = 0x7 ++ BPF_MOD = 0x90 ++ BPF_MSH = 0xa0 ++ BPF_MUL = 0x20 ++ BPF_NEG = 0x80 ++ BPF_NET_OFF = -0x100000 ++ BPF_OR = 0x40 ++ BPF_RET = 0x6 ++ BPF_RSH = 0x70 ++ BPF_ST = 0x2 ++ BPF_STX = 0x3 ++ BPF_SUB = 0x10 ++ BPF_TAX = 0x0 ++ BPF_TXA = 0x80 ++ BPF_W = 0x0 ++ BPF_X = 0x8 ++ BPF_XOR = 0xa0 ++ BRKINT = 0x2 ++ CFLUSH = 0xf ++ CLOCAL = 0x800 ++ CLOCK_BOOTTIME = 0x7 ++ CLOCK_BOOTTIME_ALARM = 0x9 ++ CLOCK_DEFAULT = 0x0 ++ CLOCK_EXT = 0x1 ++ CLOCK_INT = 0x2 ++ CLOCK_MONOTONIC = 0x1 ++ CLOCK_MONOTONIC_COARSE = 0x6 ++ CLOCK_MONOTONIC_RAW = 0x4 ++ CLOCK_PROCESS_CPUTIME_ID = 0x2 ++ CLOCK_REALTIME = 0x0 ++ CLOCK_REALTIME_ALARM = 0x8 ++ CLOCK_REALTIME_COARSE = 0x5 ++ CLOCK_TAI = 0xb ++ CLOCK_THREAD_CPUTIME_ID = 0x3 ++ CLOCK_TXFROMRX = 0x4 ++ CLOCK_TXINT = 0x3 ++ CLONE_CHILD_CLEARTID = 0x200000 ++ CLONE_CHILD_SETTID = 0x1000000 ++ CLONE_DETACHED = 0x400000 ++ CLONE_FILES = 0x400 ++ CLONE_FS = 0x200 ++ CLONE_IO = 0x80000000 ++ CLONE_NEWCGROUP = 0x2000000 ++ CLONE_NEWIPC = 0x8000000 ++ CLONE_NEWNET = 0x40000000 ++ CLONE_NEWNS = 0x20000 ++ CLONE_NEWPID = 0x20000000 ++ CLONE_NEWUSER = 0x10000000 ++ CLONE_NEWUTS = 0x4000000 ++ CLONE_PARENT = 0x8000 ++ CLONE_PARENT_SETTID = 0x100000 ++ CLONE_PTRACE = 0x2000 ++ CLONE_SETTLS = 0x80000 ++ CLONE_SIGHAND = 0x800 ++ CLONE_SYSVSEM = 0x40000 ++ CLONE_THREAD = 0x10000 ++ CLONE_UNTRACED = 0x800000 ++ CLONE_VFORK = 0x4000 ++ CLONE_VM = 0x100 ++ CREAD = 0x80 ++ CS5 = 0x0 ++ CS6 = 0x10 ++ CS7 = 0x20 ++ CS8 = 0x30 ++ CSIGNAL = 0xff ++ CSIZE = 0x30 ++ CSTART = 0x11 ++ CSTATUS = 0x0 ++ CSTOP = 0x13 ++ CSTOPB = 0x40 ++ CSUSP = 0x1a ++ DT_BLK = 0x6 ++ DT_CHR = 0x2 ++ DT_DIR = 0x4 ++ DT_FIFO = 0x1 ++ DT_LNK = 0xa ++ DT_REG = 0x8 ++ DT_SOCK = 0xc ++ DT_UNKNOWN = 0x0 ++ DT_WHT = 0xe ++ ECHO = 0x8 ++ ECHOCTL = 0x200 ++ ECHOE = 0x10 ++ ECHOK = 0x20 ++ ECHOKE = 0x800 ++ ECHONL = 0x40 ++ ECHOPRT = 0x400 ++ ENCODING_DEFAULT = 0x0 ++ ENCODING_FM_MARK = 0x3 ++ ENCODING_FM_SPACE = 0x4 ++ ENCODING_MANCHESTER = 0x5 ++ ENCODING_NRZ = 0x1 ++ ENCODING_NRZI = 0x2 ++ EPOLLERR = 0x8 ++ EPOLLET = 0x80000000 ++ EPOLLHUP = 0x10 ++ EPOLLIN = 0x1 ++ EPOLLMSG = 0x400 ++ EPOLLONESHOT = 0x40000000 ++ EPOLLOUT = 0x4 ++ EPOLLPRI = 0x2 ++ EPOLLRDBAND = 0x80 ++ EPOLLRDHUP = 0x2000 ++ EPOLLRDNORM = 0x40 ++ EPOLLWAKEUP = 0x20000000 ++ EPOLLWRBAND = 0x200 ++ EPOLLWRNORM = 0x100 ++ EPOLL_CLOEXEC = 0x80000 ++ EPOLL_CTL_ADD = 0x1 ++ EPOLL_CTL_DEL = 0x2 ++ EPOLL_CTL_MOD = 0x3 ++ ETH_P_1588 = 0x88f7 ++ ETH_P_8021AD = 0x88a8 ++ ETH_P_8021AH = 0x88e7 ++ ETH_P_8021Q = 0x8100 ++ ETH_P_80221 = 0x8917 ++ ETH_P_802_2 = 0x4 ++ ETH_P_802_3 = 0x1 ++ ETH_P_802_3_MIN = 0x600 ++ ETH_P_802_EX1 = 0x88b5 ++ ETH_P_AARP = 0x80f3 ++ ETH_P_AF_IUCV = 0xfbfb ++ ETH_P_ALL = 0x3 ++ ETH_P_AOE = 0x88a2 ++ ETH_P_ARCNET = 0x1a ++ ETH_P_ARP = 0x806 ++ ETH_P_ATALK = 0x809b ++ ETH_P_ATMFATE = 0x8884 ++ ETH_P_ATMMPOA = 0x884c ++ ETH_P_AX25 = 0x2 ++ ETH_P_BATMAN = 0x4305 ++ ETH_P_BPQ = 0x8ff ++ ETH_P_CAIF = 0xf7 ++ ETH_P_CAN = 0xc ++ ETH_P_CANFD = 0xd ++ ETH_P_CONTROL = 0x16 ++ ETH_P_CUST = 0x6006 ++ ETH_P_DDCMP = 0x6 ++ ETH_P_DEC = 0x6000 ++ ETH_P_DIAG = 0x6005 ++ ETH_P_DNA_DL = 0x6001 ++ ETH_P_DNA_RC = 0x6002 ++ ETH_P_DNA_RT = 0x6003 ++ ETH_P_DSA = 0x1b ++ ETH_P_ECONET = 0x18 ++ ETH_P_EDSA = 0xdada ++ ETH_P_FCOE = 0x8906 ++ ETH_P_FIP = 0x8914 ++ ETH_P_HDLC = 0x19 ++ ETH_P_IEEE802154 = 0xf6 ++ ETH_P_IEEEPUP = 0xa00 ++ ETH_P_IEEEPUPAT = 0xa01 ++ ETH_P_IP = 0x800 ++ ETH_P_IPV6 = 0x86dd ++ ETH_P_IPX = 0x8137 ++ ETH_P_IRDA = 0x17 ++ ETH_P_LAT = 0x6004 ++ ETH_P_LINK_CTL = 0x886c ++ ETH_P_LOCALTALK = 0x9 ++ ETH_P_LOOP = 0x60 ++ ETH_P_LOOPBACK = 0x9000 ++ ETH_P_MOBITEX = 0x15 ++ ETH_P_MPLS_MC = 0x8848 ++ ETH_P_MPLS_UC = 0x8847 ++ ETH_P_MVRP = 0x88f5 ++ ETH_P_PAE = 0x888e ++ ETH_P_PAUSE = 0x8808 ++ ETH_P_PHONET = 0xf5 ++ ETH_P_PPPTALK = 0x10 ++ ETH_P_PPP_DISC = 0x8863 ++ ETH_P_PPP_MP = 0x8 ++ ETH_P_PPP_SES = 0x8864 ++ ETH_P_PRP = 0x88fb ++ ETH_P_PUP = 0x200 ++ ETH_P_PUPAT = 0x201 ++ ETH_P_QINQ1 = 0x9100 ++ ETH_P_QINQ2 = 0x9200 ++ ETH_P_QINQ3 = 0x9300 ++ ETH_P_RARP = 0x8035 ++ ETH_P_SCA = 0x6007 ++ ETH_P_SLOW = 0x8809 ++ ETH_P_SNAP = 0x5 ++ ETH_P_TDLS = 0x890d ++ ETH_P_TEB = 0x6558 ++ ETH_P_TIPC = 0x88ca ++ ETH_P_TRAILER = 0x1c ++ ETH_P_TR_802_2 = 0x11 ++ ETH_P_TSN = 0x22f0 ++ ETH_P_WAN_PPP = 0x7 ++ ETH_P_WCCP = 0x883e ++ ETH_P_X25 = 0x805 ++ ETH_P_XDSA = 0xf8 ++ EXTA = 0xe ++ EXTB = 0xf ++ EXTPROC = 0x10000 ++ FALLOC_FL_COLLAPSE_RANGE = 0x8 ++ FALLOC_FL_INSERT_RANGE = 0x20 ++ FALLOC_FL_KEEP_SIZE = 0x1 ++ FALLOC_FL_NO_HIDE_STALE = 0x4 ++ FALLOC_FL_PUNCH_HOLE = 0x2 ++ FALLOC_FL_ZERO_RANGE = 0x10 ++ FD_CLOEXEC = 0x1 ++ FD_SETSIZE = 0x400 ++ FLUSHO = 0x2000 ++ F_DUPFD = 0x0 ++ F_DUPFD_CLOEXEC = 0x406 ++ F_EXLCK = 0x4 ++ F_GETFD = 0x1 ++ F_GETFL = 0x3 ++ F_GETLEASE = 0x401 ++ F_GETLK = 0xe ++ F_GETLK64 = 0xe ++ F_GETOWN = 0x17 ++ F_GETOWN_EX = 0x10 ++ F_GETPIPE_SZ = 0x408 ++ F_GETSIG = 0xb ++ F_LOCK = 0x1 ++ F_NOTIFY = 0x402 ++ F_OFD_GETLK = 0x24 ++ F_OFD_SETLK = 0x25 ++ F_OFD_SETLKW = 0x26 ++ F_OK = 0x0 ++ F_RDLCK = 0x0 ++ F_SETFD = 0x2 ++ F_SETFL = 0x4 ++ F_SETLEASE = 0x400 ++ F_SETLK = 0x6 ++ F_SETLK64 = 0x6 ++ F_SETLKW = 0x7 ++ F_SETLKW64 = 0x7 ++ F_SETOWN = 0x18 ++ F_SETOWN_EX = 0xf ++ F_SETPIPE_SZ = 0x407 ++ F_SETSIG = 0xa ++ F_SHLCK = 0x8 ++ F_TEST = 0x3 ++ F_TLOCK = 0x2 ++ F_ULOCK = 0x0 ++ F_UNLCK = 0x2 ++ F_WRLCK = 0x1 ++ GRND_NONBLOCK = 0x1 ++ GRND_RANDOM = 0x2 ++ HUPCL = 0x400 ++ ICANON = 0x2 ++ ICMPV6_FILTER = 0x1 ++ ICRNL = 0x100 ++ IEXTEN = 0x100 ++ IFA_F_DADFAILED = 0x8 ++ IFA_F_DEPRECATED = 0x20 ++ IFA_F_HOMEADDRESS = 0x10 ++ IFA_F_MANAGETEMPADDR = 0x100 ++ IFA_F_MCAUTOJOIN = 0x400 ++ IFA_F_NODAD = 0x2 ++ IFA_F_NOPREFIXROUTE = 0x200 ++ IFA_F_OPTIMISTIC = 0x4 ++ IFA_F_PERMANENT = 0x80 ++ IFA_F_SECONDARY = 0x1 ++ IFA_F_STABLE_PRIVACY = 0x800 ++ IFA_F_TEMPORARY = 0x1 ++ IFA_F_TENTATIVE = 0x40 ++ IFA_MAX = 0x8 ++ IFF_ALLMULTI = 0x200 ++ IFF_ATTACH_QUEUE = 0x200 ++ IFF_AUTOMEDIA = 0x4000 ++ IFF_BROADCAST = 0x2 ++ IFF_DEBUG = 0x4 ++ IFF_DETACH_QUEUE = 0x400 ++ IFF_DORMANT = 0x20000 ++ IFF_DYNAMIC = 0x8000 ++ IFF_ECHO = 0x40000 ++ IFF_LOOPBACK = 0x8 ++ IFF_LOWER_UP = 0x10000 ++ IFF_MASTER = 0x400 ++ IFF_MULTICAST = 0x1000 ++ IFF_MULTI_QUEUE = 0x100 ++ IFF_NOARP = 0x80 ++ IFF_NOFILTER = 0x1000 ++ IFF_NOTRAILERS = 0x20 ++ IFF_NO_PI = 0x1000 ++ IFF_ONE_QUEUE = 0x2000 ++ IFF_PERSIST = 0x800 ++ IFF_POINTOPOINT = 0x10 ++ IFF_PORTSEL = 0x2000 ++ IFF_PROMISC = 0x100 ++ IFF_RUNNING = 0x40 ++ IFF_SLAVE = 0x800 ++ IFF_TAP = 0x2 ++ IFF_TUN = 0x1 ++ IFF_TUN_EXCL = 0x8000 ++ IFF_UP = 0x1 ++ IFF_VNET_HDR = 0x4000 ++ IFF_VOLATILE = 0x70c5a ++ IFNAMSIZ = 0x10 ++ IGNBRK = 0x1 ++ IGNCR = 0x80 ++ IGNPAR = 0x4 ++ IMAXBEL = 0x2000 ++ INLCR = 0x40 ++ INPCK = 0x10 ++ IN_ACCESS = 0x1 ++ IN_ALL_EVENTS = 0xfff ++ IN_ATTRIB = 0x4 ++ IN_CLASSA_HOST = 0xffffff ++ IN_CLASSA_MAX = 0x80 ++ IN_CLASSA_NET = 0xff000000 ++ IN_CLASSA_NSHIFT = 0x18 ++ IN_CLASSB_HOST = 0xffff ++ IN_CLASSB_MAX = 0x10000 ++ IN_CLASSB_NET = 0xffff0000 ++ IN_CLASSB_NSHIFT = 0x10 ++ IN_CLASSC_HOST = 0xff ++ IN_CLASSC_NET = 0xffffff00 ++ IN_CLASSC_NSHIFT = 0x8 ++ IN_CLOEXEC = 0x80000 ++ IN_CLOSE = 0x18 ++ IN_CLOSE_NOWRITE = 0x10 ++ IN_CLOSE_WRITE = 0x8 ++ IN_CREATE = 0x100 ++ IN_DELETE = 0x200 ++ IN_DELETE_SELF = 0x400 ++ IN_DONT_FOLLOW = 0x2000000 ++ IN_EXCL_UNLINK = 0x4000000 ++ IN_IGNORED = 0x8000 ++ IN_ISDIR = 0x40000000 ++ IN_LOOPBACKNET = 0x7f ++ IN_MASK_ADD = 0x20000000 ++ IN_MODIFY = 0x2 ++ IN_MOVE = 0xc0 ++ IN_MOVED_FROM = 0x40 ++ IN_MOVED_TO = 0x80 ++ IN_MOVE_SELF = 0x800 ++ IN_NONBLOCK = 0x80 ++ IN_ONESHOT = 0x80000000 ++ IN_ONLYDIR = 0x1000000 ++ IN_OPEN = 0x20 ++ IN_Q_OVERFLOW = 0x4000 ++ IN_UNMOUNT = 0x2000 ++ IPPROTO_AH = 0x33 ++ IPPROTO_BEETPH = 0x5e ++ IPPROTO_COMP = 0x6c ++ IPPROTO_DCCP = 0x21 ++ IPPROTO_DSTOPTS = 0x3c ++ IPPROTO_EGP = 0x8 ++ IPPROTO_ENCAP = 0x62 ++ IPPROTO_ESP = 0x32 ++ IPPROTO_FRAGMENT = 0x2c ++ IPPROTO_GRE = 0x2f ++ IPPROTO_HOPOPTS = 0x0 ++ IPPROTO_ICMP = 0x1 ++ IPPROTO_ICMPV6 = 0x3a ++ IPPROTO_IDP = 0x16 ++ IPPROTO_IGMP = 0x2 ++ IPPROTO_IP = 0x0 ++ IPPROTO_IPIP = 0x4 ++ IPPROTO_IPV6 = 0x29 ++ IPPROTO_MH = 0x87 ++ IPPROTO_MTP = 0x5c ++ IPPROTO_NONE = 0x3b ++ IPPROTO_PIM = 0x67 ++ IPPROTO_PUP = 0xc ++ IPPROTO_RAW = 0xff ++ IPPROTO_ROUTING = 0x2b ++ IPPROTO_RSVP = 0x2e ++ IPPROTO_SCTP = 0x84 ++ IPPROTO_TCP = 0x6 ++ IPPROTO_TP = 0x1d ++ IPPROTO_UDP = 0x11 ++ IPPROTO_UDPLITE = 0x88 ++ IPV6_2292DSTOPTS = 0x4 ++ IPV6_2292HOPLIMIT = 0x8 ++ IPV6_2292HOPOPTS = 0x3 ++ IPV6_2292PKTINFO = 0x2 ++ IPV6_2292PKTOPTIONS = 0x6 ++ IPV6_2292RTHDR = 0x5 ++ IPV6_ADDRFORM = 0x1 ++ IPV6_ADD_MEMBERSHIP = 0x14 ++ IPV6_AUTHHDR = 0xa ++ IPV6_CHECKSUM = 0x7 ++ IPV6_DONTFRAG = 0x3e ++ IPV6_DROP_MEMBERSHIP = 0x15 ++ IPV6_DSTOPTS = 0x3b ++ IPV6_HOPLIMIT = 0x34 ++ IPV6_HOPOPTS = 0x36 ++ IPV6_IPSEC_POLICY = 0x22 ++ IPV6_JOIN_ANYCAST = 0x1b ++ IPV6_JOIN_GROUP = 0x14 ++ IPV6_LEAVE_ANYCAST = 0x1c ++ IPV6_LEAVE_GROUP = 0x15 ++ IPV6_MTU = 0x18 ++ IPV6_MTU_DISCOVER = 0x17 ++ IPV6_MULTICAST_HOPS = 0x12 ++ IPV6_MULTICAST_IF = 0x11 ++ IPV6_MULTICAST_LOOP = 0x13 ++ IPV6_NEXTHOP = 0x9 ++ IPV6_PATHMTU = 0x3d ++ IPV6_PKTINFO = 0x32 ++ IPV6_PMTUDISC_DO = 0x2 ++ IPV6_PMTUDISC_DONT = 0x0 ++ IPV6_PMTUDISC_INTERFACE = 0x4 ++ IPV6_PMTUDISC_OMIT = 0x5 ++ IPV6_PMTUDISC_PROBE = 0x3 ++ IPV6_PMTUDISC_WANT = 0x1 ++ IPV6_RECVDSTOPTS = 0x3a ++ IPV6_RECVERR = 0x19 ++ IPV6_RECVHOPLIMIT = 0x33 ++ IPV6_RECVHOPOPTS = 0x35 ++ IPV6_RECVPATHMTU = 0x3c ++ IPV6_RECVPKTINFO = 0x31 ++ IPV6_RECVRTHDR = 0x38 ++ IPV6_RECVTCLASS = 0x42 ++ IPV6_ROUTER_ALERT = 0x16 ++ IPV6_RTHDR = 0x39 ++ IPV6_RTHDRDSTOPTS = 0x37 ++ IPV6_RTHDR_LOOSE = 0x0 ++ IPV6_RTHDR_STRICT = 0x1 ++ IPV6_RTHDR_TYPE_0 = 0x0 ++ IPV6_RXDSTOPTS = 0x3b ++ IPV6_RXHOPOPTS = 0x36 ++ IPV6_TCLASS = 0x43 ++ IPV6_UNICAST_HOPS = 0x10 ++ IPV6_V6ONLY = 0x1a ++ IPV6_XFRM_POLICY = 0x23 ++ IP_ADD_MEMBERSHIP = 0x23 ++ IP_ADD_SOURCE_MEMBERSHIP = 0x27 ++ IP_BLOCK_SOURCE = 0x26 ++ IP_CHECKSUM = 0x17 ++ IP_DEFAULT_MULTICAST_LOOP = 0x1 ++ IP_DEFAULT_MULTICAST_TTL = 0x1 ++ IP_DF = 0x4000 ++ IP_DROP_MEMBERSHIP = 0x24 ++ IP_DROP_SOURCE_MEMBERSHIP = 0x28 ++ IP_FREEBIND = 0xf ++ IP_HDRINCL = 0x3 ++ IP_IPSEC_POLICY = 0x10 ++ IP_MAXPACKET = 0xffff ++ IP_MAX_MEMBERSHIPS = 0x14 ++ IP_MF = 0x2000 ++ IP_MINTTL = 0x15 ++ IP_MSFILTER = 0x29 ++ IP_MSS = 0x240 ++ IP_MTU = 0xe ++ IP_MTU_DISCOVER = 0xa ++ IP_MULTICAST_ALL = 0x31 ++ IP_MULTICAST_IF = 0x20 ++ IP_MULTICAST_LOOP = 0x22 ++ IP_MULTICAST_TTL = 0x21 ++ IP_NODEFRAG = 0x16 ++ IP_OFFMASK = 0x1fff ++ IP_OPTIONS = 0x4 ++ IP_ORIGDSTADDR = 0x14 ++ IP_PASSSEC = 0x12 ++ IP_PKTINFO = 0x8 ++ IP_PKTOPTIONS = 0x9 ++ IP_PMTUDISC = 0xa ++ IP_PMTUDISC_DO = 0x2 ++ IP_PMTUDISC_DONT = 0x0 ++ IP_PMTUDISC_INTERFACE = 0x4 ++ IP_PMTUDISC_OMIT = 0x5 ++ IP_PMTUDISC_PROBE = 0x3 ++ IP_PMTUDISC_WANT = 0x1 ++ IP_RECVERR = 0xb ++ IP_RECVOPTS = 0x6 ++ IP_RECVORIGDSTADDR = 0x14 ++ IP_RECVRETOPTS = 0x7 ++ IP_RECVTOS = 0xd ++ IP_RECVTTL = 0xc ++ IP_RETOPTS = 0x7 ++ IP_RF = 0x8000 ++ IP_ROUTER_ALERT = 0x5 ++ IP_TOS = 0x1 ++ IP_TRANSPARENT = 0x13 ++ IP_TTL = 0x2 ++ IP_UNBLOCK_SOURCE = 0x25 ++ IP_UNICAST_IF = 0x32 ++ IP_XFRM_POLICY = 0x11 ++ ISIG = 0x1 ++ ISTRIP = 0x20 ++ IUTF8 = 0x4000 ++ IXANY = 0x800 ++ IXOFF = 0x1000 ++ IXON = 0x400 ++ LINUX_REBOOT_CMD_CAD_OFF = 0x0 ++ LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef ++ LINUX_REBOOT_CMD_HALT = 0xcdef0123 ++ LINUX_REBOOT_CMD_KEXEC = 0x45584543 ++ LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc ++ LINUX_REBOOT_CMD_RESTART = 0x1234567 ++ LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 ++ LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 ++ LINUX_REBOOT_MAGIC1 = 0xfee1dead ++ LINUX_REBOOT_MAGIC2 = 0x28121969 ++ LOCK_EX = 0x2 ++ LOCK_NB = 0x4 ++ LOCK_SH = 0x1 ++ LOCK_UN = 0x8 ++ MADV_DODUMP = 0x11 ++ MADV_DOFORK = 0xb ++ MADV_DONTDUMP = 0x10 ++ MADV_DONTFORK = 0xa ++ MADV_DONTNEED = 0x4 ++ MADV_HUGEPAGE = 0xe ++ MADV_HWPOISON = 0x64 ++ MADV_MERGEABLE = 0xc ++ MADV_NOHUGEPAGE = 0xf ++ MADV_NORMAL = 0x0 ++ MADV_RANDOM = 0x1 ++ MADV_REMOVE = 0x9 ++ MADV_SEQUENTIAL = 0x2 ++ MADV_UNMERGEABLE = 0xd ++ MADV_WILLNEED = 0x3 ++ MAP_ANON = 0x800 ++ MAP_ANONYMOUS = 0x800 ++ MAP_DENYWRITE = 0x2000 ++ MAP_EXECUTABLE = 0x4000 ++ MAP_FILE = 0x0 ++ MAP_FIXED = 0x10 ++ MAP_GROWSDOWN = 0x1000 ++ MAP_HUGETLB = 0x80000 ++ MAP_HUGE_MASK = 0x3f ++ MAP_HUGE_SHIFT = 0x1a ++ MAP_LOCKED = 0x8000 ++ MAP_NONBLOCK = 0x20000 ++ MAP_NORESERVE = 0x400 ++ MAP_POPULATE = 0x10000 ++ MAP_PRIVATE = 0x2 ++ MAP_RENAME = 0x800 ++ MAP_SHARED = 0x1 ++ MAP_STACK = 0x40000 ++ MAP_TYPE = 0xf ++ MCL_CURRENT = 0x1 ++ MCL_FUTURE = 0x2 ++ MNT_DETACH = 0x2 ++ MNT_EXPIRE = 0x4 ++ MNT_FORCE = 0x1 ++ MSG_CMSG_CLOEXEC = 0x40000000 ++ MSG_CONFIRM = 0x800 ++ MSG_CTRUNC = 0x8 ++ MSG_DONTROUTE = 0x4 ++ MSG_DONTWAIT = 0x40 ++ MSG_EOR = 0x80 ++ MSG_ERRQUEUE = 0x2000 ++ MSG_FASTOPEN = 0x20000000 ++ MSG_FIN = 0x200 ++ MSG_MORE = 0x8000 ++ MSG_NOSIGNAL = 0x4000 ++ MSG_OOB = 0x1 ++ MSG_PEEK = 0x2 ++ MSG_PROXY = 0x10 ++ MSG_RST = 0x1000 ++ MSG_SYN = 0x400 ++ MSG_TRUNC = 0x20 ++ MSG_TRYHARD = 0x4 ++ MSG_WAITALL = 0x100 ++ MSG_WAITFORONE = 0x10000 ++ MS_ACTIVE = 0x40000000 ++ MS_ASYNC = 0x1 ++ MS_BIND = 0x1000 ++ MS_DIRSYNC = 0x80 ++ MS_INVALIDATE = 0x2 ++ MS_I_VERSION = 0x800000 ++ MS_KERNMOUNT = 0x400000 ++ MS_LAZYTIME = 0x2000000 ++ MS_MANDLOCK = 0x40 ++ MS_MGC_MSK = 0xffff0000 ++ MS_MGC_VAL = 0xc0ed0000 ++ MS_MOVE = 0x2000 ++ MS_NOATIME = 0x400 ++ MS_NODEV = 0x4 ++ MS_NODIRATIME = 0x800 ++ MS_NOEXEC = 0x8 ++ MS_NOSUID = 0x2 ++ MS_NOUSER = -0x80000000 ++ MS_POSIXACL = 0x10000 ++ MS_PRIVATE = 0x40000 ++ MS_RDONLY = 0x1 ++ MS_REC = 0x4000 ++ MS_RELATIME = 0x200000 ++ MS_REMOUNT = 0x20 ++ MS_RMT_MASK = 0x2800051 ++ MS_SHARED = 0x100000 ++ MS_SILENT = 0x8000 ++ MS_SLAVE = 0x80000 ++ MS_STRICTATIME = 0x1000000 ++ MS_SYNC = 0x4 ++ MS_SYNCHRONOUS = 0x10 ++ MS_UNBINDABLE = 0x20000 ++ NAME_MAX = 0xff ++ NETLINK_ADD_MEMBERSHIP = 0x1 ++ NETLINK_AUDIT = 0x9 ++ NETLINK_BROADCAST_ERROR = 0x4 ++ NETLINK_CAP_ACK = 0xa ++ NETLINK_CONNECTOR = 0xb ++ NETLINK_CRYPTO = 0x15 ++ NETLINK_DNRTMSG = 0xe ++ NETLINK_DROP_MEMBERSHIP = 0x2 ++ NETLINK_ECRYPTFS = 0x13 ++ NETLINK_FIB_LOOKUP = 0xa ++ NETLINK_FIREWALL = 0x3 ++ NETLINK_GENERIC = 0x10 ++ NETLINK_INET_DIAG = 0x4 ++ NETLINK_IP6_FW = 0xd ++ NETLINK_ISCSI = 0x8 ++ NETLINK_KOBJECT_UEVENT = 0xf ++ NETLINK_LISTEN_ALL_NSID = 0x8 ++ NETLINK_LIST_MEMBERSHIPS = 0x9 ++ NETLINK_NETFILTER = 0xc ++ NETLINK_NFLOG = 0x5 ++ NETLINK_NO_ENOBUFS = 0x5 ++ NETLINK_PKTINFO = 0x3 ++ NETLINK_RDMA = 0x14 ++ NETLINK_ROUTE = 0x0 ++ NETLINK_RX_RING = 0x6 ++ NETLINK_SCSITRANSPORT = 0x12 ++ NETLINK_SELINUX = 0x7 ++ NETLINK_SOCK_DIAG = 0x4 ++ NETLINK_TX_RING = 0x7 ++ NETLINK_UNUSED = 0x1 ++ NETLINK_USERSOCK = 0x2 ++ NETLINK_XFRM = 0x6 ++ NLA_ALIGNTO = 0x4 ++ NLA_F_NESTED = 0x8000 ++ NLA_F_NET_BYTEORDER = 0x4000 ++ NLA_HDRLEN = 0x4 ++ NLMSG_ALIGNTO = 0x4 ++ NLMSG_DONE = 0x3 ++ NLMSG_ERROR = 0x2 ++ NLMSG_HDRLEN = 0x10 ++ NLMSG_MIN_TYPE = 0x10 ++ NLMSG_NOOP = 0x1 ++ NLMSG_OVERRUN = 0x4 ++ NLM_F_ACK = 0x4 ++ NLM_F_APPEND = 0x800 ++ NLM_F_ATOMIC = 0x400 ++ NLM_F_CREATE = 0x400 ++ NLM_F_DUMP = 0x300 ++ NLM_F_DUMP_FILTERED = 0x20 ++ NLM_F_DUMP_INTR = 0x10 ++ NLM_F_ECHO = 0x8 ++ NLM_F_EXCL = 0x200 ++ NLM_F_MATCH = 0x200 ++ NLM_F_MULTI = 0x2 ++ NLM_F_REPLACE = 0x100 ++ NLM_F_REQUEST = 0x1 ++ NLM_F_ROOT = 0x100 ++ NOFLSH = 0x80 ++ OCRNL = 0x8 ++ OFDEL = 0x80 ++ OFILL = 0x40 ++ ONLCR = 0x4 ++ ONLRET = 0x20 ++ ONOCR = 0x10 ++ OPOST = 0x1 ++ O_ACCMODE = 0x3 ++ O_APPEND = 0x8 ++ O_ASYNC = 0x1000 ++ O_CLOEXEC = 0x80000 ++ O_CREAT = 0x100 ++ O_DIRECT = 0x8000 ++ O_DIRECTORY = 0x10000 ++ O_DSYNC = 0x10 ++ O_EXCL = 0x400 ++ O_FSYNC = 0x4010 ++ O_LARGEFILE = 0x0 ++ O_NDELAY = 0x80 ++ O_NOATIME = 0x40000 ++ O_NOCTTY = 0x800 ++ O_NOFOLLOW = 0x20000 ++ O_NONBLOCK = 0x80 ++ O_PATH = 0x200000 ++ O_RDONLY = 0x0 ++ O_RDWR = 0x2 ++ O_RSYNC = 0x4010 ++ O_SYNC = 0x4010 ++ O_TMPFILE = 0x410000 ++ O_TRUNC = 0x200 ++ O_WRONLY = 0x1 ++ PACKET_ADD_MEMBERSHIP = 0x1 ++ PACKET_AUXDATA = 0x8 ++ PACKET_BROADCAST = 0x1 ++ PACKET_COPY_THRESH = 0x7 ++ PACKET_DROP_MEMBERSHIP = 0x2 ++ PACKET_FANOUT = 0x12 ++ PACKET_FANOUT_CBPF = 0x6 ++ PACKET_FANOUT_CPU = 0x2 ++ PACKET_FANOUT_DATA = 0x16 ++ PACKET_FANOUT_EBPF = 0x7 ++ PACKET_FANOUT_FLAG_DEFRAG = 0x8000 ++ PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 ++ PACKET_FANOUT_HASH = 0x0 ++ PACKET_FANOUT_LB = 0x1 ++ PACKET_FANOUT_QM = 0x5 ++ PACKET_FANOUT_RND = 0x4 ++ PACKET_FANOUT_ROLLOVER = 0x3 ++ PACKET_FASTROUTE = 0x6 ++ PACKET_HDRLEN = 0xb ++ PACKET_HOST = 0x0 ++ PACKET_KERNEL = 0x7 ++ PACKET_LOOPBACK = 0x5 ++ PACKET_LOSS = 0xe ++ PACKET_MR_ALLMULTI = 0x2 ++ PACKET_MR_MULTICAST = 0x0 ++ PACKET_MR_PROMISC = 0x1 ++ PACKET_MR_UNICAST = 0x3 ++ PACKET_MULTICAST = 0x2 ++ PACKET_ORIGDEV = 0x9 ++ PACKET_OTHERHOST = 0x3 ++ PACKET_OUTGOING = 0x4 ++ PACKET_QDISC_BYPASS = 0x14 ++ PACKET_RECV_OUTPUT = 0x3 ++ PACKET_RESERVE = 0xc ++ PACKET_ROLLOVER_STATS = 0x15 ++ PACKET_RX_RING = 0x5 ++ PACKET_STATISTICS = 0x6 ++ PACKET_TIMESTAMP = 0x11 ++ PACKET_TX_HAS_OFF = 0x13 ++ PACKET_TX_RING = 0xd ++ PACKET_TX_TIMESTAMP = 0x10 ++ PACKET_USER = 0x6 ++ PACKET_VERSION = 0xa ++ PACKET_VNET_HDR = 0xf ++ PARENB = 0x100 ++ PARITY_CRC16_PR0 = 0x2 ++ PARITY_CRC16_PR0_CCITT = 0x4 ++ PARITY_CRC16_PR1 = 0x3 ++ PARITY_CRC16_PR1_CCITT = 0x5 ++ PARITY_CRC32_PR0_CCITT = 0x6 ++ PARITY_CRC32_PR1_CCITT = 0x7 ++ PARITY_DEFAULT = 0x0 ++ PARITY_NONE = 0x1 ++ PARMRK = 0x8 ++ PARODD = 0x200 ++ PENDIN = 0x4000 ++ PRIO_PGRP = 0x1 ++ PRIO_PROCESS = 0x0 ++ PRIO_USER = 0x2 ++ PROT_EXEC = 0x4 ++ PROT_GROWSDOWN = 0x1000000 ++ PROT_GROWSUP = 0x2000000 ++ PROT_NONE = 0x0 ++ PROT_READ = 0x1 ++ PROT_WRITE = 0x2 ++ PR_CAPBSET_DROP = 0x18 ++ PR_CAPBSET_READ = 0x17 ++ PR_CAP_AMBIENT = 0x2f ++ PR_CAP_AMBIENT_CLEAR_ALL = 0x4 ++ PR_CAP_AMBIENT_IS_SET = 0x1 ++ PR_CAP_AMBIENT_LOWER = 0x3 ++ PR_CAP_AMBIENT_RAISE = 0x2 ++ PR_ENDIAN_BIG = 0x0 ++ PR_ENDIAN_LITTLE = 0x1 ++ PR_ENDIAN_PPC_LITTLE = 0x2 ++ PR_FPEMU_NOPRINT = 0x1 ++ PR_FPEMU_SIGFPE = 0x2 ++ PR_FP_EXC_ASYNC = 0x2 ++ PR_FP_EXC_DISABLED = 0x0 ++ PR_FP_EXC_DIV = 0x10000 ++ PR_FP_EXC_INV = 0x100000 ++ PR_FP_EXC_NONRECOV = 0x1 ++ PR_FP_EXC_OVF = 0x20000 ++ PR_FP_EXC_PRECISE = 0x3 ++ PR_FP_EXC_RES = 0x80000 ++ PR_FP_EXC_SW_ENABLE = 0x80 ++ PR_FP_EXC_UND = 0x40000 ++ PR_FP_MODE_FR = 0x1 ++ PR_FP_MODE_FRE = 0x2 ++ PR_GET_CHILD_SUBREAPER = 0x25 ++ PR_GET_DUMPABLE = 0x3 ++ PR_GET_ENDIAN = 0x13 ++ PR_GET_FPEMU = 0x9 ++ PR_GET_FPEXC = 0xb ++ PR_GET_FP_MODE = 0x2e ++ PR_GET_KEEPCAPS = 0x7 ++ PR_GET_NAME = 0x10 ++ PR_GET_NO_NEW_PRIVS = 0x27 ++ PR_GET_PDEATHSIG = 0x2 ++ PR_GET_SECCOMP = 0x15 ++ PR_GET_SECUREBITS = 0x1b ++ PR_GET_THP_DISABLE = 0x2a ++ PR_GET_TID_ADDRESS = 0x28 ++ PR_GET_TIMERSLACK = 0x1e ++ PR_GET_TIMING = 0xd ++ PR_GET_TSC = 0x19 ++ PR_GET_UNALIGN = 0x5 ++ PR_MCE_KILL = 0x21 ++ PR_MCE_KILL_CLEAR = 0x0 ++ PR_MCE_KILL_DEFAULT = 0x2 ++ PR_MCE_KILL_EARLY = 0x1 ++ PR_MCE_KILL_GET = 0x22 ++ PR_MCE_KILL_LATE = 0x0 ++ PR_MCE_KILL_SET = 0x1 ++ PR_MPX_DISABLE_MANAGEMENT = 0x2c ++ PR_MPX_ENABLE_MANAGEMENT = 0x2b ++ PR_SET_CHILD_SUBREAPER = 0x24 ++ PR_SET_DUMPABLE = 0x4 ++ PR_SET_ENDIAN = 0x14 ++ PR_SET_FPEMU = 0xa ++ PR_SET_FPEXC = 0xc ++ PR_SET_FP_MODE = 0x2d ++ PR_SET_KEEPCAPS = 0x8 ++ PR_SET_MM = 0x23 ++ PR_SET_MM_ARG_END = 0x9 ++ PR_SET_MM_ARG_START = 0x8 ++ PR_SET_MM_AUXV = 0xc ++ PR_SET_MM_BRK = 0x7 ++ PR_SET_MM_END_CODE = 0x2 ++ PR_SET_MM_END_DATA = 0x4 ++ PR_SET_MM_ENV_END = 0xb ++ PR_SET_MM_ENV_START = 0xa ++ PR_SET_MM_EXE_FILE = 0xd ++ PR_SET_MM_MAP = 0xe ++ PR_SET_MM_MAP_SIZE = 0xf ++ PR_SET_MM_START_BRK = 0x6 ++ PR_SET_MM_START_CODE = 0x1 ++ PR_SET_MM_START_DATA = 0x3 ++ PR_SET_MM_START_STACK = 0x5 ++ PR_SET_NAME = 0xf ++ PR_SET_NO_NEW_PRIVS = 0x26 ++ PR_SET_PDEATHSIG = 0x1 ++ PR_SET_PTRACER = 0x59616d61 ++ PR_SET_PTRACER_ANY = -0x1 ++ PR_SET_SECCOMP = 0x16 ++ PR_SET_SECUREBITS = 0x1c ++ PR_SET_THP_DISABLE = 0x29 ++ PR_SET_TIMERSLACK = 0x1d ++ PR_SET_TIMING = 0xe ++ PR_SET_TSC = 0x1a ++ PR_SET_UNALIGN = 0x6 ++ PR_TASK_PERF_EVENTS_DISABLE = 0x1f ++ PR_TASK_PERF_EVENTS_ENABLE = 0x20 ++ PR_TIMING_STATISTICAL = 0x0 ++ PR_TIMING_TIMESTAMP = 0x1 ++ PR_TSC_ENABLE = 0x1 ++ PR_TSC_SIGSEGV = 0x2 ++ PR_UNALIGN_NOPRINT = 0x1 ++ PR_UNALIGN_SIGBUS = 0x2 ++ PTRACE_ATTACH = 0x10 ++ PTRACE_CONT = 0x7 ++ PTRACE_DETACH = 0x11 ++ PTRACE_EVENT_CLONE = 0x3 ++ PTRACE_EVENT_EXEC = 0x4 ++ PTRACE_EVENT_EXIT = 0x6 ++ PTRACE_EVENT_FORK = 0x1 ++ PTRACE_EVENT_SECCOMP = 0x7 ++ PTRACE_EVENT_STOP = 0x80 ++ PTRACE_EVENT_VFORK = 0x2 ++ PTRACE_EVENT_VFORK_DONE = 0x5 ++ PTRACE_GETEVENTMSG = 0x4201 ++ PTRACE_GETFPREGS = 0xe ++ PTRACE_GETREGS = 0xc ++ PTRACE_GETREGSET = 0x4204 ++ PTRACE_GETSIGINFO = 0x4202 ++ PTRACE_GETSIGMASK = 0x420a ++ PTRACE_GET_THREAD_AREA = 0x19 ++ PTRACE_GET_THREAD_AREA_3264 = 0xc4 ++ PTRACE_GET_WATCH_REGS = 0xd0 ++ PTRACE_INTERRUPT = 0x4207 ++ PTRACE_KILL = 0x8 ++ PTRACE_LISTEN = 0x4208 ++ PTRACE_OLDSETOPTIONS = 0x15 ++ PTRACE_O_EXITKILL = 0x100000 ++ PTRACE_O_MASK = 0x3000ff ++ PTRACE_O_SUSPEND_SECCOMP = 0x200000 ++ PTRACE_O_TRACECLONE = 0x8 ++ PTRACE_O_TRACEEXEC = 0x10 ++ PTRACE_O_TRACEEXIT = 0x40 ++ PTRACE_O_TRACEFORK = 0x2 ++ PTRACE_O_TRACESECCOMP = 0x80 ++ PTRACE_O_TRACESYSGOOD = 0x1 ++ PTRACE_O_TRACEVFORK = 0x4 ++ PTRACE_O_TRACEVFORKDONE = 0x20 ++ PTRACE_PEEKDATA = 0x2 ++ PTRACE_PEEKDATA_3264 = 0xc1 ++ PTRACE_PEEKSIGINFO = 0x4209 ++ PTRACE_PEEKSIGINFO_SHARED = 0x1 ++ PTRACE_PEEKTEXT = 0x1 ++ PTRACE_PEEKTEXT_3264 = 0xc0 ++ PTRACE_PEEKUSR = 0x3 ++ PTRACE_POKEDATA = 0x5 ++ PTRACE_POKEDATA_3264 = 0xc3 ++ PTRACE_POKETEXT = 0x4 ++ PTRACE_POKETEXT_3264 = 0xc2 ++ PTRACE_POKEUSR = 0x6 ++ PTRACE_SEIZE = 0x4206 ++ PTRACE_SETFPREGS = 0xf ++ PTRACE_SETOPTIONS = 0x4200 ++ PTRACE_SETREGS = 0xd ++ PTRACE_SETREGSET = 0x4205 ++ PTRACE_SETSIGINFO = 0x4203 ++ PTRACE_SETSIGMASK = 0x420b ++ PTRACE_SET_THREAD_AREA = 0x1a ++ PTRACE_SET_WATCH_REGS = 0xd1 ++ PTRACE_SINGLESTEP = 0x9 ++ PTRACE_SYSCALL = 0x18 ++ PTRACE_TRACEME = 0x0 ++ RLIMIT_AS = 0x6 ++ RLIMIT_CORE = 0x4 ++ RLIMIT_CPU = 0x0 ++ RLIMIT_DATA = 0x2 ++ RLIMIT_FSIZE = 0x1 ++ RLIMIT_NOFILE = 0x5 ++ RLIMIT_STACK = 0x3 ++ RLIM_INFINITY = -0x1 ++ RTAX_ADVMSS = 0x8 ++ RTAX_CC_ALGO = 0x10 ++ RTAX_CWND = 0x7 ++ RTAX_FEATURES = 0xc ++ RTAX_FEATURE_ALLFRAG = 0x8 ++ RTAX_FEATURE_ECN = 0x1 ++ RTAX_FEATURE_MASK = 0xf ++ RTAX_FEATURE_SACK = 0x2 ++ RTAX_FEATURE_TIMESTAMP = 0x4 ++ RTAX_HOPLIMIT = 0xa ++ RTAX_INITCWND = 0xb ++ RTAX_INITRWND = 0xe ++ RTAX_LOCK = 0x1 ++ RTAX_MAX = 0x10 ++ RTAX_MTU = 0x2 ++ RTAX_QUICKACK = 0xf ++ RTAX_REORDERING = 0x9 ++ RTAX_RTO_MIN = 0xd ++ RTAX_RTT = 0x4 ++ RTAX_RTTVAR = 0x5 ++ RTAX_SSTHRESH = 0x6 ++ RTAX_UNSPEC = 0x0 ++ RTAX_WINDOW = 0x3 ++ RTA_ALIGNTO = 0x4 ++ RTA_MAX = 0x16 ++ RTCF_DIRECTSRC = 0x4000000 ++ RTCF_DOREDIRECT = 0x1000000 ++ RTCF_LOG = 0x2000000 ++ RTCF_MASQ = 0x400000 ++ RTCF_NAT = 0x800000 ++ RTCF_VALVE = 0x200000 ++ RTF_ADDRCLASSMASK = 0xf8000000 ++ RTF_ADDRCONF = 0x40000 ++ RTF_ALLONLINK = 0x20000 ++ RTF_BROADCAST = 0x10000000 ++ RTF_CACHE = 0x1000000 ++ RTF_DEFAULT = 0x10000 ++ RTF_DYNAMIC = 0x10 ++ RTF_FLOW = 0x2000000 ++ RTF_GATEWAY = 0x2 ++ RTF_HOST = 0x4 ++ RTF_INTERFACE = 0x40000000 ++ RTF_IRTT = 0x100 ++ RTF_LINKRT = 0x100000 ++ RTF_LOCAL = 0x80000000 ++ RTF_MODIFIED = 0x20 ++ RTF_MSS = 0x40 ++ RTF_MTU = 0x40 ++ RTF_MULTICAST = 0x20000000 ++ RTF_NAT = 0x8000000 ++ RTF_NOFORWARD = 0x1000 ++ RTF_NONEXTHOP = 0x200000 ++ RTF_NOPMTUDISC = 0x4000 ++ RTF_POLICY = 0x4000000 ++ RTF_REINSTATE = 0x8 ++ RTF_REJECT = 0x200 ++ RTF_STATIC = 0x400 ++ RTF_THROW = 0x2000 ++ RTF_UP = 0x1 ++ RTF_WINDOW = 0x80 ++ RTF_XRESOLVE = 0x800 ++ RTM_BASE = 0x10 ++ RTM_DELACTION = 0x31 ++ RTM_DELADDR = 0x15 ++ RTM_DELADDRLABEL = 0x49 ++ RTM_DELLINK = 0x11 ++ RTM_DELMDB = 0x55 ++ RTM_DELNEIGH = 0x1d ++ RTM_DELNSID = 0x59 ++ RTM_DELQDISC = 0x25 ++ RTM_DELROUTE = 0x19 ++ RTM_DELRULE = 0x21 ++ RTM_DELTCLASS = 0x29 ++ RTM_DELTFILTER = 0x2d ++ RTM_F_CLONED = 0x200 ++ RTM_F_EQUALIZE = 0x400 ++ RTM_F_NOTIFY = 0x100 ++ RTM_F_PREFIX = 0x800 ++ RTM_GETACTION = 0x32 ++ RTM_GETADDR = 0x16 ++ RTM_GETADDRLABEL = 0x4a ++ RTM_GETANYCAST = 0x3e ++ RTM_GETDCB = 0x4e ++ RTM_GETLINK = 0x12 ++ RTM_GETMDB = 0x56 ++ RTM_GETMULTICAST = 0x3a ++ RTM_GETNEIGH = 0x1e ++ RTM_GETNEIGHTBL = 0x42 ++ RTM_GETNETCONF = 0x52 ++ RTM_GETNSID = 0x5a ++ RTM_GETQDISC = 0x26 ++ RTM_GETROUTE = 0x1a ++ RTM_GETRULE = 0x22 ++ RTM_GETTCLASS = 0x2a ++ RTM_GETTFILTER = 0x2e ++ RTM_MAX = 0x5b ++ RTM_NEWACTION = 0x30 ++ RTM_NEWADDR = 0x14 ++ RTM_NEWADDRLABEL = 0x48 ++ RTM_NEWLINK = 0x10 ++ RTM_NEWMDB = 0x54 ++ RTM_NEWNDUSEROPT = 0x44 ++ RTM_NEWNEIGH = 0x1c ++ RTM_NEWNEIGHTBL = 0x40 ++ RTM_NEWNETCONF = 0x50 ++ RTM_NEWNSID = 0x58 ++ RTM_NEWPREFIX = 0x34 ++ RTM_NEWQDISC = 0x24 ++ RTM_NEWROUTE = 0x18 ++ RTM_NEWRULE = 0x20 ++ RTM_NEWTCLASS = 0x28 ++ RTM_NEWTFILTER = 0x2c ++ RTM_NR_FAMILIES = 0x13 ++ RTM_NR_MSGTYPES = 0x4c ++ RTM_SETDCB = 0x4f ++ RTM_SETLINK = 0x13 ++ RTM_SETNEIGHTBL = 0x43 ++ RTNH_ALIGNTO = 0x4 ++ RTNH_COMPARE_MASK = 0x11 ++ RTNH_F_DEAD = 0x1 ++ RTNH_F_LINKDOWN = 0x10 ++ RTNH_F_OFFLOAD = 0x8 ++ RTNH_F_ONLINK = 0x4 ++ RTNH_F_PERVASIVE = 0x2 ++ RTN_MAX = 0xb ++ RTPROT_BABEL = 0x2a ++ RTPROT_BIRD = 0xc ++ RTPROT_BOOT = 0x3 ++ RTPROT_DHCP = 0x10 ++ RTPROT_DNROUTED = 0xd ++ RTPROT_GATED = 0x8 ++ RTPROT_KERNEL = 0x2 ++ RTPROT_MROUTED = 0x11 ++ RTPROT_MRT = 0xa ++ RTPROT_NTK = 0xf ++ RTPROT_RA = 0x9 ++ RTPROT_REDIRECT = 0x1 ++ RTPROT_STATIC = 0x4 ++ RTPROT_UNSPEC = 0x0 ++ RTPROT_XORP = 0xe ++ RTPROT_ZEBRA = 0xb ++ RT_CLASS_DEFAULT = 0xfd ++ RT_CLASS_LOCAL = 0xff ++ RT_CLASS_MAIN = 0xfe ++ RT_CLASS_MAX = 0xff ++ RT_CLASS_UNSPEC = 0x0 ++ RUSAGE_CHILDREN = -0x1 ++ RUSAGE_SELF = 0x0 ++ RUSAGE_THREAD = 0x1 ++ SCM_CREDENTIALS = 0x2 ++ SCM_RIGHTS = 0x1 ++ SCM_TIMESTAMP = 0x1d ++ SCM_TIMESTAMPING = 0x25 ++ SCM_TIMESTAMPNS = 0x23 ++ SCM_WIFI_STATUS = 0x29 ++ SHUT_RD = 0x0 ++ SHUT_RDWR = 0x2 ++ SHUT_WR = 0x1 ++ SIOCADDDLCI = 0x8980 ++ SIOCADDMULTI = 0x8931 ++ SIOCADDRT = 0x890b ++ SIOCATMARK = 0x40047307 ++ SIOCDARP = 0x8953 ++ SIOCDELDLCI = 0x8981 ++ SIOCDELMULTI = 0x8932 ++ SIOCDELRT = 0x890c ++ SIOCDEVPRIVATE = 0x89f0 ++ SIOCDIFADDR = 0x8936 ++ SIOCDRARP = 0x8960 ++ SIOCGARP = 0x8954 ++ SIOCGIFADDR = 0x8915 ++ SIOCGIFBR = 0x8940 ++ SIOCGIFBRDADDR = 0x8919 ++ SIOCGIFCONF = 0x8912 ++ SIOCGIFCOUNT = 0x8938 ++ SIOCGIFDSTADDR = 0x8917 ++ SIOCGIFENCAP = 0x8925 ++ SIOCGIFFLAGS = 0x8913 ++ SIOCGIFHWADDR = 0x8927 ++ SIOCGIFINDEX = 0x8933 ++ SIOCGIFMAP = 0x8970 ++ SIOCGIFMEM = 0x891f ++ SIOCGIFMETRIC = 0x891d ++ SIOCGIFMTU = 0x8921 ++ SIOCGIFNAME = 0x8910 ++ SIOCGIFNETMASK = 0x891b ++ SIOCGIFPFLAGS = 0x8935 ++ SIOCGIFSLAVE = 0x8929 ++ SIOCGIFTXQLEN = 0x8942 ++ SIOCGPGRP = 0x40047309 ++ SIOCGRARP = 0x8961 ++ SIOCGSTAMP = 0x8906 ++ SIOCGSTAMPNS = 0x8907 ++ SIOCPROTOPRIVATE = 0x89e0 ++ SIOCRTMSG = 0x890d ++ SIOCSARP = 0x8955 ++ SIOCSIFADDR = 0x8916 ++ SIOCSIFBR = 0x8941 ++ SIOCSIFBRDADDR = 0x891a ++ SIOCSIFDSTADDR = 0x8918 ++ SIOCSIFENCAP = 0x8926 ++ SIOCSIFFLAGS = 0x8914 ++ SIOCSIFHWADDR = 0x8924 ++ SIOCSIFHWBROADCAST = 0x8937 ++ SIOCSIFLINK = 0x8911 ++ SIOCSIFMAP = 0x8971 ++ SIOCSIFMEM = 0x8920 ++ SIOCSIFMETRIC = 0x891e ++ SIOCSIFMTU = 0x8922 ++ SIOCSIFNAME = 0x8923 ++ SIOCSIFNETMASK = 0x891c ++ SIOCSIFPFLAGS = 0x8934 ++ SIOCSIFSLAVE = 0x8930 ++ SIOCSIFTXQLEN = 0x8943 ++ SIOCSPGRP = 0x80047308 ++ SIOCSRARP = 0x8962 ++ SOCK_CLOEXEC = 0x80000 ++ SOCK_DCCP = 0x6 ++ SOCK_DGRAM = 0x1 ++ SOCK_NONBLOCK = 0x80 ++ SOCK_PACKET = 0xa ++ SOCK_RAW = 0x3 ++ SOCK_RDM = 0x4 ++ SOCK_SEQPACKET = 0x5 ++ SOCK_STREAM = 0x2 ++ SOL_AAL = 0x109 ++ SOL_ATM = 0x108 ++ SOL_DECNET = 0x105 ++ SOL_ICMPV6 = 0x3a ++ SOL_IP = 0x0 ++ SOL_IPV6 = 0x29 ++ SOL_IRDA = 0x10a ++ SOL_NETLINK = 0x10e ++ SOL_PACKET = 0x107 ++ SOL_RAW = 0xff ++ SOL_SOCKET = 0xffff ++ SOL_TCP = 0x6 ++ SOL_X25 = 0x106 ++ SOMAXCONN = 0x80 ++ SO_ACCEPTCONN = 0x1009 ++ SO_ATTACH_BPF = 0x32 ++ SO_ATTACH_FILTER = 0x1a ++ SO_BINDTODEVICE = 0x19 ++ SO_BPF_EXTENSIONS = 0x30 ++ SO_BROADCAST = 0x20 ++ SO_BSDCOMPAT = 0xe ++ SO_BUSY_POLL = 0x2e ++ SO_DEBUG = 0x1 ++ SO_DETACH_BPF = 0x1b ++ SO_DETACH_FILTER = 0x1b ++ SO_DOMAIN = 0x1029 ++ SO_DONTROUTE = 0x10 ++ SO_ERROR = 0x1007 ++ SO_GET_FILTER = 0x1a ++ SO_INCOMING_CPU = 0x31 ++ SO_KEEPALIVE = 0x8 ++ SO_LINGER = 0x80 ++ SO_LOCK_FILTER = 0x2c ++ SO_MARK = 0x24 ++ SO_MAX_PACING_RATE = 0x2f ++ SO_NOFCS = 0x2b ++ SO_NO_CHECK = 0xb ++ SO_OOBINLINE = 0x100 ++ SO_PASSCRED = 0x11 ++ SO_PASSSEC = 0x22 ++ SO_PEEK_OFF = 0x2a ++ SO_PEERCRED = 0x12 ++ SO_PEERNAME = 0x1c ++ SO_PEERSEC = 0x1e ++ SO_PRIORITY = 0xc ++ SO_PROTOCOL = 0x1028 ++ SO_RCVBUF = 0x1002 ++ SO_RCVBUFFORCE = 0x21 ++ SO_RCVLOWAT = 0x1004 ++ SO_RCVTIMEO = 0x1006 ++ SO_REUSEADDR = 0x4 ++ SO_REUSEPORT = 0x200 ++ SO_RXQ_OVFL = 0x28 ++ SO_SECURITY_AUTHENTICATION = 0x16 ++ SO_SECURITY_ENCRYPTION_NETWORK = 0x18 ++ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 ++ SO_SELECT_ERR_QUEUE = 0x2d ++ SO_SNDBUF = 0x1001 ++ SO_SNDBUFFORCE = 0x1f ++ SO_SNDLOWAT = 0x1003 ++ SO_SNDTIMEO = 0x1005 ++ SO_STYLE = 0x1008 ++ SO_TIMESTAMP = 0x1d ++ SO_TIMESTAMPING = 0x25 ++ SO_TIMESTAMPNS = 0x23 ++ SO_TYPE = 0x1008 ++ SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 ++ SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 ++ SO_VM_SOCKETS_BUFFER_SIZE = 0x0 ++ SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 ++ SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 ++ SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 ++ SO_VM_SOCKETS_TRUSTED = 0x5 ++ SO_WIFI_STATUS = 0x29 ++ SPLICE_F_GIFT = 0x8 ++ SPLICE_F_MORE = 0x4 ++ SPLICE_F_MOVE = 0x1 ++ SPLICE_F_NONBLOCK = 0x2 ++ S_BLKSIZE = 0x200 ++ S_IEXEC = 0x40 ++ S_IFBLK = 0x6000 ++ S_IFCHR = 0x2000 ++ S_IFDIR = 0x4000 ++ S_IFIFO = 0x1000 ++ S_IFLNK = 0xa000 ++ S_IFMT = 0xf000 ++ S_IFREG = 0x8000 ++ S_IFSOCK = 0xc000 ++ S_IREAD = 0x100 ++ S_IRGRP = 0x20 ++ S_IROTH = 0x4 ++ S_IRUSR = 0x100 ++ S_IRWXG = 0x38 ++ S_IRWXO = 0x7 ++ S_IRWXU = 0x1c0 ++ S_ISGID = 0x400 ++ S_ISUID = 0x800 ++ S_ISVTX = 0x200 ++ S_IWGRP = 0x10 ++ S_IWOTH = 0x2 ++ S_IWRITE = 0x80 ++ S_IWUSR = 0x80 ++ S_IXGRP = 0x8 ++ S_IXOTH = 0x1 ++ S_IXUSR = 0x40 ++ TCFLSH = 0x5407 ++ TCIFLUSH = 0x0 ++ TCIOFLUSH = 0x2 ++ TCOFLUSH = 0x1 ++ TCP_CONGESTION = 0xd ++ TCP_COOKIE_IN_ALWAYS = 0x1 ++ TCP_COOKIE_MAX = 0x10 ++ TCP_COOKIE_MIN = 0x8 ++ TCP_COOKIE_OUT_NEVER = 0x2 ++ TCP_COOKIE_PAIR_SIZE = 0x20 ++ TCP_COOKIE_TRANSACTIONS = 0xf ++ TCP_CORK = 0x3 ++ TCP_DEFER_ACCEPT = 0x9 ++ TCP_FASTOPEN = 0x17 ++ TCP_INFO = 0xb ++ TCP_KEEPCNT = 0x6 ++ TCP_KEEPIDLE = 0x4 ++ TCP_KEEPINTVL = 0x5 ++ TCP_LINGER2 = 0x8 ++ TCP_MAXSEG = 0x2 ++ TCP_MAXWIN = 0xffff ++ TCP_MAX_WINSHIFT = 0xe ++ TCP_MD5SIG = 0xe ++ TCP_MD5SIG_MAXKEYLEN = 0x50 ++ TCP_MSS = 0x200 ++ TCP_MSS_DEFAULT = 0x218 ++ TCP_MSS_DESIRED = 0x4c4 ++ TCP_NODELAY = 0x1 ++ TCP_QUEUE_SEQ = 0x15 ++ TCP_QUICKACK = 0xc ++ TCP_REPAIR = 0x13 ++ TCP_REPAIR_OPTIONS = 0x16 ++ TCP_REPAIR_QUEUE = 0x14 ++ TCP_SYNCNT = 0x7 ++ TCP_S_DATA_IN = 0x4 ++ TCP_S_DATA_OUT = 0x8 ++ TCP_THIN_DUPACK = 0x11 ++ TCP_THIN_LINEAR_TIMEOUTS = 0x10 ++ TCP_TIMESTAMP = 0x18 ++ TCP_USER_TIMEOUT = 0x12 ++ TCP_WINDOW_CLAMP = 0xa ++ TCSAFLUSH = 0x5410 ++ TCSBRK = 0x5405 ++ TCXONC = 0x5406 ++ TIOCCBRK = 0x5428 ++ TIOCCONS = 0x80047478 ++ TIOCEXCL = 0x740d ++ TIOCGDEV = 0x40045432 ++ TIOCGETD = 0x7400 ++ TIOCGETP = 0x7408 ++ TIOCGEXCL = 0x40045440 ++ TIOCGICOUNT = 0x5492 ++ TIOCGLCKTRMIOS = 0x548b ++ TIOCGLTC = 0x7474 ++ TIOCGPGRP = 0x40047477 ++ TIOCGPKT = 0x40045438 ++ TIOCGPTLCK = 0x40045439 ++ TIOCGPTN = 0x40045430 ++ TIOCGRS485 = 0x4020542e ++ TIOCGSERIAL = 0x5484 ++ TIOCGSID = 0x7416 ++ TIOCGSOFTCAR = 0x5481 ++ TIOCGWINSZ = 0x40087468 ++ TIOCINQ = 0x467f ++ TIOCLINUX = 0x5483 ++ TIOCMBIC = 0x741c ++ TIOCMBIS = 0x741b ++ TIOCMGET = 0x741d ++ TIOCMIWAIT = 0x5491 ++ TIOCMSET = 0x741a ++ TIOCM_CAR = 0x100 ++ TIOCM_CD = 0x100 ++ TIOCM_CTS = 0x40 ++ TIOCM_DSR = 0x400 ++ TIOCM_DTR = 0x2 ++ TIOCM_LE = 0x1 ++ TIOCM_RI = 0x200 ++ TIOCM_RNG = 0x200 ++ TIOCM_RTS = 0x4 ++ TIOCM_SR = 0x20 ++ TIOCM_ST = 0x10 ++ TIOCNOTTY = 0x5471 ++ TIOCNXCL = 0x740e ++ TIOCOUTQ = 0x7472 ++ TIOCPKT = 0x5470 ++ TIOCPKT_DATA = 0x0 ++ TIOCPKT_DOSTOP = 0x20 ++ TIOCPKT_FLUSHREAD = 0x1 ++ TIOCPKT_FLUSHWRITE = 0x2 ++ TIOCPKT_IOCTL = 0x40 ++ TIOCPKT_NOSTOP = 0x10 ++ TIOCPKT_START = 0x8 ++ TIOCPKT_STOP = 0x4 ++ TIOCSBRK = 0x5427 ++ TIOCSCTTY = 0x5480 ++ TIOCSERCONFIG = 0x5488 ++ TIOCSERGETLSR = 0x548e ++ TIOCSERGETMULTI = 0x548f ++ TIOCSERGSTRUCT = 0x548d ++ TIOCSERGWILD = 0x5489 ++ TIOCSERSETMULTI = 0x5490 ++ TIOCSERSWILD = 0x548a ++ TIOCSER_TEMT = 0x1 ++ TIOCSETD = 0x7401 ++ TIOCSETN = 0x740a ++ TIOCSETP = 0x7409 ++ TIOCSIG = 0x80045436 ++ TIOCSLCKTRMIOS = 0x548c ++ TIOCSLTC = 0x7475 ++ TIOCSPGRP = 0x80047476 ++ TIOCSPTLCK = 0x80045431 ++ TIOCSRS485 = 0xc020542f ++ TIOCSSERIAL = 0x5485 ++ TIOCSSOFTCAR = 0x5482 ++ TIOCSTI = 0x5472 ++ TIOCSWINSZ = 0x80087467 ++ TIOCVHANGUP = 0x5437 ++ TOSTOP = 0x8000 ++ TUNATTACHFILTER = 0x801054d5 ++ TUNDETACHFILTER = 0x801054d6 ++ TUNGETFEATURES = 0x400454cf ++ TUNGETFILTER = 0x401054db ++ TUNGETIFF = 0x400454d2 ++ TUNGETSNDBUF = 0x400454d3 ++ TUNGETVNETBE = 0x400454df ++ TUNGETVNETHDRSZ = 0x400454d7 ++ TUNGETVNETLE = 0x400454dd ++ TUNSETDEBUG = 0x800454c9 ++ TUNSETGROUP = 0x800454ce ++ TUNSETIFF = 0x800454ca ++ TUNSETIFINDEX = 0x800454da ++ TUNSETLINK = 0x800454cd ++ TUNSETNOCSUM = 0x800454c8 ++ TUNSETOFFLOAD = 0x800454d0 ++ TUNSETOWNER = 0x800454cc ++ TUNSETPERSIST = 0x800454cb ++ TUNSETQUEUE = 0x800454d9 ++ TUNSETSNDBUF = 0x800454d4 ++ TUNSETTXFILTER = 0x800454d1 ++ TUNSETVNETBE = 0x800454de ++ TUNSETVNETHDRSZ = 0x800454d8 ++ TUNSETVNETLE = 0x800454dc ++ VDISCARD = 0xd ++ VEOF = 0x10 ++ VEOL = 0x11 ++ VEOL2 = 0x6 ++ VERASE = 0x2 ++ VINTR = 0x0 ++ VKILL = 0x3 ++ VLNEXT = 0xf ++ VMADDR_CID_ANY = 0xffffffff ++ VMADDR_CID_HOST = 0x2 ++ VMADDR_CID_HYPERVISOR = 0x0 ++ VMADDR_CID_RESERVED = 0x1 ++ VMADDR_PORT_ANY = 0xffffffff ++ VMIN = 0x4 ++ VQUIT = 0x1 ++ VREPRINT = 0xc ++ VSTART = 0x8 ++ VSTOP = 0x9 ++ VSUSP = 0xa ++ VSWTC = 0x7 ++ VSWTCH = 0x7 ++ VT0 = 0x0 ++ VT1 = 0x4000 ++ VTDLY = 0x4000 ++ VTIME = 0x5 ++ VWERASE = 0xe ++ WALL = 0x40000000 ++ WCLONE = 0x80000000 ++ WCONTINUED = 0x8 ++ WEXITED = 0x4 ++ WNOHANG = 0x1 ++ WNOTHREAD = 0x20000000 ++ WNOWAIT = 0x1000000 ++ WORDSIZE = 0x40 ++ WSTOPPED = 0x2 ++ WUNTRACED = 0x2 ++) ++ ++// Errors ++const ( ++ E2BIG = syscall.Errno(0x7) ++ EACCES = syscall.Errno(0xd) ++ EADDRINUSE = syscall.Errno(0x7d) ++ EADDRNOTAVAIL = syscall.Errno(0x7e) ++ EADV = syscall.Errno(0x44) ++ EAFNOSUPPORT = syscall.Errno(0x7c) ++ EAGAIN = syscall.Errno(0xb) ++ EALREADY = syscall.Errno(0x95) ++ EBADE = syscall.Errno(0x32) ++ EBADF = syscall.Errno(0x9) ++ EBADFD = syscall.Errno(0x51) ++ EBADMSG = syscall.Errno(0x4d) ++ EBADR = syscall.Errno(0x33) ++ EBADRQC = syscall.Errno(0x36) ++ EBADSLT = syscall.Errno(0x37) ++ EBFONT = syscall.Errno(0x3b) ++ EBUSY = syscall.Errno(0x10) ++ ECANCELED = syscall.Errno(0x9e) ++ ECHILD = syscall.Errno(0xa) ++ ECHRNG = syscall.Errno(0x25) ++ ECOMM = syscall.Errno(0x46) ++ ECONNABORTED = syscall.Errno(0x82) ++ ECONNREFUSED = syscall.Errno(0x92) ++ ECONNRESET = syscall.Errno(0x83) ++ EDEADLK = syscall.Errno(0x2d) ++ EDEADLOCK = syscall.Errno(0x38) ++ EDESTADDRREQ = syscall.Errno(0x60) ++ EDOM = syscall.Errno(0x21) ++ EDOTDOT = syscall.Errno(0x49) ++ EDQUOT = syscall.Errno(0x46d) ++ EEXIST = syscall.Errno(0x11) ++ EFAULT = syscall.Errno(0xe) ++ EFBIG = syscall.Errno(0x1b) ++ EHOSTDOWN = syscall.Errno(0x93) ++ EHOSTUNREACH = syscall.Errno(0x94) ++ EHWPOISON = syscall.Errno(0xa8) ++ EIDRM = syscall.Errno(0x24) ++ EILSEQ = syscall.Errno(0x58) ++ EINIT = syscall.Errno(0x8d) ++ EINPROGRESS = syscall.Errno(0x96) ++ EINTR = syscall.Errno(0x4) ++ EINVAL = syscall.Errno(0x16) ++ EIO = syscall.Errno(0x5) ++ EISCONN = syscall.Errno(0x85) ++ EISDIR = syscall.Errno(0x15) ++ EISNAM = syscall.Errno(0x8b) ++ EKEYEXPIRED = syscall.Errno(0xa2) ++ EKEYREJECTED = syscall.Errno(0xa4) ++ EKEYREVOKED = syscall.Errno(0xa3) ++ EL2HLT = syscall.Errno(0x2c) ++ EL2NSYNC = syscall.Errno(0x26) ++ EL3HLT = syscall.Errno(0x27) ++ EL3RST = syscall.Errno(0x28) ++ ELIBACC = syscall.Errno(0x53) ++ ELIBBAD = syscall.Errno(0x54) ++ ELIBEXEC = syscall.Errno(0x57) ++ ELIBMAX = syscall.Errno(0x56) ++ ELIBSCN = syscall.Errno(0x55) ++ ELNRNG = syscall.Errno(0x29) ++ ELOOP = syscall.Errno(0x5a) ++ EMEDIUMTYPE = syscall.Errno(0xa0) ++ EMFILE = syscall.Errno(0x18) ++ EMLINK = syscall.Errno(0x1f) ++ EMSGSIZE = syscall.Errno(0x61) ++ EMULTIHOP = syscall.Errno(0x4a) ++ ENAMETOOLONG = syscall.Errno(0x4e) ++ ENAVAIL = syscall.Errno(0x8a) ++ ENETDOWN = syscall.Errno(0x7f) ++ ENETRESET = syscall.Errno(0x81) ++ ENETUNREACH = syscall.Errno(0x80) ++ ENFILE = syscall.Errno(0x17) ++ ENOANO = syscall.Errno(0x35) ++ ENOBUFS = syscall.Errno(0x84) ++ ENOCSI = syscall.Errno(0x2b) ++ ENODATA = syscall.Errno(0x3d) ++ ENODEV = syscall.Errno(0x13) ++ ENOENT = syscall.Errno(0x2) ++ ENOEXEC = syscall.Errno(0x8) ++ ENOKEY = syscall.Errno(0xa1) ++ ENOLCK = syscall.Errno(0x2e) ++ ENOLINK = syscall.Errno(0x43) ++ ENOMEDIUM = syscall.Errno(0x9f) ++ ENOMEM = syscall.Errno(0xc) ++ ENOMSG = syscall.Errno(0x23) ++ ENONET = syscall.Errno(0x40) ++ ENOPKG = syscall.Errno(0x41) ++ ENOPROTOOPT = syscall.Errno(0x63) ++ ENOSPC = syscall.Errno(0x1c) ++ ENOSR = syscall.Errno(0x3f) ++ ENOSTR = syscall.Errno(0x3c) ++ ENOSYS = syscall.Errno(0x59) ++ ENOTBLK = syscall.Errno(0xf) ++ ENOTCONN = syscall.Errno(0x86) ++ ENOTDIR = syscall.Errno(0x14) ++ ENOTEMPTY = syscall.Errno(0x5d) ++ ENOTNAM = syscall.Errno(0x89) ++ ENOTRECOVERABLE = syscall.Errno(0xa6) ++ ENOTSOCK = syscall.Errno(0x5f) ++ ENOTSUP = syscall.Errno(0x7a) ++ ENOTTY = syscall.Errno(0x19) ++ ENOTUNIQ = syscall.Errno(0x50) ++ ENXIO = syscall.Errno(0x6) ++ EOPNOTSUPP = syscall.Errno(0x7a) ++ EOVERFLOW = syscall.Errno(0x4f) ++ EOWNERDEAD = syscall.Errno(0xa5) ++ EPERM = syscall.Errno(0x1) ++ EPFNOSUPPORT = syscall.Errno(0x7b) ++ EPIPE = syscall.Errno(0x20) ++ EPROTO = syscall.Errno(0x47) ++ EPROTONOSUPPORT = syscall.Errno(0x78) ++ EPROTOTYPE = syscall.Errno(0x62) ++ ERANGE = syscall.Errno(0x22) ++ EREMCHG = syscall.Errno(0x52) ++ EREMDEV = syscall.Errno(0x8e) ++ EREMOTE = syscall.Errno(0x42) ++ EREMOTEIO = syscall.Errno(0x8c) ++ ERESTART = syscall.Errno(0x5b) ++ ERFKILL = syscall.Errno(0xa7) ++ EROFS = syscall.Errno(0x1e) ++ ESHUTDOWN = syscall.Errno(0x8f) ++ ESOCKTNOSUPPORT = syscall.Errno(0x79) ++ ESPIPE = syscall.Errno(0x1d) ++ ESRCH = syscall.Errno(0x3) ++ ESRMNT = syscall.Errno(0x45) ++ ESTALE = syscall.Errno(0x97) ++ ESTRPIPE = syscall.Errno(0x5c) ++ ETIME = syscall.Errno(0x3e) ++ ETIMEDOUT = syscall.Errno(0x91) ++ ETOOMANYREFS = syscall.Errno(0x90) ++ ETXTBSY = syscall.Errno(0x1a) ++ EUCLEAN = syscall.Errno(0x87) ++ EUNATCH = syscall.Errno(0x2a) ++ EUSERS = syscall.Errno(0x5e) ++ EWOULDBLOCK = syscall.Errno(0xb) ++ EXDEV = syscall.Errno(0x12) ++ EXFULL = syscall.Errno(0x34) ++) ++ ++// Signals ++const ( ++ SIGABRT = syscall.Signal(0x6) ++ SIGALRM = syscall.Signal(0xe) ++ SIGBUS = syscall.Signal(0xa) ++ SIGCHLD = syscall.Signal(0x12) ++ SIGCLD = syscall.Signal(0x12) ++ SIGCONT = syscall.Signal(0x19) ++ SIGEMT = syscall.Signal(0x7) ++ SIGFPE = syscall.Signal(0x8) ++ SIGHUP = syscall.Signal(0x1) ++ SIGILL = syscall.Signal(0x4) ++ SIGINT = syscall.Signal(0x2) ++ SIGIO = syscall.Signal(0x16) ++ SIGIOT = syscall.Signal(0x6) ++ SIGKILL = syscall.Signal(0x9) ++ SIGPIPE = syscall.Signal(0xd) ++ SIGPOLL = syscall.Signal(0x16) ++ SIGPROF = syscall.Signal(0x1d) ++ SIGPWR = syscall.Signal(0x13) ++ SIGQUIT = syscall.Signal(0x3) ++ SIGSEGV = syscall.Signal(0xb) ++ SIGSTOP = syscall.Signal(0x17) ++ SIGSYS = syscall.Signal(0xc) ++ SIGTERM = syscall.Signal(0xf) ++ SIGTRAP = syscall.Signal(0x5) ++ SIGTSTP = syscall.Signal(0x18) ++ SIGTTIN = syscall.Signal(0x1a) ++ SIGTTOU = syscall.Signal(0x1b) ++ SIGURG = syscall.Signal(0x15) ++ SIGUSR1 = syscall.Signal(0x10) ++ SIGUSR2 = syscall.Signal(0x11) ++ SIGVTALRM = syscall.Signal(0x1c) ++ SIGWINCH = syscall.Signal(0x14) ++ SIGXCPU = syscall.Signal(0x1e) ++ SIGXFSZ = syscall.Signal(0x1f) ++) ++ ++// Error table ++var errors = [...]string{ ++ 1: "operation not permitted", ++ 2: "no such file or directory", ++ 3: "no such process", ++ 4: "interrupted system call", ++ 5: "input/output error", ++ 6: "no such device or address", ++ 7: "argument list too long", ++ 8: "exec format error", ++ 9: "bad file descriptor", ++ 10: "no child processes", ++ 11: "resource temporarily unavailable", ++ 12: "cannot allocate memory", ++ 13: "permission denied", ++ 14: "bad address", ++ 15: "block device required", ++ 16: "device or resource busy", ++ 17: "file exists", ++ 18: "invalid cross-device link", ++ 19: "no such device", ++ 20: "not a directory", ++ 21: "is a directory", ++ 22: "invalid argument", ++ 23: "too many open files in system", ++ 24: "too many open files", ++ 25: "inappropriate ioctl for device", ++ 26: "text file busy", ++ 27: "file too large", ++ 28: "no space left on device", ++ 29: "illegal seek", ++ 30: "read-only file system", ++ 31: "too many links", ++ 32: "broken pipe", ++ 33: "numerical argument out of domain", ++ 34: "numerical result out of range", ++ 35: "no message of desired type", ++ 36: "identifier removed", ++ 37: "channel number out of range", ++ 38: "level 2 not synchronized", ++ 39: "level 3 halted", ++ 40: "level 3 reset", ++ 41: "link number out of range", ++ 42: "protocol driver not attached", ++ 43: "no CSI structure available", ++ 44: "level 2 halted", ++ 45: "resource deadlock avoided", ++ 46: "no locks available", ++ 50: "invalid exchange", ++ 51: "invalid request descriptor", ++ 52: "exchange full", ++ 53: "no anode", ++ 54: "invalid request code", ++ 55: "invalid slot", ++ 56: "file locking deadlock error", ++ 59: "bad font file format", ++ 60: "device not a stream", ++ 61: "no data available", ++ 62: "timer expired", ++ 63: "out of streams resources", ++ 64: "machine is not on the network", ++ 65: "package not installed", ++ 66: "object is remote", ++ 67: "link has been severed", ++ 68: "advertise error", ++ 69: "srmount error", ++ 70: "communication error on send", ++ 71: "protocol error", ++ 73: "RFS specific error", ++ 74: "multihop attempted", ++ 77: "bad message", ++ 78: "file name too long", ++ 79: "value too large for defined data type", ++ 80: "name not unique on network", ++ 81: "file descriptor in bad state", ++ 82: "remote address changed", ++ 83: "can not access a needed shared library", ++ 84: "accessing a corrupted shared library", ++ 85: ".lib section in a.out corrupted", ++ 86: "attempting to link in too many shared libraries", ++ 87: "cannot exec a shared library directly", ++ 88: "invalid or incomplete multibyte or wide character", ++ 89: "function not implemented", ++ 90: "too many levels of symbolic links", ++ 91: "interrupted system call should be restarted", ++ 92: "streams pipe error", ++ 93: "directory not empty", ++ 94: "too many users", ++ 95: "socket operation on non-socket", ++ 96: "destination address required", ++ 97: "message too long", ++ 98: "protocol wrong type for socket", ++ 99: "protocol not available", ++ 120: "protocol not supported", ++ 121: "socket type not supported", ++ 122: "operation not supported", ++ 123: "protocol family not supported", ++ 124: "address family not supported by protocol", ++ 125: "address already in use", ++ 126: "cannot assign requested address", ++ 127: "network is down", ++ 128: "network is unreachable", ++ 129: "network dropped connection on reset", ++ 130: "software caused connection abort", ++ 131: "connection reset by peer", ++ 132: "no buffer space available", ++ 133: "transport endpoint is already connected", ++ 134: "transport endpoint is not connected", ++ 135: "structure needs cleaning", ++ 137: "not a XENIX named type file", ++ 138: "no XENIX semaphores available", ++ 139: "is a named type file", ++ 140: "remote I/O error", ++ 141: "unknown error 141", ++ 142: "unknown error 142", ++ 143: "cannot send after transport endpoint shutdown", ++ 144: "too many references: cannot splice", ++ 145: "connection timed out", ++ 146: "connection refused", ++ 147: "host is down", ++ 148: "no route to host", ++ 149: "operation already in progress", ++ 150: "operation now in progress", ++ 151: "stale file handle", ++ 158: "operation canceled", ++ 159: "no medium found", ++ 160: "wrong medium type", ++ 161: "required key not available", ++ 162: "key has expired", ++ 163: "key has been revoked", ++ 164: "key was rejected by service", ++ 165: "owner died", ++ 166: "state not recoverable", ++ 167: "operation not possible due to RF-kill", ++ 168: "memory page has hardware error", ++ 1133: "disk quota exceeded", ++} ++ ++// Signal table ++var signals = [...]string{ ++ 1: "hangup", ++ 2: "interrupt", ++ 3: "quit", ++ 4: "illegal instruction", ++ 5: "trace/breakpoint trap", ++ 6: "aborted", ++ 7: "EMT trap", ++ 8: "floating point exception", ++ 9: "killed", ++ 10: "bus error", ++ 11: "segmentation fault", ++ 12: "bad system call", ++ 13: "broken pipe", ++ 14: "alarm clock", ++ 15: "terminated", ++ 16: "user defined signal 1", ++ 17: "user defined signal 2", ++ 18: "child exited", ++ 19: "power failure", ++ 20: "window changed", ++ 21: "urgent I/O condition", ++ 22: "I/O possible", ++ 23: "stopped (signal)", ++ 24: "stopped", ++ 25: "continued", ++ 26: "stopped (tty input)", ++ 27: "stopped (tty output)", ++ 28: "virtual timer expired", ++ 29: "profiling timer expired", ++ 30: "CPU time limit exceeded", ++ 31: "file size limit exceeded", ++} +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +new file mode 100644 +index 0000000..fb15b41 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +@@ -0,0 +1,1965 @@ ++// mkerrors.sh ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build mips64le,linux ++ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- _const.go ++ ++package unix ++ ++import "syscall" ++ ++const ( ++ AF_ALG = 0x26 ++ AF_APPLETALK = 0x5 ++ AF_ASH = 0x12 ++ AF_ATMPVC = 0x8 ++ AF_ATMSVC = 0x14 ++ AF_AX25 = 0x3 ++ AF_BLUETOOTH = 0x1f ++ AF_BRIDGE = 0x7 ++ AF_CAIF = 0x25 ++ AF_CAN = 0x1d ++ AF_DECnet = 0xc ++ AF_ECONET = 0x13 ++ AF_FILE = 0x1 ++ AF_IB = 0x1b ++ AF_IEEE802154 = 0x24 ++ AF_INET = 0x2 ++ AF_INET6 = 0xa ++ AF_IPX = 0x4 ++ AF_IRDA = 0x17 ++ AF_ISDN = 0x22 ++ AF_IUCV = 0x20 ++ AF_KEY = 0xf ++ AF_LLC = 0x1a ++ AF_LOCAL = 0x1 ++ AF_MAX = 0x29 ++ AF_MPLS = 0x1c ++ AF_NETBEUI = 0xd ++ AF_NETLINK = 0x10 ++ AF_NETROM = 0x6 ++ AF_NFC = 0x27 ++ AF_PACKET = 0x11 ++ AF_PHONET = 0x23 ++ AF_PPPOX = 0x18 ++ AF_RDS = 0x15 ++ AF_ROSE = 0xb ++ AF_ROUTE = 0x10 ++ AF_RXRPC = 0x21 ++ AF_SECURITY = 0xe ++ AF_SNA = 0x16 ++ AF_TIPC = 0x1e ++ AF_UNIX = 0x1 ++ AF_UNSPEC = 0x0 ++ AF_VSOCK = 0x28 ++ AF_WANPIPE = 0x19 ++ AF_X25 = 0x9 ++ ALG_OP_DECRYPT = 0x0 ++ ALG_OP_ENCRYPT = 0x1 ++ ALG_SET_AEAD_ASSOCLEN = 0x4 ++ ALG_SET_AEAD_AUTHSIZE = 0x5 ++ ALG_SET_IV = 0x2 ++ ALG_SET_KEY = 0x1 ++ ALG_SET_OP = 0x3 ++ ARPHRD_6LOWPAN = 0x339 ++ ARPHRD_ADAPT = 0x108 ++ ARPHRD_APPLETLK = 0x8 ++ ARPHRD_ARCNET = 0x7 ++ ARPHRD_ASH = 0x30d ++ ARPHRD_ATM = 0x13 ++ ARPHRD_AX25 = 0x3 ++ ARPHRD_BIF = 0x307 ++ ARPHRD_CAIF = 0x336 ++ ARPHRD_CAN = 0x118 ++ ARPHRD_CHAOS = 0x5 ++ ARPHRD_CISCO = 0x201 ++ ARPHRD_CSLIP = 0x101 ++ ARPHRD_CSLIP6 = 0x103 ++ ARPHRD_DDCMP = 0x205 ++ ARPHRD_DLCI = 0xf ++ ARPHRD_ECONET = 0x30e ++ ARPHRD_EETHER = 0x2 ++ ARPHRD_ETHER = 0x1 ++ ARPHRD_EUI64 = 0x1b ++ ARPHRD_FCAL = 0x311 ++ ARPHRD_FCFABRIC = 0x313 ++ ARPHRD_FCPL = 0x312 ++ ARPHRD_FCPP = 0x310 ++ ARPHRD_FDDI = 0x306 ++ ARPHRD_FRAD = 0x302 ++ ARPHRD_HDLC = 0x201 ++ ARPHRD_HIPPI = 0x30c ++ ARPHRD_HWX25 = 0x110 ++ ARPHRD_IEEE1394 = 0x18 ++ ARPHRD_IEEE802 = 0x6 ++ ARPHRD_IEEE80211 = 0x321 ++ ARPHRD_IEEE80211_PRISM = 0x322 ++ ARPHRD_IEEE80211_RADIOTAP = 0x323 ++ ARPHRD_IEEE802154 = 0x324 ++ ARPHRD_IEEE802154_MONITOR = 0x325 ++ ARPHRD_IEEE802_TR = 0x320 ++ ARPHRD_INFINIBAND = 0x20 ++ ARPHRD_IP6GRE = 0x337 ++ ARPHRD_IPDDP = 0x309 ++ ARPHRD_IPGRE = 0x30a ++ ARPHRD_IRDA = 0x30f ++ ARPHRD_LAPB = 0x204 ++ ARPHRD_LOCALTLK = 0x305 ++ ARPHRD_LOOPBACK = 0x304 ++ ARPHRD_METRICOM = 0x17 ++ ARPHRD_NETLINK = 0x338 ++ ARPHRD_NETROM = 0x0 ++ ARPHRD_NONE = 0xfffe ++ ARPHRD_PHONET = 0x334 ++ ARPHRD_PHONET_PIPE = 0x335 ++ ARPHRD_PIMREG = 0x30b ++ ARPHRD_PPP = 0x200 ++ ARPHRD_PRONET = 0x4 ++ ARPHRD_RAWHDLC = 0x206 ++ ARPHRD_ROSE = 0x10e ++ ARPHRD_RSRVD = 0x104 ++ ARPHRD_SIT = 0x308 ++ ARPHRD_SKIP = 0x303 ++ ARPHRD_SLIP = 0x100 ++ ARPHRD_SLIP6 = 0x102 ++ ARPHRD_TUNNEL = 0x300 ++ ARPHRD_TUNNEL6 = 0x301 ++ ARPHRD_VOID = 0xffff ++ ARPHRD_X25 = 0x10f ++ B0 = 0x0 ++ B1000000 = 0x1008 ++ B110 = 0x3 ++ B115200 = 0x1002 ++ B1152000 = 0x1009 ++ B1200 = 0x9 ++ B134 = 0x4 ++ B150 = 0x5 ++ B1500000 = 0x100a ++ B1800 = 0xa ++ B19200 = 0xe ++ B200 = 0x6 ++ B2000000 = 0x100b ++ B230400 = 0x1003 ++ B2400 = 0xb ++ B2500000 = 0x100c ++ B300 = 0x7 ++ B3000000 = 0x100d ++ B3500000 = 0x100e ++ B38400 = 0xf ++ B4000000 = 0x100f ++ B460800 = 0x1004 ++ B4800 = 0xc ++ B50 = 0x1 ++ B500000 = 0x1005 ++ B57600 = 0x1001 ++ B576000 = 0x1006 ++ B600 = 0x8 ++ B75 = 0x2 ++ B921600 = 0x1007 ++ B9600 = 0xd ++ BLKBSZGET = 0x80081270 ++ BLKBSZSET = 0x40081271 ++ BLKFLSBUF = 0x1261 ++ BLKFRAGET = 0x1265 ++ BLKFRASET = 0x1264 ++ BLKGETSIZE = 0x1260 ++ BLKGETSIZE64 = 0x80081272 ++ BLKRAGET = 0x1263 ++ BLKRASET = 0x1262 ++ BLKROGET = 0x125e ++ BLKROSET = 0x125d ++ BLKRRPART = 0x125f ++ BLKSECTGET = 0x1267 ++ BLKSECTSET = 0x1266 ++ BLKSSZGET = 0x1268 ++ BPF_A = 0x10 ++ BPF_ABS = 0x20 ++ BPF_ADD = 0x0 ++ BPF_ALU = 0x4 ++ BPF_AND = 0x50 ++ BPF_B = 0x10 ++ BPF_DIV = 0x30 ++ BPF_H = 0x8 ++ BPF_IMM = 0x0 ++ BPF_IND = 0x40 ++ BPF_JA = 0x0 ++ BPF_JEQ = 0x10 ++ BPF_JGE = 0x30 ++ BPF_JGT = 0x20 ++ BPF_JMP = 0x5 ++ BPF_JSET = 0x40 ++ BPF_K = 0x0 ++ BPF_LD = 0x0 ++ BPF_LDX = 0x1 ++ BPF_LEN = 0x80 ++ BPF_LL_OFF = -0x200000 ++ BPF_LSH = 0x60 ++ BPF_MAJOR_VERSION = 0x1 ++ BPF_MAXINSNS = 0x1000 ++ BPF_MEM = 0x60 ++ BPF_MEMWORDS = 0x10 ++ BPF_MINOR_VERSION = 0x1 ++ BPF_MISC = 0x7 ++ BPF_MOD = 0x90 ++ BPF_MSH = 0xa0 ++ BPF_MUL = 0x20 ++ BPF_NEG = 0x80 ++ BPF_NET_OFF = -0x100000 ++ BPF_OR = 0x40 ++ BPF_RET = 0x6 ++ BPF_RSH = 0x70 ++ BPF_ST = 0x2 ++ BPF_STX = 0x3 ++ BPF_SUB = 0x10 ++ BPF_TAX = 0x0 ++ BPF_TXA = 0x80 ++ BPF_W = 0x0 ++ BPF_X = 0x8 ++ BPF_XOR = 0xa0 ++ BRKINT = 0x2 ++ CFLUSH = 0xf ++ CLOCAL = 0x800 ++ CLOCK_BOOTTIME = 0x7 ++ CLOCK_BOOTTIME_ALARM = 0x9 ++ CLOCK_DEFAULT = 0x0 ++ CLOCK_EXT = 0x1 ++ CLOCK_INT = 0x2 ++ CLOCK_MONOTONIC = 0x1 ++ CLOCK_MONOTONIC_COARSE = 0x6 ++ CLOCK_MONOTONIC_RAW = 0x4 ++ CLOCK_PROCESS_CPUTIME_ID = 0x2 ++ CLOCK_REALTIME = 0x0 ++ CLOCK_REALTIME_ALARM = 0x8 ++ CLOCK_REALTIME_COARSE = 0x5 ++ CLOCK_TAI = 0xb ++ CLOCK_THREAD_CPUTIME_ID = 0x3 ++ CLOCK_TXFROMRX = 0x4 ++ CLOCK_TXINT = 0x3 ++ CLONE_CHILD_CLEARTID = 0x200000 ++ CLONE_CHILD_SETTID = 0x1000000 ++ CLONE_DETACHED = 0x400000 ++ CLONE_FILES = 0x400 ++ CLONE_FS = 0x200 ++ CLONE_IO = 0x80000000 ++ CLONE_NEWCGROUP = 0x2000000 ++ CLONE_NEWIPC = 0x8000000 ++ CLONE_NEWNET = 0x40000000 ++ CLONE_NEWNS = 0x20000 ++ CLONE_NEWPID = 0x20000000 ++ CLONE_NEWUSER = 0x10000000 ++ CLONE_NEWUTS = 0x4000000 ++ CLONE_PARENT = 0x8000 ++ CLONE_PARENT_SETTID = 0x100000 ++ CLONE_PTRACE = 0x2000 ++ CLONE_SETTLS = 0x80000 ++ CLONE_SIGHAND = 0x800 ++ CLONE_SYSVSEM = 0x40000 ++ CLONE_THREAD = 0x10000 ++ CLONE_UNTRACED = 0x800000 ++ CLONE_VFORK = 0x4000 ++ CLONE_VM = 0x100 ++ CREAD = 0x80 ++ CS5 = 0x0 ++ CS6 = 0x10 ++ CS7 = 0x20 ++ CS8 = 0x30 ++ CSIGNAL = 0xff ++ CSIZE = 0x30 ++ CSTART = 0x11 ++ CSTATUS = 0x0 ++ CSTOP = 0x13 ++ CSTOPB = 0x40 ++ CSUSP = 0x1a ++ DT_BLK = 0x6 ++ DT_CHR = 0x2 ++ DT_DIR = 0x4 ++ DT_FIFO = 0x1 ++ DT_LNK = 0xa ++ DT_REG = 0x8 ++ DT_SOCK = 0xc ++ DT_UNKNOWN = 0x0 ++ DT_WHT = 0xe ++ ECHO = 0x8 ++ ECHOCTL = 0x200 ++ ECHOE = 0x10 ++ ECHOK = 0x20 ++ ECHOKE = 0x800 ++ ECHONL = 0x40 ++ ECHOPRT = 0x400 ++ ENCODING_DEFAULT = 0x0 ++ ENCODING_FM_MARK = 0x3 ++ ENCODING_FM_SPACE = 0x4 ++ ENCODING_MANCHESTER = 0x5 ++ ENCODING_NRZ = 0x1 ++ ENCODING_NRZI = 0x2 ++ EPOLLERR = 0x8 ++ EPOLLET = 0x80000000 ++ EPOLLHUP = 0x10 ++ EPOLLIN = 0x1 ++ EPOLLMSG = 0x400 ++ EPOLLONESHOT = 0x40000000 ++ EPOLLOUT = 0x4 ++ EPOLLPRI = 0x2 ++ EPOLLRDBAND = 0x80 ++ EPOLLRDHUP = 0x2000 ++ EPOLLRDNORM = 0x40 ++ EPOLLWAKEUP = 0x20000000 ++ EPOLLWRBAND = 0x200 ++ EPOLLWRNORM = 0x100 ++ EPOLL_CLOEXEC = 0x80000 ++ EPOLL_CTL_ADD = 0x1 ++ EPOLL_CTL_DEL = 0x2 ++ EPOLL_CTL_MOD = 0x3 ++ ETH_P_1588 = 0x88f7 ++ ETH_P_8021AD = 0x88a8 ++ ETH_P_8021AH = 0x88e7 ++ ETH_P_8021Q = 0x8100 ++ ETH_P_80221 = 0x8917 ++ ETH_P_802_2 = 0x4 ++ ETH_P_802_3 = 0x1 ++ ETH_P_802_3_MIN = 0x600 ++ ETH_P_802_EX1 = 0x88b5 ++ ETH_P_AARP = 0x80f3 ++ ETH_P_AF_IUCV = 0xfbfb ++ ETH_P_ALL = 0x3 ++ ETH_P_AOE = 0x88a2 ++ ETH_P_ARCNET = 0x1a ++ ETH_P_ARP = 0x806 ++ ETH_P_ATALK = 0x809b ++ ETH_P_ATMFATE = 0x8884 ++ ETH_P_ATMMPOA = 0x884c ++ ETH_P_AX25 = 0x2 ++ ETH_P_BATMAN = 0x4305 ++ ETH_P_BPQ = 0x8ff ++ ETH_P_CAIF = 0xf7 ++ ETH_P_CAN = 0xc ++ ETH_P_CANFD = 0xd ++ ETH_P_CONTROL = 0x16 ++ ETH_P_CUST = 0x6006 ++ ETH_P_DDCMP = 0x6 ++ ETH_P_DEC = 0x6000 ++ ETH_P_DIAG = 0x6005 ++ ETH_P_DNA_DL = 0x6001 ++ ETH_P_DNA_RC = 0x6002 ++ ETH_P_DNA_RT = 0x6003 ++ ETH_P_DSA = 0x1b ++ ETH_P_ECONET = 0x18 ++ ETH_P_EDSA = 0xdada ++ ETH_P_FCOE = 0x8906 ++ ETH_P_FIP = 0x8914 ++ ETH_P_HDLC = 0x19 ++ ETH_P_IEEE802154 = 0xf6 ++ ETH_P_IEEEPUP = 0xa00 ++ ETH_P_IEEEPUPAT = 0xa01 ++ ETH_P_IP = 0x800 ++ ETH_P_IPV6 = 0x86dd ++ ETH_P_IPX = 0x8137 ++ ETH_P_IRDA = 0x17 ++ ETH_P_LAT = 0x6004 ++ ETH_P_LINK_CTL = 0x886c ++ ETH_P_LOCALTALK = 0x9 ++ ETH_P_LOOP = 0x60 ++ ETH_P_LOOPBACK = 0x9000 ++ ETH_P_MOBITEX = 0x15 ++ ETH_P_MPLS_MC = 0x8848 ++ ETH_P_MPLS_UC = 0x8847 ++ ETH_P_MVRP = 0x88f5 ++ ETH_P_PAE = 0x888e ++ ETH_P_PAUSE = 0x8808 ++ ETH_P_PHONET = 0xf5 ++ ETH_P_PPPTALK = 0x10 ++ ETH_P_PPP_DISC = 0x8863 ++ ETH_P_PPP_MP = 0x8 ++ ETH_P_PPP_SES = 0x8864 ++ ETH_P_PRP = 0x88fb ++ ETH_P_PUP = 0x200 ++ ETH_P_PUPAT = 0x201 ++ ETH_P_QINQ1 = 0x9100 ++ ETH_P_QINQ2 = 0x9200 ++ ETH_P_QINQ3 = 0x9300 ++ ETH_P_RARP = 0x8035 ++ ETH_P_SCA = 0x6007 ++ ETH_P_SLOW = 0x8809 ++ ETH_P_SNAP = 0x5 ++ ETH_P_TDLS = 0x890d ++ ETH_P_TEB = 0x6558 ++ ETH_P_TIPC = 0x88ca ++ ETH_P_TRAILER = 0x1c ++ ETH_P_TR_802_2 = 0x11 ++ ETH_P_TSN = 0x22f0 ++ ETH_P_WAN_PPP = 0x7 ++ ETH_P_WCCP = 0x883e ++ ETH_P_X25 = 0x805 ++ ETH_P_XDSA = 0xf8 ++ EXTA = 0xe ++ EXTB = 0xf ++ EXTPROC = 0x10000 ++ FALLOC_FL_COLLAPSE_RANGE = 0x8 ++ FALLOC_FL_INSERT_RANGE = 0x20 ++ FALLOC_FL_KEEP_SIZE = 0x1 ++ FALLOC_FL_NO_HIDE_STALE = 0x4 ++ FALLOC_FL_PUNCH_HOLE = 0x2 ++ FALLOC_FL_ZERO_RANGE = 0x10 ++ FD_CLOEXEC = 0x1 ++ FD_SETSIZE = 0x400 ++ FLUSHO = 0x2000 ++ F_DUPFD = 0x0 ++ F_DUPFD_CLOEXEC = 0x406 ++ F_EXLCK = 0x4 ++ F_GETFD = 0x1 ++ F_GETFL = 0x3 ++ F_GETLEASE = 0x401 ++ F_GETLK = 0xe ++ F_GETLK64 = 0xe ++ F_GETOWN = 0x17 ++ F_GETOWN_EX = 0x10 ++ F_GETPIPE_SZ = 0x408 ++ F_GETSIG = 0xb ++ F_LOCK = 0x1 ++ F_NOTIFY = 0x402 ++ F_OFD_GETLK = 0x24 ++ F_OFD_SETLK = 0x25 ++ F_OFD_SETLKW = 0x26 ++ F_OK = 0x0 ++ F_RDLCK = 0x0 ++ F_SETFD = 0x2 ++ F_SETFL = 0x4 ++ F_SETLEASE = 0x400 ++ F_SETLK = 0x6 ++ F_SETLK64 = 0x6 ++ F_SETLKW = 0x7 ++ F_SETLKW64 = 0x7 ++ F_SETOWN = 0x18 ++ F_SETOWN_EX = 0xf ++ F_SETPIPE_SZ = 0x407 ++ F_SETSIG = 0xa ++ F_SHLCK = 0x8 ++ F_TEST = 0x3 ++ F_TLOCK = 0x2 ++ F_ULOCK = 0x0 ++ F_UNLCK = 0x2 ++ F_WRLCK = 0x1 ++ GRND_NONBLOCK = 0x1 ++ GRND_RANDOM = 0x2 ++ HUPCL = 0x400 ++ ICANON = 0x2 ++ ICMPV6_FILTER = 0x1 ++ ICRNL = 0x100 ++ IEXTEN = 0x100 ++ IFA_F_DADFAILED = 0x8 ++ IFA_F_DEPRECATED = 0x20 ++ IFA_F_HOMEADDRESS = 0x10 ++ IFA_F_MANAGETEMPADDR = 0x100 ++ IFA_F_MCAUTOJOIN = 0x400 ++ IFA_F_NODAD = 0x2 ++ IFA_F_NOPREFIXROUTE = 0x200 ++ IFA_F_OPTIMISTIC = 0x4 ++ IFA_F_PERMANENT = 0x80 ++ IFA_F_SECONDARY = 0x1 ++ IFA_F_STABLE_PRIVACY = 0x800 ++ IFA_F_TEMPORARY = 0x1 ++ IFA_F_TENTATIVE = 0x40 ++ IFA_MAX = 0x8 ++ IFF_ALLMULTI = 0x200 ++ IFF_ATTACH_QUEUE = 0x200 ++ IFF_AUTOMEDIA = 0x4000 ++ IFF_BROADCAST = 0x2 ++ IFF_DEBUG = 0x4 ++ IFF_DETACH_QUEUE = 0x400 ++ IFF_DORMANT = 0x20000 ++ IFF_DYNAMIC = 0x8000 ++ IFF_ECHO = 0x40000 ++ IFF_LOOPBACK = 0x8 ++ IFF_LOWER_UP = 0x10000 ++ IFF_MASTER = 0x400 ++ IFF_MULTICAST = 0x1000 ++ IFF_MULTI_QUEUE = 0x100 ++ IFF_NOARP = 0x80 ++ IFF_NOFILTER = 0x1000 ++ IFF_NOTRAILERS = 0x20 ++ IFF_NO_PI = 0x1000 ++ IFF_ONE_QUEUE = 0x2000 ++ IFF_PERSIST = 0x800 ++ IFF_POINTOPOINT = 0x10 ++ IFF_PORTSEL = 0x2000 ++ IFF_PROMISC = 0x100 ++ IFF_RUNNING = 0x40 ++ IFF_SLAVE = 0x800 ++ IFF_TAP = 0x2 ++ IFF_TUN = 0x1 ++ IFF_TUN_EXCL = 0x8000 ++ IFF_UP = 0x1 ++ IFF_VNET_HDR = 0x4000 ++ IFF_VOLATILE = 0x70c5a ++ IFNAMSIZ = 0x10 ++ IGNBRK = 0x1 ++ IGNCR = 0x80 ++ IGNPAR = 0x4 ++ IMAXBEL = 0x2000 ++ INLCR = 0x40 ++ INPCK = 0x10 ++ IN_ACCESS = 0x1 ++ IN_ALL_EVENTS = 0xfff ++ IN_ATTRIB = 0x4 ++ IN_CLASSA_HOST = 0xffffff ++ IN_CLASSA_MAX = 0x80 ++ IN_CLASSA_NET = 0xff000000 ++ IN_CLASSA_NSHIFT = 0x18 ++ IN_CLASSB_HOST = 0xffff ++ IN_CLASSB_MAX = 0x10000 ++ IN_CLASSB_NET = 0xffff0000 ++ IN_CLASSB_NSHIFT = 0x10 ++ IN_CLASSC_HOST = 0xff ++ IN_CLASSC_NET = 0xffffff00 ++ IN_CLASSC_NSHIFT = 0x8 ++ IN_CLOEXEC = 0x80000 ++ IN_CLOSE = 0x18 ++ IN_CLOSE_NOWRITE = 0x10 ++ IN_CLOSE_WRITE = 0x8 ++ IN_CREATE = 0x100 ++ IN_DELETE = 0x200 ++ IN_DELETE_SELF = 0x400 ++ IN_DONT_FOLLOW = 0x2000000 ++ IN_EXCL_UNLINK = 0x4000000 ++ IN_IGNORED = 0x8000 ++ IN_ISDIR = 0x40000000 ++ IN_LOOPBACKNET = 0x7f ++ IN_MASK_ADD = 0x20000000 ++ IN_MODIFY = 0x2 ++ IN_MOVE = 0xc0 ++ IN_MOVED_FROM = 0x40 ++ IN_MOVED_TO = 0x80 ++ IN_MOVE_SELF = 0x800 ++ IN_NONBLOCK = 0x80 ++ IN_ONESHOT = 0x80000000 ++ IN_ONLYDIR = 0x1000000 ++ IN_OPEN = 0x20 ++ IN_Q_OVERFLOW = 0x4000 ++ IN_UNMOUNT = 0x2000 ++ IPPROTO_AH = 0x33 ++ IPPROTO_BEETPH = 0x5e ++ IPPROTO_COMP = 0x6c ++ IPPROTO_DCCP = 0x21 ++ IPPROTO_DSTOPTS = 0x3c ++ IPPROTO_EGP = 0x8 ++ IPPROTO_ENCAP = 0x62 ++ IPPROTO_ESP = 0x32 ++ IPPROTO_FRAGMENT = 0x2c ++ IPPROTO_GRE = 0x2f ++ IPPROTO_HOPOPTS = 0x0 ++ IPPROTO_ICMP = 0x1 ++ IPPROTO_ICMPV6 = 0x3a ++ IPPROTO_IDP = 0x16 ++ IPPROTO_IGMP = 0x2 ++ IPPROTO_IP = 0x0 ++ IPPROTO_IPIP = 0x4 ++ IPPROTO_IPV6 = 0x29 ++ IPPROTO_MH = 0x87 ++ IPPROTO_MTP = 0x5c ++ IPPROTO_NONE = 0x3b ++ IPPROTO_PIM = 0x67 ++ IPPROTO_PUP = 0xc ++ IPPROTO_RAW = 0xff ++ IPPROTO_ROUTING = 0x2b ++ IPPROTO_RSVP = 0x2e ++ IPPROTO_SCTP = 0x84 ++ IPPROTO_TCP = 0x6 ++ IPPROTO_TP = 0x1d ++ IPPROTO_UDP = 0x11 ++ IPPROTO_UDPLITE = 0x88 ++ IPV6_2292DSTOPTS = 0x4 ++ IPV6_2292HOPLIMIT = 0x8 ++ IPV6_2292HOPOPTS = 0x3 ++ IPV6_2292PKTINFO = 0x2 ++ IPV6_2292PKTOPTIONS = 0x6 ++ IPV6_2292RTHDR = 0x5 ++ IPV6_ADDRFORM = 0x1 ++ IPV6_ADD_MEMBERSHIP = 0x14 ++ IPV6_AUTHHDR = 0xa ++ IPV6_CHECKSUM = 0x7 ++ IPV6_DONTFRAG = 0x3e ++ IPV6_DROP_MEMBERSHIP = 0x15 ++ IPV6_DSTOPTS = 0x3b ++ IPV6_HOPLIMIT = 0x34 ++ IPV6_HOPOPTS = 0x36 ++ IPV6_IPSEC_POLICY = 0x22 ++ IPV6_JOIN_ANYCAST = 0x1b ++ IPV6_JOIN_GROUP = 0x14 ++ IPV6_LEAVE_ANYCAST = 0x1c ++ IPV6_LEAVE_GROUP = 0x15 ++ IPV6_MTU = 0x18 ++ IPV6_MTU_DISCOVER = 0x17 ++ IPV6_MULTICAST_HOPS = 0x12 ++ IPV6_MULTICAST_IF = 0x11 ++ IPV6_MULTICAST_LOOP = 0x13 ++ IPV6_NEXTHOP = 0x9 ++ IPV6_PATHMTU = 0x3d ++ IPV6_PKTINFO = 0x32 ++ IPV6_PMTUDISC_DO = 0x2 ++ IPV6_PMTUDISC_DONT = 0x0 ++ IPV6_PMTUDISC_INTERFACE = 0x4 ++ IPV6_PMTUDISC_OMIT = 0x5 ++ IPV6_PMTUDISC_PROBE = 0x3 ++ IPV6_PMTUDISC_WANT = 0x1 ++ IPV6_RECVDSTOPTS = 0x3a ++ IPV6_RECVERR = 0x19 ++ IPV6_RECVHOPLIMIT = 0x33 ++ IPV6_RECVHOPOPTS = 0x35 ++ IPV6_RECVPATHMTU = 0x3c ++ IPV6_RECVPKTINFO = 0x31 ++ IPV6_RECVRTHDR = 0x38 ++ IPV6_RECVTCLASS = 0x42 ++ IPV6_ROUTER_ALERT = 0x16 ++ IPV6_RTHDR = 0x39 ++ IPV6_RTHDRDSTOPTS = 0x37 ++ IPV6_RTHDR_LOOSE = 0x0 ++ IPV6_RTHDR_STRICT = 0x1 ++ IPV6_RTHDR_TYPE_0 = 0x0 ++ IPV6_RXDSTOPTS = 0x3b ++ IPV6_RXHOPOPTS = 0x36 ++ IPV6_TCLASS = 0x43 ++ IPV6_UNICAST_HOPS = 0x10 ++ IPV6_V6ONLY = 0x1a ++ IPV6_XFRM_POLICY = 0x23 ++ IP_ADD_MEMBERSHIP = 0x23 ++ IP_ADD_SOURCE_MEMBERSHIP = 0x27 ++ IP_BLOCK_SOURCE = 0x26 ++ IP_CHECKSUM = 0x17 ++ IP_DEFAULT_MULTICAST_LOOP = 0x1 ++ IP_DEFAULT_MULTICAST_TTL = 0x1 ++ IP_DF = 0x4000 ++ IP_DROP_MEMBERSHIP = 0x24 ++ IP_DROP_SOURCE_MEMBERSHIP = 0x28 ++ IP_FREEBIND = 0xf ++ IP_HDRINCL = 0x3 ++ IP_IPSEC_POLICY = 0x10 ++ IP_MAXPACKET = 0xffff ++ IP_MAX_MEMBERSHIPS = 0x14 ++ IP_MF = 0x2000 ++ IP_MINTTL = 0x15 ++ IP_MSFILTER = 0x29 ++ IP_MSS = 0x240 ++ IP_MTU = 0xe ++ IP_MTU_DISCOVER = 0xa ++ IP_MULTICAST_ALL = 0x31 ++ IP_MULTICAST_IF = 0x20 ++ IP_MULTICAST_LOOP = 0x22 ++ IP_MULTICAST_TTL = 0x21 ++ IP_NODEFRAG = 0x16 ++ IP_OFFMASK = 0x1fff ++ IP_OPTIONS = 0x4 ++ IP_ORIGDSTADDR = 0x14 ++ IP_PASSSEC = 0x12 ++ IP_PKTINFO = 0x8 ++ IP_PKTOPTIONS = 0x9 ++ IP_PMTUDISC = 0xa ++ IP_PMTUDISC_DO = 0x2 ++ IP_PMTUDISC_DONT = 0x0 ++ IP_PMTUDISC_INTERFACE = 0x4 ++ IP_PMTUDISC_OMIT = 0x5 ++ IP_PMTUDISC_PROBE = 0x3 ++ IP_PMTUDISC_WANT = 0x1 ++ IP_RECVERR = 0xb ++ IP_RECVOPTS = 0x6 ++ IP_RECVORIGDSTADDR = 0x14 ++ IP_RECVRETOPTS = 0x7 ++ IP_RECVTOS = 0xd ++ IP_RECVTTL = 0xc ++ IP_RETOPTS = 0x7 ++ IP_RF = 0x8000 ++ IP_ROUTER_ALERT = 0x5 ++ IP_TOS = 0x1 ++ IP_TRANSPARENT = 0x13 ++ IP_TTL = 0x2 ++ IP_UNBLOCK_SOURCE = 0x25 ++ IP_UNICAST_IF = 0x32 ++ IP_XFRM_POLICY = 0x11 ++ ISIG = 0x1 ++ ISTRIP = 0x20 ++ IUTF8 = 0x4000 ++ IXANY = 0x800 ++ IXOFF = 0x1000 ++ IXON = 0x400 ++ LINUX_REBOOT_CMD_CAD_OFF = 0x0 ++ LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef ++ LINUX_REBOOT_CMD_HALT = 0xcdef0123 ++ LINUX_REBOOT_CMD_KEXEC = 0x45584543 ++ LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc ++ LINUX_REBOOT_CMD_RESTART = 0x1234567 ++ LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 ++ LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 ++ LINUX_REBOOT_MAGIC1 = 0xfee1dead ++ LINUX_REBOOT_MAGIC2 = 0x28121969 ++ LOCK_EX = 0x2 ++ LOCK_NB = 0x4 ++ LOCK_SH = 0x1 ++ LOCK_UN = 0x8 ++ MADV_DODUMP = 0x11 ++ MADV_DOFORK = 0xb ++ MADV_DONTDUMP = 0x10 ++ MADV_DONTFORK = 0xa ++ MADV_DONTNEED = 0x4 ++ MADV_HUGEPAGE = 0xe ++ MADV_HWPOISON = 0x64 ++ MADV_MERGEABLE = 0xc ++ MADV_NOHUGEPAGE = 0xf ++ MADV_NORMAL = 0x0 ++ MADV_RANDOM = 0x1 ++ MADV_REMOVE = 0x9 ++ MADV_SEQUENTIAL = 0x2 ++ MADV_UNMERGEABLE = 0xd ++ MADV_WILLNEED = 0x3 ++ MAP_ANON = 0x800 ++ MAP_ANONYMOUS = 0x800 ++ MAP_DENYWRITE = 0x2000 ++ MAP_EXECUTABLE = 0x4000 ++ MAP_FILE = 0x0 ++ MAP_FIXED = 0x10 ++ MAP_GROWSDOWN = 0x1000 ++ MAP_HUGETLB = 0x80000 ++ MAP_HUGE_MASK = 0x3f ++ MAP_HUGE_SHIFT = 0x1a ++ MAP_LOCKED = 0x8000 ++ MAP_NONBLOCK = 0x20000 ++ MAP_NORESERVE = 0x400 ++ MAP_POPULATE = 0x10000 ++ MAP_PRIVATE = 0x2 ++ MAP_RENAME = 0x800 ++ MAP_SHARED = 0x1 ++ MAP_STACK = 0x40000 ++ MAP_TYPE = 0xf ++ MCL_CURRENT = 0x1 ++ MCL_FUTURE = 0x2 ++ MNT_DETACH = 0x2 ++ MNT_EXPIRE = 0x4 ++ MNT_FORCE = 0x1 ++ MSG_CMSG_CLOEXEC = 0x40000000 ++ MSG_CONFIRM = 0x800 ++ MSG_CTRUNC = 0x8 ++ MSG_DONTROUTE = 0x4 ++ MSG_DONTWAIT = 0x40 ++ MSG_EOR = 0x80 ++ MSG_ERRQUEUE = 0x2000 ++ MSG_FASTOPEN = 0x20000000 ++ MSG_FIN = 0x200 ++ MSG_MORE = 0x8000 ++ MSG_NOSIGNAL = 0x4000 ++ MSG_OOB = 0x1 ++ MSG_PEEK = 0x2 ++ MSG_PROXY = 0x10 ++ MSG_RST = 0x1000 ++ MSG_SYN = 0x400 ++ MSG_TRUNC = 0x20 ++ MSG_TRYHARD = 0x4 ++ MSG_WAITALL = 0x100 ++ MSG_WAITFORONE = 0x10000 ++ MS_ACTIVE = 0x40000000 ++ MS_ASYNC = 0x1 ++ MS_BIND = 0x1000 ++ MS_DIRSYNC = 0x80 ++ MS_INVALIDATE = 0x2 ++ MS_I_VERSION = 0x800000 ++ MS_KERNMOUNT = 0x400000 ++ MS_LAZYTIME = 0x2000000 ++ MS_MANDLOCK = 0x40 ++ MS_MGC_MSK = 0xffff0000 ++ MS_MGC_VAL = 0xc0ed0000 ++ MS_MOVE = 0x2000 ++ MS_NOATIME = 0x400 ++ MS_NODEV = 0x4 ++ MS_NODIRATIME = 0x800 ++ MS_NOEXEC = 0x8 ++ MS_NOSUID = 0x2 ++ MS_NOUSER = -0x80000000 ++ MS_POSIXACL = 0x10000 ++ MS_PRIVATE = 0x40000 ++ MS_RDONLY = 0x1 ++ MS_REC = 0x4000 ++ MS_RELATIME = 0x200000 ++ MS_REMOUNT = 0x20 ++ MS_RMT_MASK = 0x2800051 ++ MS_SHARED = 0x100000 ++ MS_SILENT = 0x8000 ++ MS_SLAVE = 0x80000 ++ MS_STRICTATIME = 0x1000000 ++ MS_SYNC = 0x4 ++ MS_SYNCHRONOUS = 0x10 ++ MS_UNBINDABLE = 0x20000 ++ NAME_MAX = 0xff ++ NETLINK_ADD_MEMBERSHIP = 0x1 ++ NETLINK_AUDIT = 0x9 ++ NETLINK_BROADCAST_ERROR = 0x4 ++ NETLINK_CAP_ACK = 0xa ++ NETLINK_CONNECTOR = 0xb ++ NETLINK_CRYPTO = 0x15 ++ NETLINK_DNRTMSG = 0xe ++ NETLINK_DROP_MEMBERSHIP = 0x2 ++ NETLINK_ECRYPTFS = 0x13 ++ NETLINK_FIB_LOOKUP = 0xa ++ NETLINK_FIREWALL = 0x3 ++ NETLINK_GENERIC = 0x10 ++ NETLINK_INET_DIAG = 0x4 ++ NETLINK_IP6_FW = 0xd ++ NETLINK_ISCSI = 0x8 ++ NETLINK_KOBJECT_UEVENT = 0xf ++ NETLINK_LISTEN_ALL_NSID = 0x8 ++ NETLINK_LIST_MEMBERSHIPS = 0x9 ++ NETLINK_NETFILTER = 0xc ++ NETLINK_NFLOG = 0x5 ++ NETLINK_NO_ENOBUFS = 0x5 ++ NETLINK_PKTINFO = 0x3 ++ NETLINK_RDMA = 0x14 ++ NETLINK_ROUTE = 0x0 ++ NETLINK_RX_RING = 0x6 ++ NETLINK_SCSITRANSPORT = 0x12 ++ NETLINK_SELINUX = 0x7 ++ NETLINK_SOCK_DIAG = 0x4 ++ NETLINK_TX_RING = 0x7 ++ NETLINK_UNUSED = 0x1 ++ NETLINK_USERSOCK = 0x2 ++ NETLINK_XFRM = 0x6 ++ NLA_ALIGNTO = 0x4 ++ NLA_F_NESTED = 0x8000 ++ NLA_F_NET_BYTEORDER = 0x4000 ++ NLA_HDRLEN = 0x4 ++ NLMSG_ALIGNTO = 0x4 ++ NLMSG_DONE = 0x3 ++ NLMSG_ERROR = 0x2 ++ NLMSG_HDRLEN = 0x10 ++ NLMSG_MIN_TYPE = 0x10 ++ NLMSG_NOOP = 0x1 ++ NLMSG_OVERRUN = 0x4 ++ NLM_F_ACK = 0x4 ++ NLM_F_APPEND = 0x800 ++ NLM_F_ATOMIC = 0x400 ++ NLM_F_CREATE = 0x400 ++ NLM_F_DUMP = 0x300 ++ NLM_F_DUMP_FILTERED = 0x20 ++ NLM_F_DUMP_INTR = 0x10 ++ NLM_F_ECHO = 0x8 ++ NLM_F_EXCL = 0x200 ++ NLM_F_MATCH = 0x200 ++ NLM_F_MULTI = 0x2 ++ NLM_F_REPLACE = 0x100 ++ NLM_F_REQUEST = 0x1 ++ NLM_F_ROOT = 0x100 ++ NOFLSH = 0x80 ++ OCRNL = 0x8 ++ OFDEL = 0x80 ++ OFILL = 0x40 ++ ONLCR = 0x4 ++ ONLRET = 0x20 ++ ONOCR = 0x10 ++ OPOST = 0x1 ++ O_ACCMODE = 0x3 ++ O_APPEND = 0x8 ++ O_ASYNC = 0x1000 ++ O_CLOEXEC = 0x80000 ++ O_CREAT = 0x100 ++ O_DIRECT = 0x8000 ++ O_DIRECTORY = 0x10000 ++ O_DSYNC = 0x10 ++ O_EXCL = 0x400 ++ O_FSYNC = 0x4010 ++ O_LARGEFILE = 0x0 ++ O_NDELAY = 0x80 ++ O_NOATIME = 0x40000 ++ O_NOCTTY = 0x800 ++ O_NOFOLLOW = 0x20000 ++ O_NONBLOCK = 0x80 ++ O_PATH = 0x200000 ++ O_RDONLY = 0x0 ++ O_RDWR = 0x2 ++ O_RSYNC = 0x4010 ++ O_SYNC = 0x4010 ++ O_TMPFILE = 0x410000 ++ O_TRUNC = 0x200 ++ O_WRONLY = 0x1 ++ PACKET_ADD_MEMBERSHIP = 0x1 ++ PACKET_AUXDATA = 0x8 ++ PACKET_BROADCAST = 0x1 ++ PACKET_COPY_THRESH = 0x7 ++ PACKET_DROP_MEMBERSHIP = 0x2 ++ PACKET_FANOUT = 0x12 ++ PACKET_FANOUT_CBPF = 0x6 ++ PACKET_FANOUT_CPU = 0x2 ++ PACKET_FANOUT_DATA = 0x16 ++ PACKET_FANOUT_EBPF = 0x7 ++ PACKET_FANOUT_FLAG_DEFRAG = 0x8000 ++ PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 ++ PACKET_FANOUT_HASH = 0x0 ++ PACKET_FANOUT_LB = 0x1 ++ PACKET_FANOUT_QM = 0x5 ++ PACKET_FANOUT_RND = 0x4 ++ PACKET_FANOUT_ROLLOVER = 0x3 ++ PACKET_FASTROUTE = 0x6 ++ PACKET_HDRLEN = 0xb ++ PACKET_HOST = 0x0 ++ PACKET_KERNEL = 0x7 ++ PACKET_LOOPBACK = 0x5 ++ PACKET_LOSS = 0xe ++ PACKET_MR_ALLMULTI = 0x2 ++ PACKET_MR_MULTICAST = 0x0 ++ PACKET_MR_PROMISC = 0x1 ++ PACKET_MR_UNICAST = 0x3 ++ PACKET_MULTICAST = 0x2 ++ PACKET_ORIGDEV = 0x9 ++ PACKET_OTHERHOST = 0x3 ++ PACKET_OUTGOING = 0x4 ++ PACKET_QDISC_BYPASS = 0x14 ++ PACKET_RECV_OUTPUT = 0x3 ++ PACKET_RESERVE = 0xc ++ PACKET_ROLLOVER_STATS = 0x15 ++ PACKET_RX_RING = 0x5 ++ PACKET_STATISTICS = 0x6 ++ PACKET_TIMESTAMP = 0x11 ++ PACKET_TX_HAS_OFF = 0x13 ++ PACKET_TX_RING = 0xd ++ PACKET_TX_TIMESTAMP = 0x10 ++ PACKET_USER = 0x6 ++ PACKET_VERSION = 0xa ++ PACKET_VNET_HDR = 0xf ++ PARENB = 0x100 ++ PARITY_CRC16_PR0 = 0x2 ++ PARITY_CRC16_PR0_CCITT = 0x4 ++ PARITY_CRC16_PR1 = 0x3 ++ PARITY_CRC16_PR1_CCITT = 0x5 ++ PARITY_CRC32_PR0_CCITT = 0x6 ++ PARITY_CRC32_PR1_CCITT = 0x7 ++ PARITY_DEFAULT = 0x0 ++ PARITY_NONE = 0x1 ++ PARMRK = 0x8 ++ PARODD = 0x200 ++ PENDIN = 0x4000 ++ PRIO_PGRP = 0x1 ++ PRIO_PROCESS = 0x0 ++ PRIO_USER = 0x2 ++ PROT_EXEC = 0x4 ++ PROT_GROWSDOWN = 0x1000000 ++ PROT_GROWSUP = 0x2000000 ++ PROT_NONE = 0x0 ++ PROT_READ = 0x1 ++ PROT_WRITE = 0x2 ++ PR_CAPBSET_DROP = 0x18 ++ PR_CAPBSET_READ = 0x17 ++ PR_CAP_AMBIENT = 0x2f ++ PR_CAP_AMBIENT_CLEAR_ALL = 0x4 ++ PR_CAP_AMBIENT_IS_SET = 0x1 ++ PR_CAP_AMBIENT_LOWER = 0x3 ++ PR_CAP_AMBIENT_RAISE = 0x2 ++ PR_ENDIAN_BIG = 0x0 ++ PR_ENDIAN_LITTLE = 0x1 ++ PR_ENDIAN_PPC_LITTLE = 0x2 ++ PR_FPEMU_NOPRINT = 0x1 ++ PR_FPEMU_SIGFPE = 0x2 ++ PR_FP_EXC_ASYNC = 0x2 ++ PR_FP_EXC_DISABLED = 0x0 ++ PR_FP_EXC_DIV = 0x10000 ++ PR_FP_EXC_INV = 0x100000 ++ PR_FP_EXC_NONRECOV = 0x1 ++ PR_FP_EXC_OVF = 0x20000 ++ PR_FP_EXC_PRECISE = 0x3 ++ PR_FP_EXC_RES = 0x80000 ++ PR_FP_EXC_SW_ENABLE = 0x80 ++ PR_FP_EXC_UND = 0x40000 ++ PR_FP_MODE_FR = 0x1 ++ PR_FP_MODE_FRE = 0x2 ++ PR_GET_CHILD_SUBREAPER = 0x25 ++ PR_GET_DUMPABLE = 0x3 ++ PR_GET_ENDIAN = 0x13 ++ PR_GET_FPEMU = 0x9 ++ PR_GET_FPEXC = 0xb ++ PR_GET_FP_MODE = 0x2e ++ PR_GET_KEEPCAPS = 0x7 ++ PR_GET_NAME = 0x10 ++ PR_GET_NO_NEW_PRIVS = 0x27 ++ PR_GET_PDEATHSIG = 0x2 ++ PR_GET_SECCOMP = 0x15 ++ PR_GET_SECUREBITS = 0x1b ++ PR_GET_THP_DISABLE = 0x2a ++ PR_GET_TID_ADDRESS = 0x28 ++ PR_GET_TIMERSLACK = 0x1e ++ PR_GET_TIMING = 0xd ++ PR_GET_TSC = 0x19 ++ PR_GET_UNALIGN = 0x5 ++ PR_MCE_KILL = 0x21 ++ PR_MCE_KILL_CLEAR = 0x0 ++ PR_MCE_KILL_DEFAULT = 0x2 ++ PR_MCE_KILL_EARLY = 0x1 ++ PR_MCE_KILL_GET = 0x22 ++ PR_MCE_KILL_LATE = 0x0 ++ PR_MCE_KILL_SET = 0x1 ++ PR_MPX_DISABLE_MANAGEMENT = 0x2c ++ PR_MPX_ENABLE_MANAGEMENT = 0x2b ++ PR_SET_CHILD_SUBREAPER = 0x24 ++ PR_SET_DUMPABLE = 0x4 ++ PR_SET_ENDIAN = 0x14 ++ PR_SET_FPEMU = 0xa ++ PR_SET_FPEXC = 0xc ++ PR_SET_FP_MODE = 0x2d ++ PR_SET_KEEPCAPS = 0x8 ++ PR_SET_MM = 0x23 ++ PR_SET_MM_ARG_END = 0x9 ++ PR_SET_MM_ARG_START = 0x8 ++ PR_SET_MM_AUXV = 0xc ++ PR_SET_MM_BRK = 0x7 ++ PR_SET_MM_END_CODE = 0x2 ++ PR_SET_MM_END_DATA = 0x4 ++ PR_SET_MM_ENV_END = 0xb ++ PR_SET_MM_ENV_START = 0xa ++ PR_SET_MM_EXE_FILE = 0xd ++ PR_SET_MM_MAP = 0xe ++ PR_SET_MM_MAP_SIZE = 0xf ++ PR_SET_MM_START_BRK = 0x6 ++ PR_SET_MM_START_CODE = 0x1 ++ PR_SET_MM_START_DATA = 0x3 ++ PR_SET_MM_START_STACK = 0x5 ++ PR_SET_NAME = 0xf ++ PR_SET_NO_NEW_PRIVS = 0x26 ++ PR_SET_PDEATHSIG = 0x1 ++ PR_SET_PTRACER = 0x59616d61 ++ PR_SET_PTRACER_ANY = -0x1 ++ PR_SET_SECCOMP = 0x16 ++ PR_SET_SECUREBITS = 0x1c ++ PR_SET_THP_DISABLE = 0x29 ++ PR_SET_TIMERSLACK = 0x1d ++ PR_SET_TIMING = 0xe ++ PR_SET_TSC = 0x1a ++ PR_SET_UNALIGN = 0x6 ++ PR_TASK_PERF_EVENTS_DISABLE = 0x1f ++ PR_TASK_PERF_EVENTS_ENABLE = 0x20 ++ PR_TIMING_STATISTICAL = 0x0 ++ PR_TIMING_TIMESTAMP = 0x1 ++ PR_TSC_ENABLE = 0x1 ++ PR_TSC_SIGSEGV = 0x2 ++ PR_UNALIGN_NOPRINT = 0x1 ++ PR_UNALIGN_SIGBUS = 0x2 ++ PTRACE_ATTACH = 0x10 ++ PTRACE_CONT = 0x7 ++ PTRACE_DETACH = 0x11 ++ PTRACE_EVENT_CLONE = 0x3 ++ PTRACE_EVENT_EXEC = 0x4 ++ PTRACE_EVENT_EXIT = 0x6 ++ PTRACE_EVENT_FORK = 0x1 ++ PTRACE_EVENT_SECCOMP = 0x7 ++ PTRACE_EVENT_STOP = 0x80 ++ PTRACE_EVENT_VFORK = 0x2 ++ PTRACE_EVENT_VFORK_DONE = 0x5 ++ PTRACE_GETEVENTMSG = 0x4201 ++ PTRACE_GETFPREGS = 0xe ++ PTRACE_GETREGS = 0xc ++ PTRACE_GETREGSET = 0x4204 ++ PTRACE_GETSIGINFO = 0x4202 ++ PTRACE_GETSIGMASK = 0x420a ++ PTRACE_GET_THREAD_AREA = 0x19 ++ PTRACE_GET_THREAD_AREA_3264 = 0xc4 ++ PTRACE_GET_WATCH_REGS = 0xd0 ++ PTRACE_INTERRUPT = 0x4207 ++ PTRACE_KILL = 0x8 ++ PTRACE_LISTEN = 0x4208 ++ PTRACE_OLDSETOPTIONS = 0x15 ++ PTRACE_O_EXITKILL = 0x100000 ++ PTRACE_O_MASK = 0x3000ff ++ PTRACE_O_SUSPEND_SECCOMP = 0x200000 ++ PTRACE_O_TRACECLONE = 0x8 ++ PTRACE_O_TRACEEXEC = 0x10 ++ PTRACE_O_TRACEEXIT = 0x40 ++ PTRACE_O_TRACEFORK = 0x2 ++ PTRACE_O_TRACESECCOMP = 0x80 ++ PTRACE_O_TRACESYSGOOD = 0x1 ++ PTRACE_O_TRACEVFORK = 0x4 ++ PTRACE_O_TRACEVFORKDONE = 0x20 ++ PTRACE_PEEKDATA = 0x2 ++ PTRACE_PEEKDATA_3264 = 0xc1 ++ PTRACE_PEEKSIGINFO = 0x4209 ++ PTRACE_PEEKSIGINFO_SHARED = 0x1 ++ PTRACE_PEEKTEXT = 0x1 ++ PTRACE_PEEKTEXT_3264 = 0xc0 ++ PTRACE_PEEKUSR = 0x3 ++ PTRACE_POKEDATA = 0x5 ++ PTRACE_POKEDATA_3264 = 0xc3 ++ PTRACE_POKETEXT = 0x4 ++ PTRACE_POKETEXT_3264 = 0xc2 ++ PTRACE_POKEUSR = 0x6 ++ PTRACE_SEIZE = 0x4206 ++ PTRACE_SETFPREGS = 0xf ++ PTRACE_SETOPTIONS = 0x4200 ++ PTRACE_SETREGS = 0xd ++ PTRACE_SETREGSET = 0x4205 ++ PTRACE_SETSIGINFO = 0x4203 ++ PTRACE_SETSIGMASK = 0x420b ++ PTRACE_SET_THREAD_AREA = 0x1a ++ PTRACE_SET_WATCH_REGS = 0xd1 ++ PTRACE_SINGLESTEP = 0x9 ++ PTRACE_SYSCALL = 0x18 ++ PTRACE_TRACEME = 0x0 ++ RLIMIT_AS = 0x6 ++ RLIMIT_CORE = 0x4 ++ RLIMIT_CPU = 0x0 ++ RLIMIT_DATA = 0x2 ++ RLIMIT_FSIZE = 0x1 ++ RLIMIT_NOFILE = 0x5 ++ RLIMIT_STACK = 0x3 ++ RLIM_INFINITY = -0x1 ++ RTAX_ADVMSS = 0x8 ++ RTAX_CC_ALGO = 0x10 ++ RTAX_CWND = 0x7 ++ RTAX_FEATURES = 0xc ++ RTAX_FEATURE_ALLFRAG = 0x8 ++ RTAX_FEATURE_ECN = 0x1 ++ RTAX_FEATURE_MASK = 0xf ++ RTAX_FEATURE_SACK = 0x2 ++ RTAX_FEATURE_TIMESTAMP = 0x4 ++ RTAX_HOPLIMIT = 0xa ++ RTAX_INITCWND = 0xb ++ RTAX_INITRWND = 0xe ++ RTAX_LOCK = 0x1 ++ RTAX_MAX = 0x10 ++ RTAX_MTU = 0x2 ++ RTAX_QUICKACK = 0xf ++ RTAX_REORDERING = 0x9 ++ RTAX_RTO_MIN = 0xd ++ RTAX_RTT = 0x4 ++ RTAX_RTTVAR = 0x5 ++ RTAX_SSTHRESH = 0x6 ++ RTAX_UNSPEC = 0x0 ++ RTAX_WINDOW = 0x3 ++ RTA_ALIGNTO = 0x4 ++ RTA_MAX = 0x16 ++ RTCF_DIRECTSRC = 0x4000000 ++ RTCF_DOREDIRECT = 0x1000000 ++ RTCF_LOG = 0x2000000 ++ RTCF_MASQ = 0x400000 ++ RTCF_NAT = 0x800000 ++ RTCF_VALVE = 0x200000 ++ RTF_ADDRCLASSMASK = 0xf8000000 ++ RTF_ADDRCONF = 0x40000 ++ RTF_ALLONLINK = 0x20000 ++ RTF_BROADCAST = 0x10000000 ++ RTF_CACHE = 0x1000000 ++ RTF_DEFAULT = 0x10000 ++ RTF_DYNAMIC = 0x10 ++ RTF_FLOW = 0x2000000 ++ RTF_GATEWAY = 0x2 ++ RTF_HOST = 0x4 ++ RTF_INTERFACE = 0x40000000 ++ RTF_IRTT = 0x100 ++ RTF_LINKRT = 0x100000 ++ RTF_LOCAL = 0x80000000 ++ RTF_MODIFIED = 0x20 ++ RTF_MSS = 0x40 ++ RTF_MTU = 0x40 ++ RTF_MULTICAST = 0x20000000 ++ RTF_NAT = 0x8000000 ++ RTF_NOFORWARD = 0x1000 ++ RTF_NONEXTHOP = 0x200000 ++ RTF_NOPMTUDISC = 0x4000 ++ RTF_POLICY = 0x4000000 ++ RTF_REINSTATE = 0x8 ++ RTF_REJECT = 0x200 ++ RTF_STATIC = 0x400 ++ RTF_THROW = 0x2000 ++ RTF_UP = 0x1 ++ RTF_WINDOW = 0x80 ++ RTF_XRESOLVE = 0x800 ++ RTM_BASE = 0x10 ++ RTM_DELACTION = 0x31 ++ RTM_DELADDR = 0x15 ++ RTM_DELADDRLABEL = 0x49 ++ RTM_DELLINK = 0x11 ++ RTM_DELMDB = 0x55 ++ RTM_DELNEIGH = 0x1d ++ RTM_DELNSID = 0x59 ++ RTM_DELQDISC = 0x25 ++ RTM_DELROUTE = 0x19 ++ RTM_DELRULE = 0x21 ++ RTM_DELTCLASS = 0x29 ++ RTM_DELTFILTER = 0x2d ++ RTM_F_CLONED = 0x200 ++ RTM_F_EQUALIZE = 0x400 ++ RTM_F_NOTIFY = 0x100 ++ RTM_F_PREFIX = 0x800 ++ RTM_GETACTION = 0x32 ++ RTM_GETADDR = 0x16 ++ RTM_GETADDRLABEL = 0x4a ++ RTM_GETANYCAST = 0x3e ++ RTM_GETDCB = 0x4e ++ RTM_GETLINK = 0x12 ++ RTM_GETMDB = 0x56 ++ RTM_GETMULTICAST = 0x3a ++ RTM_GETNEIGH = 0x1e ++ RTM_GETNEIGHTBL = 0x42 ++ RTM_GETNETCONF = 0x52 ++ RTM_GETNSID = 0x5a ++ RTM_GETQDISC = 0x26 ++ RTM_GETROUTE = 0x1a ++ RTM_GETRULE = 0x22 ++ RTM_GETTCLASS = 0x2a ++ RTM_GETTFILTER = 0x2e ++ RTM_MAX = 0x5b ++ RTM_NEWACTION = 0x30 ++ RTM_NEWADDR = 0x14 ++ RTM_NEWADDRLABEL = 0x48 ++ RTM_NEWLINK = 0x10 ++ RTM_NEWMDB = 0x54 ++ RTM_NEWNDUSEROPT = 0x44 ++ RTM_NEWNEIGH = 0x1c ++ RTM_NEWNEIGHTBL = 0x40 ++ RTM_NEWNETCONF = 0x50 ++ RTM_NEWNSID = 0x58 ++ RTM_NEWPREFIX = 0x34 ++ RTM_NEWQDISC = 0x24 ++ RTM_NEWROUTE = 0x18 ++ RTM_NEWRULE = 0x20 ++ RTM_NEWTCLASS = 0x28 ++ RTM_NEWTFILTER = 0x2c ++ RTM_NR_FAMILIES = 0x13 ++ RTM_NR_MSGTYPES = 0x4c ++ RTM_SETDCB = 0x4f ++ RTM_SETLINK = 0x13 ++ RTM_SETNEIGHTBL = 0x43 ++ RTNH_ALIGNTO = 0x4 ++ RTNH_COMPARE_MASK = 0x11 ++ RTNH_F_DEAD = 0x1 ++ RTNH_F_LINKDOWN = 0x10 ++ RTNH_F_OFFLOAD = 0x8 ++ RTNH_F_ONLINK = 0x4 ++ RTNH_F_PERVASIVE = 0x2 ++ RTN_MAX = 0xb ++ RTPROT_BABEL = 0x2a ++ RTPROT_BIRD = 0xc ++ RTPROT_BOOT = 0x3 ++ RTPROT_DHCP = 0x10 ++ RTPROT_DNROUTED = 0xd ++ RTPROT_GATED = 0x8 ++ RTPROT_KERNEL = 0x2 ++ RTPROT_MROUTED = 0x11 ++ RTPROT_MRT = 0xa ++ RTPROT_NTK = 0xf ++ RTPROT_RA = 0x9 ++ RTPROT_REDIRECT = 0x1 ++ RTPROT_STATIC = 0x4 ++ RTPROT_UNSPEC = 0x0 ++ RTPROT_XORP = 0xe ++ RTPROT_ZEBRA = 0xb ++ RT_CLASS_DEFAULT = 0xfd ++ RT_CLASS_LOCAL = 0xff ++ RT_CLASS_MAIN = 0xfe ++ RT_CLASS_MAX = 0xff ++ RT_CLASS_UNSPEC = 0x0 ++ RUSAGE_CHILDREN = -0x1 ++ RUSAGE_SELF = 0x0 ++ RUSAGE_THREAD = 0x1 ++ SCM_CREDENTIALS = 0x2 ++ SCM_RIGHTS = 0x1 ++ SCM_TIMESTAMP = 0x1d ++ SCM_TIMESTAMPING = 0x25 ++ SCM_TIMESTAMPNS = 0x23 ++ SCM_WIFI_STATUS = 0x29 ++ SHUT_RD = 0x0 ++ SHUT_RDWR = 0x2 ++ SHUT_WR = 0x1 ++ SIOCADDDLCI = 0x8980 ++ SIOCADDMULTI = 0x8931 ++ SIOCADDRT = 0x890b ++ SIOCATMARK = 0x40047307 ++ SIOCDARP = 0x8953 ++ SIOCDELDLCI = 0x8981 ++ SIOCDELMULTI = 0x8932 ++ SIOCDELRT = 0x890c ++ SIOCDEVPRIVATE = 0x89f0 ++ SIOCDIFADDR = 0x8936 ++ SIOCDRARP = 0x8960 ++ SIOCGARP = 0x8954 ++ SIOCGIFADDR = 0x8915 ++ SIOCGIFBR = 0x8940 ++ SIOCGIFBRDADDR = 0x8919 ++ SIOCGIFCONF = 0x8912 ++ SIOCGIFCOUNT = 0x8938 ++ SIOCGIFDSTADDR = 0x8917 ++ SIOCGIFENCAP = 0x8925 ++ SIOCGIFFLAGS = 0x8913 ++ SIOCGIFHWADDR = 0x8927 ++ SIOCGIFINDEX = 0x8933 ++ SIOCGIFMAP = 0x8970 ++ SIOCGIFMEM = 0x891f ++ SIOCGIFMETRIC = 0x891d ++ SIOCGIFMTU = 0x8921 ++ SIOCGIFNAME = 0x8910 ++ SIOCGIFNETMASK = 0x891b ++ SIOCGIFPFLAGS = 0x8935 ++ SIOCGIFSLAVE = 0x8929 ++ SIOCGIFTXQLEN = 0x8942 ++ SIOCGPGRP = 0x40047309 ++ SIOCGRARP = 0x8961 ++ SIOCGSTAMP = 0x8906 ++ SIOCGSTAMPNS = 0x8907 ++ SIOCPROTOPRIVATE = 0x89e0 ++ SIOCRTMSG = 0x890d ++ SIOCSARP = 0x8955 ++ SIOCSIFADDR = 0x8916 ++ SIOCSIFBR = 0x8941 ++ SIOCSIFBRDADDR = 0x891a ++ SIOCSIFDSTADDR = 0x8918 ++ SIOCSIFENCAP = 0x8926 ++ SIOCSIFFLAGS = 0x8914 ++ SIOCSIFHWADDR = 0x8924 ++ SIOCSIFHWBROADCAST = 0x8937 ++ SIOCSIFLINK = 0x8911 ++ SIOCSIFMAP = 0x8971 ++ SIOCSIFMEM = 0x8920 ++ SIOCSIFMETRIC = 0x891e ++ SIOCSIFMTU = 0x8922 ++ SIOCSIFNAME = 0x8923 ++ SIOCSIFNETMASK = 0x891c ++ SIOCSIFPFLAGS = 0x8934 ++ SIOCSIFSLAVE = 0x8930 ++ SIOCSIFTXQLEN = 0x8943 ++ SIOCSPGRP = 0x80047308 ++ SIOCSRARP = 0x8962 ++ SOCK_CLOEXEC = 0x80000 ++ SOCK_DCCP = 0x6 ++ SOCK_DGRAM = 0x1 ++ SOCK_NONBLOCK = 0x80 ++ SOCK_PACKET = 0xa ++ SOCK_RAW = 0x3 ++ SOCK_RDM = 0x4 ++ SOCK_SEQPACKET = 0x5 ++ SOCK_STREAM = 0x2 ++ SOL_AAL = 0x109 ++ SOL_ATM = 0x108 ++ SOL_DECNET = 0x105 ++ SOL_ICMPV6 = 0x3a ++ SOL_IP = 0x0 ++ SOL_IPV6 = 0x29 ++ SOL_IRDA = 0x10a ++ SOL_NETLINK = 0x10e ++ SOL_PACKET = 0x107 ++ SOL_RAW = 0xff ++ SOL_SOCKET = 0xffff ++ SOL_TCP = 0x6 ++ SOL_X25 = 0x106 ++ SOMAXCONN = 0x80 ++ SO_ACCEPTCONN = 0x1009 ++ SO_ATTACH_BPF = 0x32 ++ SO_ATTACH_FILTER = 0x1a ++ SO_BINDTODEVICE = 0x19 ++ SO_BPF_EXTENSIONS = 0x30 ++ SO_BROADCAST = 0x20 ++ SO_BSDCOMPAT = 0xe ++ SO_BUSY_POLL = 0x2e ++ SO_DEBUG = 0x1 ++ SO_DETACH_BPF = 0x1b ++ SO_DETACH_FILTER = 0x1b ++ SO_DOMAIN = 0x1029 ++ SO_DONTROUTE = 0x10 ++ SO_ERROR = 0x1007 ++ SO_GET_FILTER = 0x1a ++ SO_INCOMING_CPU = 0x31 ++ SO_KEEPALIVE = 0x8 ++ SO_LINGER = 0x80 ++ SO_LOCK_FILTER = 0x2c ++ SO_MARK = 0x24 ++ SO_MAX_PACING_RATE = 0x2f ++ SO_NOFCS = 0x2b ++ SO_NO_CHECK = 0xb ++ SO_OOBINLINE = 0x100 ++ SO_PASSCRED = 0x11 ++ SO_PASSSEC = 0x22 ++ SO_PEEK_OFF = 0x2a ++ SO_PEERCRED = 0x12 ++ SO_PEERNAME = 0x1c ++ SO_PEERSEC = 0x1e ++ SO_PRIORITY = 0xc ++ SO_PROTOCOL = 0x1028 ++ SO_RCVBUF = 0x1002 ++ SO_RCVBUFFORCE = 0x21 ++ SO_RCVLOWAT = 0x1004 ++ SO_RCVTIMEO = 0x1006 ++ SO_REUSEADDR = 0x4 ++ SO_REUSEPORT = 0x200 ++ SO_RXQ_OVFL = 0x28 ++ SO_SECURITY_AUTHENTICATION = 0x16 ++ SO_SECURITY_ENCRYPTION_NETWORK = 0x18 ++ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 ++ SO_SELECT_ERR_QUEUE = 0x2d ++ SO_SNDBUF = 0x1001 ++ SO_SNDBUFFORCE = 0x1f ++ SO_SNDLOWAT = 0x1003 ++ SO_SNDTIMEO = 0x1005 ++ SO_STYLE = 0x1008 ++ SO_TIMESTAMP = 0x1d ++ SO_TIMESTAMPING = 0x25 ++ SO_TIMESTAMPNS = 0x23 ++ SO_TYPE = 0x1008 ++ SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 ++ SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 ++ SO_VM_SOCKETS_BUFFER_SIZE = 0x0 ++ SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 ++ SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 ++ SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 ++ SO_VM_SOCKETS_TRUSTED = 0x5 ++ SO_WIFI_STATUS = 0x29 ++ SPLICE_F_GIFT = 0x8 ++ SPLICE_F_MORE = 0x4 ++ SPLICE_F_MOVE = 0x1 ++ SPLICE_F_NONBLOCK = 0x2 ++ S_BLKSIZE = 0x200 ++ S_IEXEC = 0x40 ++ S_IFBLK = 0x6000 ++ S_IFCHR = 0x2000 ++ S_IFDIR = 0x4000 ++ S_IFIFO = 0x1000 ++ S_IFLNK = 0xa000 ++ S_IFMT = 0xf000 ++ S_IFREG = 0x8000 ++ S_IFSOCK = 0xc000 ++ S_IREAD = 0x100 ++ S_IRGRP = 0x20 ++ S_IROTH = 0x4 ++ S_IRUSR = 0x100 ++ S_IRWXG = 0x38 ++ S_IRWXO = 0x7 ++ S_IRWXU = 0x1c0 ++ S_ISGID = 0x400 ++ S_ISUID = 0x800 ++ S_ISVTX = 0x200 ++ S_IWGRP = 0x10 ++ S_IWOTH = 0x2 ++ S_IWRITE = 0x80 ++ S_IWUSR = 0x80 ++ S_IXGRP = 0x8 ++ S_IXOTH = 0x1 ++ S_IXUSR = 0x40 ++ TCFLSH = 0x5407 ++ TCIFLUSH = 0x0 ++ TCIOFLUSH = 0x2 ++ TCOFLUSH = 0x1 ++ TCP_CONGESTION = 0xd ++ TCP_COOKIE_IN_ALWAYS = 0x1 ++ TCP_COOKIE_MAX = 0x10 ++ TCP_COOKIE_MIN = 0x8 ++ TCP_COOKIE_OUT_NEVER = 0x2 ++ TCP_COOKIE_PAIR_SIZE = 0x20 ++ TCP_COOKIE_TRANSACTIONS = 0xf ++ TCP_CORK = 0x3 ++ TCP_DEFER_ACCEPT = 0x9 ++ TCP_FASTOPEN = 0x17 ++ TCP_INFO = 0xb ++ TCP_KEEPCNT = 0x6 ++ TCP_KEEPIDLE = 0x4 ++ TCP_KEEPINTVL = 0x5 ++ TCP_LINGER2 = 0x8 ++ TCP_MAXSEG = 0x2 ++ TCP_MAXWIN = 0xffff ++ TCP_MAX_WINSHIFT = 0xe ++ TCP_MD5SIG = 0xe ++ TCP_MD5SIG_MAXKEYLEN = 0x50 ++ TCP_MSS = 0x200 ++ TCP_MSS_DEFAULT = 0x218 ++ TCP_MSS_DESIRED = 0x4c4 ++ TCP_NODELAY = 0x1 ++ TCP_QUEUE_SEQ = 0x15 ++ TCP_QUICKACK = 0xc ++ TCP_REPAIR = 0x13 ++ TCP_REPAIR_OPTIONS = 0x16 ++ TCP_REPAIR_QUEUE = 0x14 ++ TCP_SYNCNT = 0x7 ++ TCP_S_DATA_IN = 0x4 ++ TCP_S_DATA_OUT = 0x8 ++ TCP_THIN_DUPACK = 0x11 ++ TCP_THIN_LINEAR_TIMEOUTS = 0x10 ++ TCP_TIMESTAMP = 0x18 ++ TCP_USER_TIMEOUT = 0x12 ++ TCP_WINDOW_CLAMP = 0xa ++ TCSAFLUSH = 0x5410 ++ TCSBRK = 0x5405 ++ TCXONC = 0x5406 ++ TIOCCBRK = 0x5428 ++ TIOCCONS = 0x80047478 ++ TIOCEXCL = 0x740d ++ TIOCGDEV = 0x40045432 ++ TIOCGETD = 0x7400 ++ TIOCGETP = 0x7408 ++ TIOCGEXCL = 0x40045440 ++ TIOCGICOUNT = 0x5492 ++ TIOCGLCKTRMIOS = 0x548b ++ TIOCGLTC = 0x7474 ++ TIOCGPGRP = 0x40047477 ++ TIOCGPKT = 0x40045438 ++ TIOCGPTLCK = 0x40045439 ++ TIOCGPTN = 0x40045430 ++ TIOCGRS485 = 0x4020542e ++ TIOCGSERIAL = 0x5484 ++ TIOCGSID = 0x7416 ++ TIOCGSOFTCAR = 0x5481 ++ TIOCGWINSZ = 0x40087468 ++ TIOCINQ = 0x467f ++ TIOCLINUX = 0x5483 ++ TIOCMBIC = 0x741c ++ TIOCMBIS = 0x741b ++ TIOCMGET = 0x741d ++ TIOCMIWAIT = 0x5491 ++ TIOCMSET = 0x741a ++ TIOCM_CAR = 0x100 ++ TIOCM_CD = 0x100 ++ TIOCM_CTS = 0x40 ++ TIOCM_DSR = 0x400 ++ TIOCM_DTR = 0x2 ++ TIOCM_LE = 0x1 ++ TIOCM_RI = 0x200 ++ TIOCM_RNG = 0x200 ++ TIOCM_RTS = 0x4 ++ TIOCM_SR = 0x20 ++ TIOCM_ST = 0x10 ++ TIOCNOTTY = 0x5471 ++ TIOCNXCL = 0x740e ++ TIOCOUTQ = 0x7472 ++ TIOCPKT = 0x5470 ++ TIOCPKT_DATA = 0x0 ++ TIOCPKT_DOSTOP = 0x20 ++ TIOCPKT_FLUSHREAD = 0x1 ++ TIOCPKT_FLUSHWRITE = 0x2 ++ TIOCPKT_IOCTL = 0x40 ++ TIOCPKT_NOSTOP = 0x10 ++ TIOCPKT_START = 0x8 ++ TIOCPKT_STOP = 0x4 ++ TIOCSBRK = 0x5427 ++ TIOCSCTTY = 0x5480 ++ TIOCSERCONFIG = 0x5488 ++ TIOCSERGETLSR = 0x548e ++ TIOCSERGETMULTI = 0x548f ++ TIOCSERGSTRUCT = 0x548d ++ TIOCSERGWILD = 0x5489 ++ TIOCSERSETMULTI = 0x5490 ++ TIOCSERSWILD = 0x548a ++ TIOCSER_TEMT = 0x1 ++ TIOCSETD = 0x7401 ++ TIOCSETN = 0x740a ++ TIOCSETP = 0x7409 ++ TIOCSIG = 0x80045436 ++ TIOCSLCKTRMIOS = 0x548c ++ TIOCSLTC = 0x7475 ++ TIOCSPGRP = 0x80047476 ++ TIOCSPTLCK = 0x80045431 ++ TIOCSRS485 = 0xc020542f ++ TIOCSSERIAL = 0x5485 ++ TIOCSSOFTCAR = 0x5482 ++ TIOCSTI = 0x5472 ++ TIOCSWINSZ = 0x80087467 ++ TIOCVHANGUP = 0x5437 ++ TOSTOP = 0x8000 ++ TUNATTACHFILTER = 0x801054d5 ++ TUNDETACHFILTER = 0x801054d6 ++ TUNGETFEATURES = 0x400454cf ++ TUNGETFILTER = 0x401054db ++ TUNGETIFF = 0x400454d2 ++ TUNGETSNDBUF = 0x400454d3 ++ TUNGETVNETBE = 0x400454df ++ TUNGETVNETHDRSZ = 0x400454d7 ++ TUNGETVNETLE = 0x400454dd ++ TUNSETDEBUG = 0x800454c9 ++ TUNSETGROUP = 0x800454ce ++ TUNSETIFF = 0x800454ca ++ TUNSETIFINDEX = 0x800454da ++ TUNSETLINK = 0x800454cd ++ TUNSETNOCSUM = 0x800454c8 ++ TUNSETOFFLOAD = 0x800454d0 ++ TUNSETOWNER = 0x800454cc ++ TUNSETPERSIST = 0x800454cb ++ TUNSETQUEUE = 0x800454d9 ++ TUNSETSNDBUF = 0x800454d4 ++ TUNSETTXFILTER = 0x800454d1 ++ TUNSETVNETBE = 0x800454de ++ TUNSETVNETHDRSZ = 0x800454d8 ++ TUNSETVNETLE = 0x800454dc ++ VDISCARD = 0xd ++ VEOF = 0x10 ++ VEOL = 0x11 ++ VEOL2 = 0x6 ++ VERASE = 0x2 ++ VINTR = 0x0 ++ VKILL = 0x3 ++ VLNEXT = 0xf ++ VMADDR_CID_ANY = 0xffffffff ++ VMADDR_CID_HOST = 0x2 ++ VMADDR_CID_HYPERVISOR = 0x0 ++ VMADDR_CID_RESERVED = 0x1 ++ VMADDR_PORT_ANY = 0xffffffff ++ VMIN = 0x4 ++ VQUIT = 0x1 ++ VREPRINT = 0xc ++ VSTART = 0x8 ++ VSTOP = 0x9 ++ VSUSP = 0xa ++ VSWTC = 0x7 ++ VSWTCH = 0x7 ++ VT0 = 0x0 ++ VT1 = 0x4000 ++ VTDLY = 0x4000 ++ VTIME = 0x5 ++ VWERASE = 0xe ++ WALL = 0x40000000 ++ WCLONE = 0x80000000 ++ WCONTINUED = 0x8 ++ WEXITED = 0x4 ++ WNOHANG = 0x1 ++ WNOTHREAD = 0x20000000 ++ WNOWAIT = 0x1000000 ++ WORDSIZE = 0x40 ++ WSTOPPED = 0x2 ++ WUNTRACED = 0x2 ++) ++ ++// Errors ++const ( ++ E2BIG = syscall.Errno(0x7) ++ EACCES = syscall.Errno(0xd) ++ EADDRINUSE = syscall.Errno(0x7d) ++ EADDRNOTAVAIL = syscall.Errno(0x7e) ++ EADV = syscall.Errno(0x44) ++ EAFNOSUPPORT = syscall.Errno(0x7c) ++ EAGAIN = syscall.Errno(0xb) ++ EALREADY = syscall.Errno(0x95) ++ EBADE = syscall.Errno(0x32) ++ EBADF = syscall.Errno(0x9) ++ EBADFD = syscall.Errno(0x51) ++ EBADMSG = syscall.Errno(0x4d) ++ EBADR = syscall.Errno(0x33) ++ EBADRQC = syscall.Errno(0x36) ++ EBADSLT = syscall.Errno(0x37) ++ EBFONT = syscall.Errno(0x3b) ++ EBUSY = syscall.Errno(0x10) ++ ECANCELED = syscall.Errno(0x9e) ++ ECHILD = syscall.Errno(0xa) ++ ECHRNG = syscall.Errno(0x25) ++ ECOMM = syscall.Errno(0x46) ++ ECONNABORTED = syscall.Errno(0x82) ++ ECONNREFUSED = syscall.Errno(0x92) ++ ECONNRESET = syscall.Errno(0x83) ++ EDEADLK = syscall.Errno(0x2d) ++ EDEADLOCK = syscall.Errno(0x38) ++ EDESTADDRREQ = syscall.Errno(0x60) ++ EDOM = syscall.Errno(0x21) ++ EDOTDOT = syscall.Errno(0x49) ++ EDQUOT = syscall.Errno(0x46d) ++ EEXIST = syscall.Errno(0x11) ++ EFAULT = syscall.Errno(0xe) ++ EFBIG = syscall.Errno(0x1b) ++ EHOSTDOWN = syscall.Errno(0x93) ++ EHOSTUNREACH = syscall.Errno(0x94) ++ EHWPOISON = syscall.Errno(0xa8) ++ EIDRM = syscall.Errno(0x24) ++ EILSEQ = syscall.Errno(0x58) ++ EINIT = syscall.Errno(0x8d) ++ EINPROGRESS = syscall.Errno(0x96) ++ EINTR = syscall.Errno(0x4) ++ EINVAL = syscall.Errno(0x16) ++ EIO = syscall.Errno(0x5) ++ EISCONN = syscall.Errno(0x85) ++ EISDIR = syscall.Errno(0x15) ++ EISNAM = syscall.Errno(0x8b) ++ EKEYEXPIRED = syscall.Errno(0xa2) ++ EKEYREJECTED = syscall.Errno(0xa4) ++ EKEYREVOKED = syscall.Errno(0xa3) ++ EL2HLT = syscall.Errno(0x2c) ++ EL2NSYNC = syscall.Errno(0x26) ++ EL3HLT = syscall.Errno(0x27) ++ EL3RST = syscall.Errno(0x28) ++ ELIBACC = syscall.Errno(0x53) ++ ELIBBAD = syscall.Errno(0x54) ++ ELIBEXEC = syscall.Errno(0x57) ++ ELIBMAX = syscall.Errno(0x56) ++ ELIBSCN = syscall.Errno(0x55) ++ ELNRNG = syscall.Errno(0x29) ++ ELOOP = syscall.Errno(0x5a) ++ EMEDIUMTYPE = syscall.Errno(0xa0) ++ EMFILE = syscall.Errno(0x18) ++ EMLINK = syscall.Errno(0x1f) ++ EMSGSIZE = syscall.Errno(0x61) ++ EMULTIHOP = syscall.Errno(0x4a) ++ ENAMETOOLONG = syscall.Errno(0x4e) ++ ENAVAIL = syscall.Errno(0x8a) ++ ENETDOWN = syscall.Errno(0x7f) ++ ENETRESET = syscall.Errno(0x81) ++ ENETUNREACH = syscall.Errno(0x80) ++ ENFILE = syscall.Errno(0x17) ++ ENOANO = syscall.Errno(0x35) ++ ENOBUFS = syscall.Errno(0x84) ++ ENOCSI = syscall.Errno(0x2b) ++ ENODATA = syscall.Errno(0x3d) ++ ENODEV = syscall.Errno(0x13) ++ ENOENT = syscall.Errno(0x2) ++ ENOEXEC = syscall.Errno(0x8) ++ ENOKEY = syscall.Errno(0xa1) ++ ENOLCK = syscall.Errno(0x2e) ++ ENOLINK = syscall.Errno(0x43) ++ ENOMEDIUM = syscall.Errno(0x9f) ++ ENOMEM = syscall.Errno(0xc) ++ ENOMSG = syscall.Errno(0x23) ++ ENONET = syscall.Errno(0x40) ++ ENOPKG = syscall.Errno(0x41) ++ ENOPROTOOPT = syscall.Errno(0x63) ++ ENOSPC = syscall.Errno(0x1c) ++ ENOSR = syscall.Errno(0x3f) ++ ENOSTR = syscall.Errno(0x3c) ++ ENOSYS = syscall.Errno(0x59) ++ ENOTBLK = syscall.Errno(0xf) ++ ENOTCONN = syscall.Errno(0x86) ++ ENOTDIR = syscall.Errno(0x14) ++ ENOTEMPTY = syscall.Errno(0x5d) ++ ENOTNAM = syscall.Errno(0x89) ++ ENOTRECOVERABLE = syscall.Errno(0xa6) ++ ENOTSOCK = syscall.Errno(0x5f) ++ ENOTSUP = syscall.Errno(0x7a) ++ ENOTTY = syscall.Errno(0x19) ++ ENOTUNIQ = syscall.Errno(0x50) ++ ENXIO = syscall.Errno(0x6) ++ EOPNOTSUPP = syscall.Errno(0x7a) ++ EOVERFLOW = syscall.Errno(0x4f) ++ EOWNERDEAD = syscall.Errno(0xa5) ++ EPERM = syscall.Errno(0x1) ++ EPFNOSUPPORT = syscall.Errno(0x7b) ++ EPIPE = syscall.Errno(0x20) ++ EPROTO = syscall.Errno(0x47) ++ EPROTONOSUPPORT = syscall.Errno(0x78) ++ EPROTOTYPE = syscall.Errno(0x62) ++ ERANGE = syscall.Errno(0x22) ++ EREMCHG = syscall.Errno(0x52) ++ EREMDEV = syscall.Errno(0x8e) ++ EREMOTE = syscall.Errno(0x42) ++ EREMOTEIO = syscall.Errno(0x8c) ++ ERESTART = syscall.Errno(0x5b) ++ ERFKILL = syscall.Errno(0xa7) ++ EROFS = syscall.Errno(0x1e) ++ ESHUTDOWN = syscall.Errno(0x8f) ++ ESOCKTNOSUPPORT = syscall.Errno(0x79) ++ ESPIPE = syscall.Errno(0x1d) ++ ESRCH = syscall.Errno(0x3) ++ ESRMNT = syscall.Errno(0x45) ++ ESTALE = syscall.Errno(0x97) ++ ESTRPIPE = syscall.Errno(0x5c) ++ ETIME = syscall.Errno(0x3e) ++ ETIMEDOUT = syscall.Errno(0x91) ++ ETOOMANYREFS = syscall.Errno(0x90) ++ ETXTBSY = syscall.Errno(0x1a) ++ EUCLEAN = syscall.Errno(0x87) ++ EUNATCH = syscall.Errno(0x2a) ++ EUSERS = syscall.Errno(0x5e) ++ EWOULDBLOCK = syscall.Errno(0xb) ++ EXDEV = syscall.Errno(0x12) ++ EXFULL = syscall.Errno(0x34) ++) ++ ++// Signals ++const ( ++ SIGABRT = syscall.Signal(0x6) ++ SIGALRM = syscall.Signal(0xe) ++ SIGBUS = syscall.Signal(0xa) ++ SIGCHLD = syscall.Signal(0x12) ++ SIGCLD = syscall.Signal(0x12) ++ SIGCONT = syscall.Signal(0x19) ++ SIGEMT = syscall.Signal(0x7) ++ SIGFPE = syscall.Signal(0x8) ++ SIGHUP = syscall.Signal(0x1) ++ SIGILL = syscall.Signal(0x4) ++ SIGINT = syscall.Signal(0x2) ++ SIGIO = syscall.Signal(0x16) ++ SIGIOT = syscall.Signal(0x6) ++ SIGKILL = syscall.Signal(0x9) ++ SIGPIPE = syscall.Signal(0xd) ++ SIGPOLL = syscall.Signal(0x16) ++ SIGPROF = syscall.Signal(0x1d) ++ SIGPWR = syscall.Signal(0x13) ++ SIGQUIT = syscall.Signal(0x3) ++ SIGSEGV = syscall.Signal(0xb) ++ SIGSTOP = syscall.Signal(0x17) ++ SIGSYS = syscall.Signal(0xc) ++ SIGTERM = syscall.Signal(0xf) ++ SIGTRAP = syscall.Signal(0x5) ++ SIGTSTP = syscall.Signal(0x18) ++ SIGTTIN = syscall.Signal(0x1a) ++ SIGTTOU = syscall.Signal(0x1b) ++ SIGURG = syscall.Signal(0x15) ++ SIGUSR1 = syscall.Signal(0x10) ++ SIGUSR2 = syscall.Signal(0x11) ++ SIGVTALRM = syscall.Signal(0x1c) ++ SIGWINCH = syscall.Signal(0x14) ++ SIGXCPU = syscall.Signal(0x1e) ++ SIGXFSZ = syscall.Signal(0x1f) ++) ++ ++// Error table ++var errors = [...]string{ ++ 1: "operation not permitted", ++ 2: "no such file or directory", ++ 3: "no such process", ++ 4: "interrupted system call", ++ 5: "input/output error", ++ 6: "no such device or address", ++ 7: "argument list too long", ++ 8: "exec format error", ++ 9: "bad file descriptor", ++ 10: "no child processes", ++ 11: "resource temporarily unavailable", ++ 12: "cannot allocate memory", ++ 13: "permission denied", ++ 14: "bad address", ++ 15: "block device required", ++ 16: "device or resource busy", ++ 17: "file exists", ++ 18: "invalid cross-device link", ++ 19: "no such device", ++ 20: "not a directory", ++ 21: "is a directory", ++ 22: "invalid argument", ++ 23: "too many open files in system", ++ 24: "too many open files", ++ 25: "inappropriate ioctl for device", ++ 26: "text file busy", ++ 27: "file too large", ++ 28: "no space left on device", ++ 29: "illegal seek", ++ 30: "read-only file system", ++ 31: "too many links", ++ 32: "broken pipe", ++ 33: "numerical argument out of domain", ++ 34: "numerical result out of range", ++ 35: "no message of desired type", ++ 36: "identifier removed", ++ 37: "channel number out of range", ++ 38: "level 2 not synchronized", ++ 39: "level 3 halted", ++ 40: "level 3 reset", ++ 41: "link number out of range", ++ 42: "protocol driver not attached", ++ 43: "no CSI structure available", ++ 44: "level 2 halted", ++ 45: "resource deadlock avoided", ++ 46: "no locks available", ++ 50: "invalid exchange", ++ 51: "invalid request descriptor", ++ 52: "exchange full", ++ 53: "no anode", ++ 54: "invalid request code", ++ 55: "invalid slot", ++ 56: "file locking deadlock error", ++ 59: "bad font file format", ++ 60: "device not a stream", ++ 61: "no data available", ++ 62: "timer expired", ++ 63: "out of streams resources", ++ 64: "machine is not on the network", ++ 65: "package not installed", ++ 66: "object is remote", ++ 67: "link has been severed", ++ 68: "advertise error", ++ 69: "srmount error", ++ 70: "communication error on send", ++ 71: "protocol error", ++ 73: "RFS specific error", ++ 74: "multihop attempted", ++ 77: "bad message", ++ 78: "file name too long", ++ 79: "value too large for defined data type", ++ 80: "name not unique on network", ++ 81: "file descriptor in bad state", ++ 82: "remote address changed", ++ 83: "can not access a needed shared library", ++ 84: "accessing a corrupted shared library", ++ 85: ".lib section in a.out corrupted", ++ 86: "attempting to link in too many shared libraries", ++ 87: "cannot exec a shared library directly", ++ 88: "invalid or incomplete multibyte or wide character", ++ 89: "function not implemented", ++ 90: "too many levels of symbolic links", ++ 91: "interrupted system call should be restarted", ++ 92: "streams pipe error", ++ 93: "directory not empty", ++ 94: "too many users", ++ 95: "socket operation on non-socket", ++ 96: "destination address required", ++ 97: "message too long", ++ 98: "protocol wrong type for socket", ++ 99: "protocol not available", ++ 120: "protocol not supported", ++ 121: "socket type not supported", ++ 122: "operation not supported", ++ 123: "protocol family not supported", ++ 124: "address family not supported by protocol", ++ 125: "address already in use", ++ 126: "cannot assign requested address", ++ 127: "network is down", ++ 128: "network is unreachable", ++ 129: "network dropped connection on reset", ++ 130: "software caused connection abort", ++ 131: "connection reset by peer", ++ 132: "no buffer space available", ++ 133: "transport endpoint is already connected", ++ 134: "transport endpoint is not connected", ++ 135: "structure needs cleaning", ++ 137: "not a XENIX named type file", ++ 138: "no XENIX semaphores available", ++ 139: "is a named type file", ++ 140: "remote I/O error", ++ 141: "unknown error 141", ++ 142: "unknown error 142", ++ 143: "cannot send after transport endpoint shutdown", ++ 144: "too many references: cannot splice", ++ 145: "connection timed out", ++ 146: "connection refused", ++ 147: "host is down", ++ 148: "no route to host", ++ 149: "operation already in progress", ++ 150: "operation now in progress", ++ 151: "stale file handle", ++ 158: "operation canceled", ++ 159: "no medium found", ++ 160: "wrong medium type", ++ 161: "required key not available", ++ 162: "key has expired", ++ 163: "key has been revoked", ++ 164: "key was rejected by service", ++ 165: "owner died", ++ 166: "state not recoverable", ++ 167: "operation not possible due to RF-kill", ++ 168: "memory page has hardware error", ++ 1133: "disk quota exceeded", ++} ++ ++// Signal table ++var signals = [...]string{ ++ 1: "hangup", ++ 2: "interrupt", ++ 3: "quit", ++ 4: "illegal instruction", ++ 5: "trace/breakpoint trap", ++ 6: "aborted", ++ 7: "EMT trap", ++ 8: "floating point exception", ++ 9: "killed", ++ 10: "bus error", ++ 11: "segmentation fault", ++ 12: "bad system call", ++ 13: "broken pipe", ++ 14: "alarm clock", ++ 15: "terminated", ++ 16: "user defined signal 1", ++ 17: "user defined signal 2", ++ 18: "child exited", ++ 19: "power failure", ++ 20: "window changed", ++ 21: "urgent I/O condition", ++ 22: "I/O possible", ++ 23: "stopped (signal)", ++ 24: "stopped", ++ 25: "continued", ++ 26: "stopped (tty input)", ++ 27: "stopped (tty output)", ++ 28: "virtual timer expired", ++ 29: "profiling timer expired", ++ 30: "CPU time limit exceeded", ++ 31: "file size limit exceeded", ++} +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +new file mode 100644 +index 0000000..9a3a737 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +@@ -0,0 +1,2066 @@ ++// mkerrors.sh ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build mipsle,linux ++ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- _const.go ++ ++package unix ++ ++import "syscall" ++ ++const ( ++ AF_ALG = 0x26 ++ AF_APPLETALK = 0x5 ++ AF_ASH = 0x12 ++ AF_ATMPVC = 0x8 ++ AF_ATMSVC = 0x14 ++ AF_AX25 = 0x3 ++ AF_BLUETOOTH = 0x1f ++ AF_BRIDGE = 0x7 ++ AF_CAIF = 0x25 ++ AF_CAN = 0x1d ++ AF_DECnet = 0xc ++ AF_ECONET = 0x13 ++ AF_FILE = 0x1 ++ AF_IB = 0x1b ++ AF_IEEE802154 = 0x24 ++ AF_INET = 0x2 ++ AF_INET6 = 0xa ++ AF_IPX = 0x4 ++ AF_IRDA = 0x17 ++ AF_ISDN = 0x22 ++ AF_IUCV = 0x20 ++ AF_KCM = 0x29 ++ AF_KEY = 0xf ++ AF_LLC = 0x1a ++ AF_LOCAL = 0x1 ++ AF_MAX = 0x2a ++ AF_MPLS = 0x1c ++ AF_NETBEUI = 0xd ++ AF_NETLINK = 0x10 ++ AF_NETROM = 0x6 ++ AF_NFC = 0x27 ++ AF_PACKET = 0x11 ++ AF_PHONET = 0x23 ++ AF_PPPOX = 0x18 ++ AF_RDS = 0x15 ++ AF_ROSE = 0xb ++ AF_ROUTE = 0x10 ++ AF_RXRPC = 0x21 ++ AF_SECURITY = 0xe ++ AF_SNA = 0x16 ++ AF_TIPC = 0x1e ++ AF_UNIX = 0x1 ++ AF_UNSPEC = 0x0 ++ AF_VSOCK = 0x28 ++ AF_WANPIPE = 0x19 ++ AF_X25 = 0x9 ++ ALG_OP_DECRYPT = 0x0 ++ ALG_OP_ENCRYPT = 0x1 ++ ALG_SET_AEAD_ASSOCLEN = 0x4 ++ ALG_SET_AEAD_AUTHSIZE = 0x5 ++ ALG_SET_IV = 0x2 ++ ALG_SET_KEY = 0x1 ++ ALG_SET_OP = 0x3 ++ ARPHRD_6LOWPAN = 0x339 ++ ARPHRD_ADAPT = 0x108 ++ ARPHRD_APPLETLK = 0x8 ++ ARPHRD_ARCNET = 0x7 ++ ARPHRD_ASH = 0x30d ++ ARPHRD_ATM = 0x13 ++ ARPHRD_AX25 = 0x3 ++ ARPHRD_BIF = 0x307 ++ ARPHRD_CAIF = 0x336 ++ ARPHRD_CAN = 0x118 ++ ARPHRD_CHAOS = 0x5 ++ ARPHRD_CISCO = 0x201 ++ ARPHRD_CSLIP = 0x101 ++ ARPHRD_CSLIP6 = 0x103 ++ ARPHRD_DDCMP = 0x205 ++ ARPHRD_DLCI = 0xf ++ ARPHRD_ECONET = 0x30e ++ ARPHRD_EETHER = 0x2 ++ ARPHRD_ETHER = 0x1 ++ ARPHRD_EUI64 = 0x1b ++ ARPHRD_FCAL = 0x311 ++ ARPHRD_FCFABRIC = 0x313 ++ ARPHRD_FCPL = 0x312 ++ ARPHRD_FCPP = 0x310 ++ ARPHRD_FDDI = 0x306 ++ ARPHRD_FRAD = 0x302 ++ ARPHRD_HDLC = 0x201 ++ ARPHRD_HIPPI = 0x30c ++ ARPHRD_HWX25 = 0x110 ++ ARPHRD_IEEE1394 = 0x18 ++ ARPHRD_IEEE802 = 0x6 ++ ARPHRD_IEEE80211 = 0x321 ++ ARPHRD_IEEE80211_PRISM = 0x322 ++ ARPHRD_IEEE80211_RADIOTAP = 0x323 ++ ARPHRD_IEEE802154 = 0x324 ++ ARPHRD_IEEE802154_MONITOR = 0x325 ++ ARPHRD_IEEE802_TR = 0x320 ++ ARPHRD_INFINIBAND = 0x20 ++ ARPHRD_IP6GRE = 0x337 ++ ARPHRD_IPDDP = 0x309 ++ ARPHRD_IPGRE = 0x30a ++ ARPHRD_IRDA = 0x30f ++ ARPHRD_LAPB = 0x204 ++ ARPHRD_LOCALTLK = 0x305 ++ ARPHRD_LOOPBACK = 0x304 ++ ARPHRD_METRICOM = 0x17 ++ ARPHRD_NETLINK = 0x338 ++ ARPHRD_NETROM = 0x0 ++ ARPHRD_NONE = 0xfffe ++ ARPHRD_PHONET = 0x334 ++ ARPHRD_PHONET_PIPE = 0x335 ++ ARPHRD_PIMREG = 0x30b ++ ARPHRD_PPP = 0x200 ++ ARPHRD_PRONET = 0x4 ++ ARPHRD_RAWHDLC = 0x206 ++ ARPHRD_ROSE = 0x10e ++ ARPHRD_RSRVD = 0x104 ++ ARPHRD_SIT = 0x308 ++ ARPHRD_SKIP = 0x303 ++ ARPHRD_SLIP = 0x100 ++ ARPHRD_SLIP6 = 0x102 ++ ARPHRD_TUNNEL = 0x300 ++ ARPHRD_TUNNEL6 = 0x301 ++ ARPHRD_VOID = 0xffff ++ ARPHRD_X25 = 0x10f ++ B0 = 0x0 ++ B1000000 = 0x1008 ++ B110 = 0x3 ++ B115200 = 0x1002 ++ B1152000 = 0x1009 ++ B1200 = 0x9 ++ B134 = 0x4 ++ B150 = 0x5 ++ B1500000 = 0x100a ++ B1800 = 0xa ++ B19200 = 0xe ++ B200 = 0x6 ++ B2000000 = 0x100b ++ B230400 = 0x1003 ++ B2400 = 0xb ++ B2500000 = 0x100c ++ B300 = 0x7 ++ B3000000 = 0x100d ++ B3500000 = 0x100e ++ B38400 = 0xf ++ B4000000 = 0x100f ++ B460800 = 0x1004 ++ B4800 = 0xc ++ B50 = 0x1 ++ B500000 = 0x1005 ++ B57600 = 0x1001 ++ B576000 = 0x1006 ++ B600 = 0x8 ++ B75 = 0x2 ++ B921600 = 0x1007 ++ B9600 = 0xd ++ BLKBSZGET = 0x80081270 ++ BLKBSZSET = 0x40081271 ++ BLKFLSBUF = 0x1261 ++ BLKFRAGET = 0x1265 ++ BLKFRASET = 0x1264 ++ BLKGETSIZE = 0x1260 ++ BLKGETSIZE64 = 0x80081272 ++ BLKRAGET = 0x1263 ++ BLKRASET = 0x1262 ++ BLKROGET = 0x125e ++ BLKROSET = 0x125d ++ BLKRRPART = 0x125f ++ BLKSECTGET = 0x1267 ++ BLKSECTSET = 0x1266 ++ BLKSSZGET = 0x1268 ++ BOTHER = 0x1000 ++ BPF_A = 0x10 ++ BPF_ABS = 0x20 ++ BPF_ADD = 0x0 ++ BPF_ALU = 0x4 ++ BPF_AND = 0x50 ++ BPF_B = 0x10 ++ BPF_DIV = 0x30 ++ BPF_H = 0x8 ++ BPF_IMM = 0x0 ++ BPF_IND = 0x40 ++ BPF_JA = 0x0 ++ BPF_JEQ = 0x10 ++ BPF_JGE = 0x30 ++ BPF_JGT = 0x20 ++ BPF_JMP = 0x5 ++ BPF_JSET = 0x40 ++ BPF_K = 0x0 ++ BPF_LD = 0x0 ++ BPF_LDX = 0x1 ++ BPF_LEN = 0x80 ++ BPF_LL_OFF = -0x200000 ++ BPF_LSH = 0x60 ++ BPF_MAJOR_VERSION = 0x1 ++ BPF_MAXINSNS = 0x1000 ++ BPF_MEM = 0x60 ++ BPF_MEMWORDS = 0x10 ++ BPF_MINOR_VERSION = 0x1 ++ BPF_MISC = 0x7 ++ BPF_MOD = 0x90 ++ BPF_MSH = 0xa0 ++ BPF_MUL = 0x20 ++ BPF_NEG = 0x80 ++ BPF_NET_OFF = -0x100000 ++ BPF_OR = 0x40 ++ BPF_RET = 0x6 ++ BPF_RSH = 0x70 ++ BPF_ST = 0x2 ++ BPF_STX = 0x3 ++ BPF_SUB = 0x10 ++ BPF_TAX = 0x0 ++ BPF_TXA = 0x80 ++ BPF_W = 0x0 ++ BPF_X = 0x8 ++ BPF_XOR = 0xa0 ++ BRKINT = 0x2 ++ BS0 = 0x0 ++ BS1 = 0x2000 ++ BSDLY = 0x2000 ++ CAN_BCM = 0x2 ++ CAN_EFF_FLAG = 0x80000000 ++ CAN_EFF_ID_BITS = 0x1d ++ CAN_EFF_MASK = 0x1fffffff ++ CAN_ERR_FLAG = 0x20000000 ++ CAN_ERR_MASK = 0x1fffffff ++ CAN_INV_FILTER = 0x20000000 ++ CAN_ISOTP = 0x6 ++ CAN_MAX_DLC = 0x8 ++ CAN_MAX_DLEN = 0x8 ++ CAN_MCNET = 0x5 ++ CAN_MTU = 0x10 ++ CAN_NPROTO = 0x7 ++ CAN_RAW = 0x1 ++ CAN_RTR_FLAG = 0x40000000 ++ CAN_SFF_ID_BITS = 0xb ++ CAN_SFF_MASK = 0x7ff ++ CAN_TP16 = 0x3 ++ CAN_TP20 = 0x4 ++ CBAUD = 0x100f ++ CBAUDEX = 0x1000 ++ CFLUSH = 0xf ++ CIBAUD = 0x100f0000 ++ CLOCAL = 0x800 ++ CLOCK_BOOTTIME = 0x7 ++ CLOCK_BOOTTIME_ALARM = 0x9 ++ CLOCK_DEFAULT = 0x0 ++ CLOCK_EXT = 0x1 ++ CLOCK_INT = 0x2 ++ CLOCK_MONOTONIC = 0x1 ++ CLOCK_MONOTONIC_COARSE = 0x6 ++ CLOCK_MONOTONIC_RAW = 0x4 ++ CLOCK_PROCESS_CPUTIME_ID = 0x2 ++ CLOCK_REALTIME = 0x0 ++ CLOCK_REALTIME_ALARM = 0x8 ++ CLOCK_REALTIME_COARSE = 0x5 ++ CLOCK_TAI = 0xb ++ CLOCK_THREAD_CPUTIME_ID = 0x3 ++ CLOCK_TXFROMRX = 0x4 ++ CLOCK_TXINT = 0x3 ++ CLONE_CHILD_CLEARTID = 0x200000 ++ CLONE_CHILD_SETTID = 0x1000000 ++ CLONE_DETACHED = 0x400000 ++ CLONE_FILES = 0x400 ++ CLONE_FS = 0x200 ++ CLONE_IO = 0x80000000 ++ CLONE_NEWCGROUP = 0x2000000 ++ CLONE_NEWIPC = 0x8000000 ++ CLONE_NEWNET = 0x40000000 ++ CLONE_NEWNS = 0x20000 ++ CLONE_NEWPID = 0x20000000 ++ CLONE_NEWUSER = 0x10000000 ++ CLONE_NEWUTS = 0x4000000 ++ CLONE_PARENT = 0x8000 ++ CLONE_PARENT_SETTID = 0x100000 ++ CLONE_PTRACE = 0x2000 ++ CLONE_SETTLS = 0x80000 ++ CLONE_SIGHAND = 0x800 ++ CLONE_SYSVSEM = 0x40000 ++ CLONE_THREAD = 0x10000 ++ CLONE_UNTRACED = 0x800000 ++ CLONE_VFORK = 0x4000 ++ CLONE_VM = 0x100 ++ CMSPAR = 0x40000000 ++ CR0 = 0x0 ++ CR1 = 0x200 ++ CR2 = 0x400 ++ CR3 = 0x600 ++ CRDLY = 0x600 ++ CREAD = 0x80 ++ CRTSCTS = 0x80000000 ++ CS5 = 0x0 ++ CS6 = 0x10 ++ CS7 = 0x20 ++ CS8 = 0x30 ++ CSIGNAL = 0xff ++ CSIZE = 0x30 ++ CSTART = 0x11 ++ CSTATUS = 0x0 ++ CSTOP = 0x13 ++ CSTOPB = 0x40 ++ CSUSP = 0x1a ++ DT_BLK = 0x6 ++ DT_CHR = 0x2 ++ DT_DIR = 0x4 ++ DT_FIFO = 0x1 ++ DT_LNK = 0xa ++ DT_REG = 0x8 ++ DT_SOCK = 0xc ++ DT_UNKNOWN = 0x0 ++ DT_WHT = 0xe ++ ECHO = 0x8 ++ ECHOCTL = 0x200 ++ ECHOE = 0x10 ++ ECHOK = 0x20 ++ ECHOKE = 0x800 ++ ECHONL = 0x40 ++ ECHOPRT = 0x400 ++ ENCODING_DEFAULT = 0x0 ++ ENCODING_FM_MARK = 0x3 ++ ENCODING_FM_SPACE = 0x4 ++ ENCODING_MANCHESTER = 0x5 ++ ENCODING_NRZ = 0x1 ++ ENCODING_NRZI = 0x2 ++ EPOLLERR = 0x8 ++ EPOLLET = 0x80000000 ++ EPOLLEXCLUSIVE = 0x10000000 ++ EPOLLHUP = 0x10 ++ EPOLLIN = 0x1 ++ EPOLLMSG = 0x400 ++ EPOLLONESHOT = 0x40000000 ++ EPOLLOUT = 0x4 ++ EPOLLPRI = 0x2 ++ EPOLLRDBAND = 0x80 ++ EPOLLRDHUP = 0x2000 ++ EPOLLRDNORM = 0x40 ++ EPOLLWAKEUP = 0x20000000 ++ EPOLLWRBAND = 0x200 ++ EPOLLWRNORM = 0x100 ++ EPOLL_CLOEXEC = 0x80000 ++ EPOLL_CTL_ADD = 0x1 ++ EPOLL_CTL_DEL = 0x2 ++ EPOLL_CTL_MOD = 0x3 ++ ETH_P_1588 = 0x88f7 ++ ETH_P_8021AD = 0x88a8 ++ ETH_P_8021AH = 0x88e7 ++ ETH_P_8021Q = 0x8100 ++ ETH_P_80221 = 0x8917 ++ ETH_P_802_2 = 0x4 ++ ETH_P_802_3 = 0x1 ++ ETH_P_802_3_MIN = 0x600 ++ ETH_P_802_EX1 = 0x88b5 ++ ETH_P_AARP = 0x80f3 ++ ETH_P_AF_IUCV = 0xfbfb ++ ETH_P_ALL = 0x3 ++ ETH_P_AOE = 0x88a2 ++ ETH_P_ARCNET = 0x1a ++ ETH_P_ARP = 0x806 ++ ETH_P_ATALK = 0x809b ++ ETH_P_ATMFATE = 0x8884 ++ ETH_P_ATMMPOA = 0x884c ++ ETH_P_AX25 = 0x2 ++ ETH_P_BATMAN = 0x4305 ++ ETH_P_BPQ = 0x8ff ++ ETH_P_CAIF = 0xf7 ++ ETH_P_CAN = 0xc ++ ETH_P_CANFD = 0xd ++ ETH_P_CONTROL = 0x16 ++ ETH_P_CUST = 0x6006 ++ ETH_P_DDCMP = 0x6 ++ ETH_P_DEC = 0x6000 ++ ETH_P_DIAG = 0x6005 ++ ETH_P_DNA_DL = 0x6001 ++ ETH_P_DNA_RC = 0x6002 ++ ETH_P_DNA_RT = 0x6003 ++ ETH_P_DSA = 0x1b ++ ETH_P_ECONET = 0x18 ++ ETH_P_EDSA = 0xdada ++ ETH_P_FCOE = 0x8906 ++ ETH_P_FIP = 0x8914 ++ ETH_P_HDLC = 0x19 ++ ETH_P_HSR = 0x892f ++ ETH_P_IEEE802154 = 0xf6 ++ ETH_P_IEEEPUP = 0xa00 ++ ETH_P_IEEEPUPAT = 0xa01 ++ ETH_P_IP = 0x800 ++ ETH_P_IPV6 = 0x86dd ++ ETH_P_IPX = 0x8137 ++ ETH_P_IRDA = 0x17 ++ ETH_P_LAT = 0x6004 ++ ETH_P_LINK_CTL = 0x886c ++ ETH_P_LOCALTALK = 0x9 ++ ETH_P_LOOP = 0x60 ++ ETH_P_LOOPBACK = 0x9000 ++ ETH_P_MACSEC = 0x88e5 ++ ETH_P_MOBITEX = 0x15 ++ ETH_P_MPLS_MC = 0x8848 ++ ETH_P_MPLS_UC = 0x8847 ++ ETH_P_MVRP = 0x88f5 ++ ETH_P_PAE = 0x888e ++ ETH_P_PAUSE = 0x8808 ++ ETH_P_PHONET = 0xf5 ++ ETH_P_PPPTALK = 0x10 ++ ETH_P_PPP_DISC = 0x8863 ++ ETH_P_PPP_MP = 0x8 ++ ETH_P_PPP_SES = 0x8864 ++ ETH_P_PRP = 0x88fb ++ ETH_P_PUP = 0x200 ++ ETH_P_PUPAT = 0x201 ++ ETH_P_QINQ1 = 0x9100 ++ ETH_P_QINQ2 = 0x9200 ++ ETH_P_QINQ3 = 0x9300 ++ ETH_P_RARP = 0x8035 ++ ETH_P_SCA = 0x6007 ++ ETH_P_SLOW = 0x8809 ++ ETH_P_SNAP = 0x5 ++ ETH_P_TDLS = 0x890d ++ ETH_P_TEB = 0x6558 ++ ETH_P_TIPC = 0x88ca ++ ETH_P_TRAILER = 0x1c ++ ETH_P_TR_802_2 = 0x11 ++ ETH_P_TSN = 0x22f0 ++ ETH_P_WAN_PPP = 0x7 ++ ETH_P_WCCP = 0x883e ++ ETH_P_X25 = 0x805 ++ ETH_P_XDSA = 0xf8 ++ EXTA = 0xe ++ EXTB = 0xf ++ EXTPROC = 0x10000 ++ FALLOC_FL_COLLAPSE_RANGE = 0x8 ++ FALLOC_FL_INSERT_RANGE = 0x20 ++ FALLOC_FL_KEEP_SIZE = 0x1 ++ FALLOC_FL_NO_HIDE_STALE = 0x4 ++ FALLOC_FL_PUNCH_HOLE = 0x2 ++ FALLOC_FL_ZERO_RANGE = 0x10 ++ FD_CLOEXEC = 0x1 ++ FD_SETSIZE = 0x400 ++ FF0 = 0x0 ++ FF1 = 0x8000 ++ FFDLY = 0x8000 ++ FLUSHO = 0x2000 ++ F_DUPFD = 0x0 ++ F_DUPFD_CLOEXEC = 0x406 ++ F_EXLCK = 0x4 ++ F_GETFD = 0x1 ++ F_GETFL = 0x3 ++ F_GETLEASE = 0x401 ++ F_GETLK = 0x21 ++ F_GETLK64 = 0x21 ++ F_GETOWN = 0x17 ++ F_GETOWN_EX = 0x10 ++ F_GETPIPE_SZ = 0x408 ++ F_GETSIG = 0xb ++ F_LOCK = 0x1 ++ F_NOTIFY = 0x402 ++ F_OFD_GETLK = 0x24 ++ F_OFD_SETLK = 0x25 ++ F_OFD_SETLKW = 0x26 ++ F_OK = 0x0 ++ F_RDLCK = 0x0 ++ F_SETFD = 0x2 ++ F_SETFL = 0x4 ++ F_SETLEASE = 0x400 ++ F_SETLK = 0x22 ++ F_SETLK64 = 0x22 ++ F_SETLKW = 0x23 ++ F_SETLKW64 = 0x23 ++ F_SETOWN = 0x18 ++ F_SETOWN_EX = 0xf ++ F_SETPIPE_SZ = 0x407 ++ F_SETSIG = 0xa ++ F_SHLCK = 0x8 ++ F_TEST = 0x3 ++ F_TLOCK = 0x2 ++ F_ULOCK = 0x0 ++ F_UNLCK = 0x2 ++ F_WRLCK = 0x1 ++ GRND_NONBLOCK = 0x1 ++ GRND_RANDOM = 0x2 ++ HUPCL = 0x400 ++ IBSHIFT = 0x10 ++ ICANON = 0x2 ++ ICMPV6_FILTER = 0x1 ++ ICRNL = 0x100 ++ IEXTEN = 0x100 ++ IFA_F_DADFAILED = 0x8 ++ IFA_F_DEPRECATED = 0x20 ++ IFA_F_HOMEADDRESS = 0x10 ++ IFA_F_MANAGETEMPADDR = 0x100 ++ IFA_F_MCAUTOJOIN = 0x400 ++ IFA_F_NODAD = 0x2 ++ IFA_F_NOPREFIXROUTE = 0x200 ++ IFA_F_OPTIMISTIC = 0x4 ++ IFA_F_PERMANENT = 0x80 ++ IFA_F_SECONDARY = 0x1 ++ IFA_F_STABLE_PRIVACY = 0x800 ++ IFA_F_TEMPORARY = 0x1 ++ IFA_F_TENTATIVE = 0x40 ++ IFA_MAX = 0x8 ++ IFF_ALLMULTI = 0x200 ++ IFF_ATTACH_QUEUE = 0x200 ++ IFF_AUTOMEDIA = 0x4000 ++ IFF_BROADCAST = 0x2 ++ IFF_DEBUG = 0x4 ++ IFF_DETACH_QUEUE = 0x400 ++ IFF_DORMANT = 0x20000 ++ IFF_DYNAMIC = 0x8000 ++ IFF_ECHO = 0x40000 ++ IFF_LOOPBACK = 0x8 ++ IFF_LOWER_UP = 0x10000 ++ IFF_MASTER = 0x400 ++ IFF_MULTICAST = 0x1000 ++ IFF_MULTI_QUEUE = 0x100 ++ IFF_NOARP = 0x80 ++ IFF_NOFILTER = 0x1000 ++ IFF_NOTRAILERS = 0x20 ++ IFF_NO_PI = 0x1000 ++ IFF_ONE_QUEUE = 0x2000 ++ IFF_PERSIST = 0x800 ++ IFF_POINTOPOINT = 0x10 ++ IFF_PORTSEL = 0x2000 ++ IFF_PROMISC = 0x100 ++ IFF_RUNNING = 0x40 ++ IFF_SLAVE = 0x800 ++ IFF_TAP = 0x2 ++ IFF_TUN = 0x1 ++ IFF_TUN_EXCL = 0x8000 ++ IFF_UP = 0x1 ++ IFF_VNET_HDR = 0x4000 ++ IFF_VOLATILE = 0x70c5a ++ IFNAMSIZ = 0x10 ++ IGNBRK = 0x1 ++ IGNCR = 0x80 ++ IGNPAR = 0x4 ++ IMAXBEL = 0x2000 ++ INLCR = 0x40 ++ INPCK = 0x10 ++ IN_ACCESS = 0x1 ++ IN_ALL_EVENTS = 0xfff ++ IN_ATTRIB = 0x4 ++ IN_CLASSA_HOST = 0xffffff ++ IN_CLASSA_MAX = 0x80 ++ IN_CLASSA_NET = 0xff000000 ++ IN_CLASSA_NSHIFT = 0x18 ++ IN_CLASSB_HOST = 0xffff ++ IN_CLASSB_MAX = 0x10000 ++ IN_CLASSB_NET = 0xffff0000 ++ IN_CLASSB_NSHIFT = 0x10 ++ IN_CLASSC_HOST = 0xff ++ IN_CLASSC_NET = 0xffffff00 ++ IN_CLASSC_NSHIFT = 0x8 ++ IN_CLOEXEC = 0x80000 ++ IN_CLOSE = 0x18 ++ IN_CLOSE_NOWRITE = 0x10 ++ IN_CLOSE_WRITE = 0x8 ++ IN_CREATE = 0x100 ++ IN_DELETE = 0x200 ++ IN_DELETE_SELF = 0x400 ++ IN_DONT_FOLLOW = 0x2000000 ++ IN_EXCL_UNLINK = 0x4000000 ++ IN_IGNORED = 0x8000 ++ IN_ISDIR = 0x40000000 ++ IN_LOOPBACKNET = 0x7f ++ IN_MASK_ADD = 0x20000000 ++ IN_MODIFY = 0x2 ++ IN_MOVE = 0xc0 ++ IN_MOVED_FROM = 0x40 ++ IN_MOVED_TO = 0x80 ++ IN_MOVE_SELF = 0x800 ++ IN_NONBLOCK = 0x80 ++ IN_ONESHOT = 0x80000000 ++ IN_ONLYDIR = 0x1000000 ++ IN_OPEN = 0x20 ++ IN_Q_OVERFLOW = 0x4000 ++ IN_UNMOUNT = 0x2000 ++ IPPROTO_AH = 0x33 ++ IPPROTO_BEETPH = 0x5e ++ IPPROTO_COMP = 0x6c ++ IPPROTO_DCCP = 0x21 ++ IPPROTO_DSTOPTS = 0x3c ++ IPPROTO_EGP = 0x8 ++ IPPROTO_ENCAP = 0x62 ++ IPPROTO_ESP = 0x32 ++ IPPROTO_FRAGMENT = 0x2c ++ IPPROTO_GRE = 0x2f ++ IPPROTO_HOPOPTS = 0x0 ++ IPPROTO_ICMP = 0x1 ++ IPPROTO_ICMPV6 = 0x3a ++ IPPROTO_IDP = 0x16 ++ IPPROTO_IGMP = 0x2 ++ IPPROTO_IP = 0x0 ++ IPPROTO_IPIP = 0x4 ++ IPPROTO_IPV6 = 0x29 ++ IPPROTO_MH = 0x87 ++ IPPROTO_MPLS = 0x89 ++ IPPROTO_MTP = 0x5c ++ IPPROTO_NONE = 0x3b ++ IPPROTO_PIM = 0x67 ++ IPPROTO_PUP = 0xc ++ IPPROTO_RAW = 0xff ++ IPPROTO_ROUTING = 0x2b ++ IPPROTO_RSVP = 0x2e ++ IPPROTO_SCTP = 0x84 ++ IPPROTO_TCP = 0x6 ++ IPPROTO_TP = 0x1d ++ IPPROTO_UDP = 0x11 ++ IPPROTO_UDPLITE = 0x88 ++ IPV6_2292DSTOPTS = 0x4 ++ IPV6_2292HOPLIMIT = 0x8 ++ IPV6_2292HOPOPTS = 0x3 ++ IPV6_2292PKTINFO = 0x2 ++ IPV6_2292PKTOPTIONS = 0x6 ++ IPV6_2292RTHDR = 0x5 ++ IPV6_ADDRFORM = 0x1 ++ IPV6_ADD_MEMBERSHIP = 0x14 ++ IPV6_AUTHHDR = 0xa ++ IPV6_CHECKSUM = 0x7 ++ IPV6_DONTFRAG = 0x3e ++ IPV6_DROP_MEMBERSHIP = 0x15 ++ IPV6_DSTOPTS = 0x3b ++ IPV6_HDRINCL = 0x24 ++ IPV6_HOPLIMIT = 0x34 ++ IPV6_HOPOPTS = 0x36 ++ IPV6_IPSEC_POLICY = 0x22 ++ IPV6_JOIN_ANYCAST = 0x1b ++ IPV6_JOIN_GROUP = 0x14 ++ IPV6_LEAVE_ANYCAST = 0x1c ++ IPV6_LEAVE_GROUP = 0x15 ++ IPV6_MTU = 0x18 ++ IPV6_MTU_DISCOVER = 0x17 ++ IPV6_MULTICAST_HOPS = 0x12 ++ IPV6_MULTICAST_IF = 0x11 ++ IPV6_MULTICAST_LOOP = 0x13 ++ IPV6_NEXTHOP = 0x9 ++ IPV6_PATHMTU = 0x3d ++ IPV6_PKTINFO = 0x32 ++ IPV6_PMTUDISC_DO = 0x2 ++ IPV6_PMTUDISC_DONT = 0x0 ++ IPV6_PMTUDISC_INTERFACE = 0x4 ++ IPV6_PMTUDISC_OMIT = 0x5 ++ IPV6_PMTUDISC_PROBE = 0x3 ++ IPV6_PMTUDISC_WANT = 0x1 ++ IPV6_RECVDSTOPTS = 0x3a ++ IPV6_RECVERR = 0x19 ++ IPV6_RECVHOPLIMIT = 0x33 ++ IPV6_RECVHOPOPTS = 0x35 ++ IPV6_RECVPATHMTU = 0x3c ++ IPV6_RECVPKTINFO = 0x31 ++ IPV6_RECVRTHDR = 0x38 ++ IPV6_RECVTCLASS = 0x42 ++ IPV6_ROUTER_ALERT = 0x16 ++ IPV6_RTHDR = 0x39 ++ IPV6_RTHDRDSTOPTS = 0x37 ++ IPV6_RTHDR_LOOSE = 0x0 ++ IPV6_RTHDR_STRICT = 0x1 ++ IPV6_RTHDR_TYPE_0 = 0x0 ++ IPV6_RXDSTOPTS = 0x3b ++ IPV6_RXHOPOPTS = 0x36 ++ IPV6_TCLASS = 0x43 ++ IPV6_UNICAST_HOPS = 0x10 ++ IPV6_V6ONLY = 0x1a ++ IPV6_XFRM_POLICY = 0x23 ++ IP_ADD_MEMBERSHIP = 0x23 ++ IP_ADD_SOURCE_MEMBERSHIP = 0x27 ++ IP_BIND_ADDRESS_NO_PORT = 0x18 ++ IP_BLOCK_SOURCE = 0x26 ++ IP_CHECKSUM = 0x17 ++ IP_DEFAULT_MULTICAST_LOOP = 0x1 ++ IP_DEFAULT_MULTICAST_TTL = 0x1 ++ IP_DF = 0x4000 ++ IP_DROP_MEMBERSHIP = 0x24 ++ IP_DROP_SOURCE_MEMBERSHIP = 0x28 ++ IP_FREEBIND = 0xf ++ IP_HDRINCL = 0x3 ++ IP_IPSEC_POLICY = 0x10 ++ IP_MAXPACKET = 0xffff ++ IP_MAX_MEMBERSHIPS = 0x14 ++ IP_MF = 0x2000 ++ IP_MINTTL = 0x15 ++ IP_MSFILTER = 0x29 ++ IP_MSS = 0x240 ++ IP_MTU = 0xe ++ IP_MTU_DISCOVER = 0xa ++ IP_MULTICAST_ALL = 0x31 ++ IP_MULTICAST_IF = 0x20 ++ IP_MULTICAST_LOOP = 0x22 ++ IP_MULTICAST_TTL = 0x21 ++ IP_NODEFRAG = 0x16 ++ IP_OFFMASK = 0x1fff ++ IP_OPTIONS = 0x4 ++ IP_ORIGDSTADDR = 0x14 ++ IP_PASSSEC = 0x12 ++ IP_PKTINFO = 0x8 ++ IP_PKTOPTIONS = 0x9 ++ IP_PMTUDISC = 0xa ++ IP_PMTUDISC_DO = 0x2 ++ IP_PMTUDISC_DONT = 0x0 ++ IP_PMTUDISC_INTERFACE = 0x4 ++ IP_PMTUDISC_OMIT = 0x5 ++ IP_PMTUDISC_PROBE = 0x3 ++ IP_PMTUDISC_WANT = 0x1 ++ IP_RECVERR = 0xb ++ IP_RECVOPTS = 0x6 ++ IP_RECVORIGDSTADDR = 0x14 ++ IP_RECVRETOPTS = 0x7 ++ IP_RECVTOS = 0xd ++ IP_RECVTTL = 0xc ++ IP_RETOPTS = 0x7 ++ IP_RF = 0x8000 ++ IP_ROUTER_ALERT = 0x5 ++ IP_TOS = 0x1 ++ IP_TRANSPARENT = 0x13 ++ IP_TTL = 0x2 ++ IP_UNBLOCK_SOURCE = 0x25 ++ IP_UNICAST_IF = 0x32 ++ IP_XFRM_POLICY = 0x11 ++ ISIG = 0x1 ++ ISTRIP = 0x20 ++ IUCLC = 0x200 ++ IUTF8 = 0x4000 ++ IXANY = 0x800 ++ IXOFF = 0x1000 ++ IXON = 0x400 ++ LINUX_REBOOT_CMD_CAD_OFF = 0x0 ++ LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef ++ LINUX_REBOOT_CMD_HALT = 0xcdef0123 ++ LINUX_REBOOT_CMD_KEXEC = 0x45584543 ++ LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc ++ LINUX_REBOOT_CMD_RESTART = 0x1234567 ++ LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 ++ LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 ++ LINUX_REBOOT_MAGIC1 = 0xfee1dead ++ LINUX_REBOOT_MAGIC2 = 0x28121969 ++ LOCK_EX = 0x2 ++ LOCK_NB = 0x4 ++ LOCK_SH = 0x1 ++ LOCK_UN = 0x8 ++ MADV_DODUMP = 0x11 ++ MADV_DOFORK = 0xb ++ MADV_DONTDUMP = 0x10 ++ MADV_DONTFORK = 0xa ++ MADV_DONTNEED = 0x4 ++ MADV_FREE = 0x8 ++ MADV_HUGEPAGE = 0xe ++ MADV_HWPOISON = 0x64 ++ MADV_MERGEABLE = 0xc ++ MADV_NOHUGEPAGE = 0xf ++ MADV_NORMAL = 0x0 ++ MADV_RANDOM = 0x1 ++ MADV_REMOVE = 0x9 ++ MADV_SEQUENTIAL = 0x2 ++ MADV_UNMERGEABLE = 0xd ++ MADV_WILLNEED = 0x3 ++ MAP_ANON = 0x800 ++ MAP_ANONYMOUS = 0x800 ++ MAP_DENYWRITE = 0x2000 ++ MAP_EXECUTABLE = 0x4000 ++ MAP_FILE = 0x0 ++ MAP_FIXED = 0x10 ++ MAP_GROWSDOWN = 0x1000 ++ MAP_HUGETLB = 0x80000 ++ MAP_HUGE_MASK = 0x3f ++ MAP_HUGE_SHIFT = 0x1a ++ MAP_LOCKED = 0x8000 ++ MAP_NONBLOCK = 0x20000 ++ MAP_NORESERVE = 0x400 ++ MAP_POPULATE = 0x10000 ++ MAP_PRIVATE = 0x2 ++ MAP_RENAME = 0x800 ++ MAP_SHARED = 0x1 ++ MAP_STACK = 0x40000 ++ MAP_TYPE = 0xf ++ MCL_CURRENT = 0x1 ++ MCL_FUTURE = 0x2 ++ MCL_ONFAULT = 0x4 ++ MNT_DETACH = 0x2 ++ MNT_EXPIRE = 0x4 ++ MNT_FORCE = 0x1 ++ MSG_BATCH = 0x40000 ++ MSG_CMSG_CLOEXEC = 0x40000000 ++ MSG_CONFIRM = 0x800 ++ MSG_CTRUNC = 0x8 ++ MSG_DONTROUTE = 0x4 ++ MSG_DONTWAIT = 0x40 ++ MSG_EOR = 0x80 ++ MSG_ERRQUEUE = 0x2000 ++ MSG_FASTOPEN = 0x20000000 ++ MSG_FIN = 0x200 ++ MSG_MORE = 0x8000 ++ MSG_NOSIGNAL = 0x4000 ++ MSG_OOB = 0x1 ++ MSG_PEEK = 0x2 ++ MSG_PROXY = 0x10 ++ MSG_RST = 0x1000 ++ MSG_SYN = 0x400 ++ MSG_TRUNC = 0x20 ++ MSG_TRYHARD = 0x4 ++ MSG_WAITALL = 0x100 ++ MSG_WAITFORONE = 0x10000 ++ MS_ACTIVE = 0x40000000 ++ MS_ASYNC = 0x1 ++ MS_BIND = 0x1000 ++ MS_DIRSYNC = 0x80 ++ MS_INVALIDATE = 0x2 ++ MS_I_VERSION = 0x800000 ++ MS_KERNMOUNT = 0x400000 ++ MS_LAZYTIME = 0x2000000 ++ MS_MANDLOCK = 0x40 ++ MS_MGC_MSK = 0xffff0000 ++ MS_MGC_VAL = 0xc0ed0000 ++ MS_MOVE = 0x2000 ++ MS_NOATIME = 0x400 ++ MS_NODEV = 0x4 ++ MS_NODIRATIME = 0x800 ++ MS_NOEXEC = 0x8 ++ MS_NOSUID = 0x2 ++ MS_NOUSER = -0x80000000 ++ MS_POSIXACL = 0x10000 ++ MS_PRIVATE = 0x40000 ++ MS_RDONLY = 0x1 ++ MS_REC = 0x4000 ++ MS_RELATIME = 0x200000 ++ MS_REMOUNT = 0x20 ++ MS_RMT_MASK = 0x2800051 ++ MS_SHARED = 0x100000 ++ MS_SILENT = 0x8000 ++ MS_SLAVE = 0x80000 ++ MS_STRICTATIME = 0x1000000 ++ MS_SYNC = 0x4 ++ MS_SYNCHRONOUS = 0x10 ++ MS_UNBINDABLE = 0x20000 ++ NAME_MAX = 0xff ++ NETLINK_ADD_MEMBERSHIP = 0x1 ++ NETLINK_AUDIT = 0x9 ++ NETLINK_BROADCAST_ERROR = 0x4 ++ NETLINK_CAP_ACK = 0xa ++ NETLINK_CONNECTOR = 0xb ++ NETLINK_CRYPTO = 0x15 ++ NETLINK_DNRTMSG = 0xe ++ NETLINK_DROP_MEMBERSHIP = 0x2 ++ NETLINK_ECRYPTFS = 0x13 ++ NETLINK_FIB_LOOKUP = 0xa ++ NETLINK_FIREWALL = 0x3 ++ NETLINK_GENERIC = 0x10 ++ NETLINK_INET_DIAG = 0x4 ++ NETLINK_IP6_FW = 0xd ++ NETLINK_ISCSI = 0x8 ++ NETLINK_KOBJECT_UEVENT = 0xf ++ NETLINK_LISTEN_ALL_NSID = 0x8 ++ NETLINK_LIST_MEMBERSHIPS = 0x9 ++ NETLINK_NETFILTER = 0xc ++ NETLINK_NFLOG = 0x5 ++ NETLINK_NO_ENOBUFS = 0x5 ++ NETLINK_PKTINFO = 0x3 ++ NETLINK_RDMA = 0x14 ++ NETLINK_ROUTE = 0x0 ++ NETLINK_RX_RING = 0x6 ++ NETLINK_SCSITRANSPORT = 0x12 ++ NETLINK_SELINUX = 0x7 ++ NETLINK_SOCK_DIAG = 0x4 ++ NETLINK_TX_RING = 0x7 ++ NETLINK_UNUSED = 0x1 ++ NETLINK_USERSOCK = 0x2 ++ NETLINK_XFRM = 0x6 ++ NL0 = 0x0 ++ NL1 = 0x100 ++ NLA_ALIGNTO = 0x4 ++ NLA_F_NESTED = 0x8000 ++ NLA_F_NET_BYTEORDER = 0x4000 ++ NLA_HDRLEN = 0x4 ++ NLDLY = 0x100 ++ NLMSG_ALIGNTO = 0x4 ++ NLMSG_DONE = 0x3 ++ NLMSG_ERROR = 0x2 ++ NLMSG_HDRLEN = 0x10 ++ NLMSG_MIN_TYPE = 0x10 ++ NLMSG_NOOP = 0x1 ++ NLMSG_OVERRUN = 0x4 ++ NLM_F_ACK = 0x4 ++ NLM_F_APPEND = 0x800 ++ NLM_F_ATOMIC = 0x400 ++ NLM_F_CREATE = 0x400 ++ NLM_F_DUMP = 0x300 ++ NLM_F_DUMP_FILTERED = 0x20 ++ NLM_F_DUMP_INTR = 0x10 ++ NLM_F_ECHO = 0x8 ++ NLM_F_EXCL = 0x200 ++ NLM_F_MATCH = 0x200 ++ NLM_F_MULTI = 0x2 ++ NLM_F_REPLACE = 0x100 ++ NLM_F_REQUEST = 0x1 ++ NLM_F_ROOT = 0x100 ++ NOFLSH = 0x80 ++ OCRNL = 0x8 ++ OFDEL = 0x80 ++ OFILL = 0x40 ++ OLCUC = 0x2 ++ ONLCR = 0x4 ++ ONLRET = 0x20 ++ ONOCR = 0x10 ++ OPOST = 0x1 ++ O_ACCMODE = 0x3 ++ O_APPEND = 0x8 ++ O_ASYNC = 0x1000 ++ O_CLOEXEC = 0x80000 ++ O_CREAT = 0x100 ++ O_DIRECT = 0x8000 ++ O_DIRECTORY = 0x10000 ++ O_DSYNC = 0x10 ++ O_EXCL = 0x400 ++ O_FSYNC = 0x4010 ++ O_LARGEFILE = 0x2000 ++ O_NDELAY = 0x80 ++ O_NOATIME = 0x40000 ++ O_NOCTTY = 0x800 ++ O_NOFOLLOW = 0x20000 ++ O_NONBLOCK = 0x80 ++ O_PATH = 0x200000 ++ O_RDONLY = 0x0 ++ O_RDWR = 0x2 ++ O_RSYNC = 0x4010 ++ O_SYNC = 0x4010 ++ O_TMPFILE = 0x410000 ++ O_TRUNC = 0x200 ++ O_WRONLY = 0x1 ++ PACKET_ADD_MEMBERSHIP = 0x1 ++ PACKET_AUXDATA = 0x8 ++ PACKET_BROADCAST = 0x1 ++ PACKET_COPY_THRESH = 0x7 ++ PACKET_DROP_MEMBERSHIP = 0x2 ++ PACKET_FANOUT = 0x12 ++ PACKET_FANOUT_CBPF = 0x6 ++ PACKET_FANOUT_CPU = 0x2 ++ PACKET_FANOUT_DATA = 0x16 ++ PACKET_FANOUT_EBPF = 0x7 ++ PACKET_FANOUT_FLAG_DEFRAG = 0x8000 ++ PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 ++ PACKET_FANOUT_HASH = 0x0 ++ PACKET_FANOUT_LB = 0x1 ++ PACKET_FANOUT_QM = 0x5 ++ PACKET_FANOUT_RND = 0x4 ++ PACKET_FANOUT_ROLLOVER = 0x3 ++ PACKET_FASTROUTE = 0x6 ++ PACKET_HDRLEN = 0xb ++ PACKET_HOST = 0x0 ++ PACKET_KERNEL = 0x7 ++ PACKET_LOOPBACK = 0x5 ++ PACKET_LOSS = 0xe ++ PACKET_MR_ALLMULTI = 0x2 ++ PACKET_MR_MULTICAST = 0x0 ++ PACKET_MR_PROMISC = 0x1 ++ PACKET_MR_UNICAST = 0x3 ++ PACKET_MULTICAST = 0x2 ++ PACKET_ORIGDEV = 0x9 ++ PACKET_OTHERHOST = 0x3 ++ PACKET_OUTGOING = 0x4 ++ PACKET_QDISC_BYPASS = 0x14 ++ PACKET_RECV_OUTPUT = 0x3 ++ PACKET_RESERVE = 0xc ++ PACKET_ROLLOVER_STATS = 0x15 ++ PACKET_RX_RING = 0x5 ++ PACKET_STATISTICS = 0x6 ++ PACKET_TIMESTAMP = 0x11 ++ PACKET_TX_HAS_OFF = 0x13 ++ PACKET_TX_RING = 0xd ++ PACKET_TX_TIMESTAMP = 0x10 ++ PACKET_USER = 0x6 ++ PACKET_VERSION = 0xa ++ PACKET_VNET_HDR = 0xf ++ PARENB = 0x100 ++ PARITY_CRC16_PR0 = 0x2 ++ PARITY_CRC16_PR0_CCITT = 0x4 ++ PARITY_CRC16_PR1 = 0x3 ++ PARITY_CRC16_PR1_CCITT = 0x5 ++ PARITY_CRC32_PR0_CCITT = 0x6 ++ PARITY_CRC32_PR1_CCITT = 0x7 ++ PARITY_DEFAULT = 0x0 ++ PARITY_NONE = 0x1 ++ PARMRK = 0x8 ++ PARODD = 0x200 ++ PENDIN = 0x4000 ++ PRIO_PGRP = 0x1 ++ PRIO_PROCESS = 0x0 ++ PRIO_USER = 0x2 ++ PROT_EXEC = 0x4 ++ PROT_GROWSDOWN = 0x1000000 ++ PROT_GROWSUP = 0x2000000 ++ PROT_NONE = 0x0 ++ PROT_READ = 0x1 ++ PROT_WRITE = 0x2 ++ PR_CAPBSET_DROP = 0x18 ++ PR_CAPBSET_READ = 0x17 ++ PR_CAP_AMBIENT = 0x2f ++ PR_CAP_AMBIENT_CLEAR_ALL = 0x4 ++ PR_CAP_AMBIENT_IS_SET = 0x1 ++ PR_CAP_AMBIENT_LOWER = 0x3 ++ PR_CAP_AMBIENT_RAISE = 0x2 ++ PR_ENDIAN_BIG = 0x0 ++ PR_ENDIAN_LITTLE = 0x1 ++ PR_ENDIAN_PPC_LITTLE = 0x2 ++ PR_FPEMU_NOPRINT = 0x1 ++ PR_FPEMU_SIGFPE = 0x2 ++ PR_FP_EXC_ASYNC = 0x2 ++ PR_FP_EXC_DISABLED = 0x0 ++ PR_FP_EXC_DIV = 0x10000 ++ PR_FP_EXC_INV = 0x100000 ++ PR_FP_EXC_NONRECOV = 0x1 ++ PR_FP_EXC_OVF = 0x20000 ++ PR_FP_EXC_PRECISE = 0x3 ++ PR_FP_EXC_RES = 0x80000 ++ PR_FP_EXC_SW_ENABLE = 0x80 ++ PR_FP_EXC_UND = 0x40000 ++ PR_FP_MODE_FR = 0x1 ++ PR_FP_MODE_FRE = 0x2 ++ PR_GET_CHILD_SUBREAPER = 0x25 ++ PR_GET_DUMPABLE = 0x3 ++ PR_GET_ENDIAN = 0x13 ++ PR_GET_FPEMU = 0x9 ++ PR_GET_FPEXC = 0xb ++ PR_GET_FP_MODE = 0x2e ++ PR_GET_KEEPCAPS = 0x7 ++ PR_GET_NAME = 0x10 ++ PR_GET_NO_NEW_PRIVS = 0x27 ++ PR_GET_PDEATHSIG = 0x2 ++ PR_GET_SECCOMP = 0x15 ++ PR_GET_SECUREBITS = 0x1b ++ PR_GET_THP_DISABLE = 0x2a ++ PR_GET_TID_ADDRESS = 0x28 ++ PR_GET_TIMERSLACK = 0x1e ++ PR_GET_TIMING = 0xd ++ PR_GET_TSC = 0x19 ++ PR_GET_UNALIGN = 0x5 ++ PR_MCE_KILL = 0x21 ++ PR_MCE_KILL_CLEAR = 0x0 ++ PR_MCE_KILL_DEFAULT = 0x2 ++ PR_MCE_KILL_EARLY = 0x1 ++ PR_MCE_KILL_GET = 0x22 ++ PR_MCE_KILL_LATE = 0x0 ++ PR_MCE_KILL_SET = 0x1 ++ PR_MPX_DISABLE_MANAGEMENT = 0x2c ++ PR_MPX_ENABLE_MANAGEMENT = 0x2b ++ PR_SET_CHILD_SUBREAPER = 0x24 ++ PR_SET_DUMPABLE = 0x4 ++ PR_SET_ENDIAN = 0x14 ++ PR_SET_FPEMU = 0xa ++ PR_SET_FPEXC = 0xc ++ PR_SET_FP_MODE = 0x2d ++ PR_SET_KEEPCAPS = 0x8 ++ PR_SET_MM = 0x23 ++ PR_SET_MM_ARG_END = 0x9 ++ PR_SET_MM_ARG_START = 0x8 ++ PR_SET_MM_AUXV = 0xc ++ PR_SET_MM_BRK = 0x7 ++ PR_SET_MM_END_CODE = 0x2 ++ PR_SET_MM_END_DATA = 0x4 ++ PR_SET_MM_ENV_END = 0xb ++ PR_SET_MM_ENV_START = 0xa ++ PR_SET_MM_EXE_FILE = 0xd ++ PR_SET_MM_MAP = 0xe ++ PR_SET_MM_MAP_SIZE = 0xf ++ PR_SET_MM_START_BRK = 0x6 ++ PR_SET_MM_START_CODE = 0x1 ++ PR_SET_MM_START_DATA = 0x3 ++ PR_SET_MM_START_STACK = 0x5 ++ PR_SET_NAME = 0xf ++ PR_SET_NO_NEW_PRIVS = 0x26 ++ PR_SET_PDEATHSIG = 0x1 ++ PR_SET_PTRACER = 0x59616d61 ++ PR_SET_PTRACER_ANY = 0xffffffff ++ PR_SET_SECCOMP = 0x16 ++ PR_SET_SECUREBITS = 0x1c ++ PR_SET_THP_DISABLE = 0x29 ++ PR_SET_TIMERSLACK = 0x1d ++ PR_SET_TIMING = 0xe ++ PR_SET_TSC = 0x1a ++ PR_SET_UNALIGN = 0x6 ++ PR_TASK_PERF_EVENTS_DISABLE = 0x1f ++ PR_TASK_PERF_EVENTS_ENABLE = 0x20 ++ PR_TIMING_STATISTICAL = 0x0 ++ PR_TIMING_TIMESTAMP = 0x1 ++ PR_TSC_ENABLE = 0x1 ++ PR_TSC_SIGSEGV = 0x2 ++ PR_UNALIGN_NOPRINT = 0x1 ++ PR_UNALIGN_SIGBUS = 0x2 ++ PTRACE_ATTACH = 0x10 ++ PTRACE_CONT = 0x7 ++ PTRACE_DETACH = 0x11 ++ PTRACE_EVENT_CLONE = 0x3 ++ PTRACE_EVENT_EXEC = 0x4 ++ PTRACE_EVENT_EXIT = 0x6 ++ PTRACE_EVENT_FORK = 0x1 ++ PTRACE_EVENT_SECCOMP = 0x7 ++ PTRACE_EVENT_STOP = 0x80 ++ PTRACE_EVENT_VFORK = 0x2 ++ PTRACE_EVENT_VFORK_DONE = 0x5 ++ PTRACE_GETEVENTMSG = 0x4201 ++ PTRACE_GETFPREGS = 0xe ++ PTRACE_GETREGS = 0xc ++ PTRACE_GETREGSET = 0x4204 ++ PTRACE_GETSIGINFO = 0x4202 ++ PTRACE_GETSIGMASK = 0x420a ++ PTRACE_GET_THREAD_AREA = 0x19 ++ PTRACE_GET_THREAD_AREA_3264 = 0xc4 ++ PTRACE_GET_WATCH_REGS = 0xd0 ++ PTRACE_INTERRUPT = 0x4207 ++ PTRACE_KILL = 0x8 ++ PTRACE_LISTEN = 0x4208 ++ PTRACE_OLDSETOPTIONS = 0x15 ++ PTRACE_O_EXITKILL = 0x100000 ++ PTRACE_O_MASK = 0x3000ff ++ PTRACE_O_SUSPEND_SECCOMP = 0x200000 ++ PTRACE_O_TRACECLONE = 0x8 ++ PTRACE_O_TRACEEXEC = 0x10 ++ PTRACE_O_TRACEEXIT = 0x40 ++ PTRACE_O_TRACEFORK = 0x2 ++ PTRACE_O_TRACESECCOMP = 0x80 ++ PTRACE_O_TRACESYSGOOD = 0x1 ++ PTRACE_O_TRACEVFORK = 0x4 ++ PTRACE_O_TRACEVFORKDONE = 0x20 ++ PTRACE_PEEKDATA = 0x2 ++ PTRACE_PEEKDATA_3264 = 0xc1 ++ PTRACE_PEEKSIGINFO = 0x4209 ++ PTRACE_PEEKSIGINFO_SHARED = 0x1 ++ PTRACE_PEEKTEXT = 0x1 ++ PTRACE_PEEKTEXT_3264 = 0xc0 ++ PTRACE_PEEKUSR = 0x3 ++ PTRACE_POKEDATA = 0x5 ++ PTRACE_POKEDATA_3264 = 0xc3 ++ PTRACE_POKETEXT = 0x4 ++ PTRACE_POKETEXT_3264 = 0xc2 ++ PTRACE_POKEUSR = 0x6 ++ PTRACE_SECCOMP_GET_FILTER = 0x420c ++ PTRACE_SEIZE = 0x4206 ++ PTRACE_SETFPREGS = 0xf ++ PTRACE_SETOPTIONS = 0x4200 ++ PTRACE_SETREGS = 0xd ++ PTRACE_SETREGSET = 0x4205 ++ PTRACE_SETSIGINFO = 0x4203 ++ PTRACE_SETSIGMASK = 0x420b ++ PTRACE_SET_THREAD_AREA = 0x1a ++ PTRACE_SET_WATCH_REGS = 0xd1 ++ PTRACE_SINGLESTEP = 0x9 ++ PTRACE_SYSCALL = 0x18 ++ PTRACE_TRACEME = 0x0 ++ RLIMIT_AS = 0x6 ++ RLIMIT_CORE = 0x4 ++ RLIMIT_CPU = 0x0 ++ RLIMIT_DATA = 0x2 ++ RLIMIT_FSIZE = 0x1 ++ RLIMIT_NOFILE = 0x5 ++ RLIMIT_STACK = 0x3 ++ RLIM_INFINITY = -0x1 ++ RTAX_ADVMSS = 0x8 ++ RTAX_CC_ALGO = 0x10 ++ RTAX_CWND = 0x7 ++ RTAX_FEATURES = 0xc ++ RTAX_FEATURE_ALLFRAG = 0x8 ++ RTAX_FEATURE_ECN = 0x1 ++ RTAX_FEATURE_MASK = 0xf ++ RTAX_FEATURE_SACK = 0x2 ++ RTAX_FEATURE_TIMESTAMP = 0x4 ++ RTAX_HOPLIMIT = 0xa ++ RTAX_INITCWND = 0xb ++ RTAX_INITRWND = 0xe ++ RTAX_LOCK = 0x1 ++ RTAX_MAX = 0x10 ++ RTAX_MTU = 0x2 ++ RTAX_QUICKACK = 0xf ++ RTAX_REORDERING = 0x9 ++ RTAX_RTO_MIN = 0xd ++ RTAX_RTT = 0x4 ++ RTAX_RTTVAR = 0x5 ++ RTAX_SSTHRESH = 0x6 ++ RTAX_UNSPEC = 0x0 ++ RTAX_WINDOW = 0x3 ++ RTA_ALIGNTO = 0x4 ++ RTA_MAX = 0x18 ++ RTCF_DIRECTSRC = 0x4000000 ++ RTCF_DOREDIRECT = 0x1000000 ++ RTCF_LOG = 0x2000000 ++ RTCF_MASQ = 0x400000 ++ RTCF_NAT = 0x800000 ++ RTCF_VALVE = 0x200000 ++ RTF_ADDRCLASSMASK = 0xf8000000 ++ RTF_ADDRCONF = 0x40000 ++ RTF_ALLONLINK = 0x20000 ++ RTF_BROADCAST = 0x10000000 ++ RTF_CACHE = 0x1000000 ++ RTF_DEFAULT = 0x10000 ++ RTF_DYNAMIC = 0x10 ++ RTF_FLOW = 0x2000000 ++ RTF_GATEWAY = 0x2 ++ RTF_HOST = 0x4 ++ RTF_INTERFACE = 0x40000000 ++ RTF_IRTT = 0x100 ++ RTF_LINKRT = 0x100000 ++ RTF_LOCAL = 0x80000000 ++ RTF_MODIFIED = 0x20 ++ RTF_MSS = 0x40 ++ RTF_MTU = 0x40 ++ RTF_MULTICAST = 0x20000000 ++ RTF_NAT = 0x8000000 ++ RTF_NOFORWARD = 0x1000 ++ RTF_NONEXTHOP = 0x200000 ++ RTF_NOPMTUDISC = 0x4000 ++ RTF_POLICY = 0x4000000 ++ RTF_REINSTATE = 0x8 ++ RTF_REJECT = 0x200 ++ RTF_STATIC = 0x400 ++ RTF_THROW = 0x2000 ++ RTF_UP = 0x1 ++ RTF_WINDOW = 0x80 ++ RTF_XRESOLVE = 0x800 ++ RTM_BASE = 0x10 ++ RTM_DELACTION = 0x31 ++ RTM_DELADDR = 0x15 ++ RTM_DELADDRLABEL = 0x49 ++ RTM_DELLINK = 0x11 ++ RTM_DELMDB = 0x55 ++ RTM_DELNEIGH = 0x1d ++ RTM_DELNSID = 0x59 ++ RTM_DELQDISC = 0x25 ++ RTM_DELROUTE = 0x19 ++ RTM_DELRULE = 0x21 ++ RTM_DELTCLASS = 0x29 ++ RTM_DELTFILTER = 0x2d ++ RTM_F_CLONED = 0x200 ++ RTM_F_EQUALIZE = 0x400 ++ RTM_F_LOOKUP_TABLE = 0x1000 ++ RTM_F_NOTIFY = 0x100 ++ RTM_F_PREFIX = 0x800 ++ RTM_GETACTION = 0x32 ++ RTM_GETADDR = 0x16 ++ RTM_GETADDRLABEL = 0x4a ++ RTM_GETANYCAST = 0x3e ++ RTM_GETDCB = 0x4e ++ RTM_GETLINK = 0x12 ++ RTM_GETMDB = 0x56 ++ RTM_GETMULTICAST = 0x3a ++ RTM_GETNEIGH = 0x1e ++ RTM_GETNEIGHTBL = 0x42 ++ RTM_GETNETCONF = 0x52 ++ RTM_GETNSID = 0x5a ++ RTM_GETQDISC = 0x26 ++ RTM_GETROUTE = 0x1a ++ RTM_GETRULE = 0x22 ++ RTM_GETSTATS = 0x5e ++ RTM_GETTCLASS = 0x2a ++ RTM_GETTFILTER = 0x2e ++ RTM_MAX = 0x5f ++ RTM_NEWACTION = 0x30 ++ RTM_NEWADDR = 0x14 ++ RTM_NEWADDRLABEL = 0x48 ++ RTM_NEWLINK = 0x10 ++ RTM_NEWMDB = 0x54 ++ RTM_NEWNDUSEROPT = 0x44 ++ RTM_NEWNEIGH = 0x1c ++ RTM_NEWNEIGHTBL = 0x40 ++ RTM_NEWNETCONF = 0x50 ++ RTM_NEWNSID = 0x58 ++ RTM_NEWPREFIX = 0x34 ++ RTM_NEWQDISC = 0x24 ++ RTM_NEWROUTE = 0x18 ++ RTM_NEWRULE = 0x20 ++ RTM_NEWSTATS = 0x5c ++ RTM_NEWTCLASS = 0x28 ++ RTM_NEWTFILTER = 0x2c ++ RTM_NR_FAMILIES = 0x14 ++ RTM_NR_MSGTYPES = 0x50 ++ RTM_SETDCB = 0x4f ++ RTM_SETLINK = 0x13 ++ RTM_SETNEIGHTBL = 0x43 ++ RTNH_ALIGNTO = 0x4 ++ RTNH_COMPARE_MASK = 0x11 ++ RTNH_F_DEAD = 0x1 ++ RTNH_F_LINKDOWN = 0x10 ++ RTNH_F_OFFLOAD = 0x8 ++ RTNH_F_ONLINK = 0x4 ++ RTNH_F_PERVASIVE = 0x2 ++ RTN_MAX = 0xb ++ RTPROT_BABEL = 0x2a ++ RTPROT_BIRD = 0xc ++ RTPROT_BOOT = 0x3 ++ RTPROT_DHCP = 0x10 ++ RTPROT_DNROUTED = 0xd ++ RTPROT_GATED = 0x8 ++ RTPROT_KERNEL = 0x2 ++ RTPROT_MROUTED = 0x11 ++ RTPROT_MRT = 0xa ++ RTPROT_NTK = 0xf ++ RTPROT_RA = 0x9 ++ RTPROT_REDIRECT = 0x1 ++ RTPROT_STATIC = 0x4 ++ RTPROT_UNSPEC = 0x0 ++ RTPROT_XORP = 0xe ++ RTPROT_ZEBRA = 0xb ++ RT_CLASS_DEFAULT = 0xfd ++ RT_CLASS_LOCAL = 0xff ++ RT_CLASS_MAIN = 0xfe ++ RT_CLASS_MAX = 0xff ++ RT_CLASS_UNSPEC = 0x0 ++ RUSAGE_CHILDREN = -0x1 ++ RUSAGE_SELF = 0x0 ++ RUSAGE_THREAD = 0x1 ++ SCM_CREDENTIALS = 0x2 ++ SCM_RIGHTS = 0x1 ++ SCM_TIMESTAMP = 0x1d ++ SCM_TIMESTAMPING = 0x25 ++ SCM_TIMESTAMPNS = 0x23 ++ SCM_WIFI_STATUS = 0x29 ++ SHUT_RD = 0x0 ++ SHUT_RDWR = 0x2 ++ SHUT_WR = 0x1 ++ SIOCADDDLCI = 0x8980 ++ SIOCADDMULTI = 0x8931 ++ SIOCADDRT = 0x890b ++ SIOCATMARK = 0x40047307 ++ SIOCDARP = 0x8953 ++ SIOCDELDLCI = 0x8981 ++ SIOCDELMULTI = 0x8932 ++ SIOCDELRT = 0x890c ++ SIOCDEVPRIVATE = 0x89f0 ++ SIOCDIFADDR = 0x8936 ++ SIOCDRARP = 0x8960 ++ SIOCGARP = 0x8954 ++ SIOCGIFADDR = 0x8915 ++ SIOCGIFBR = 0x8940 ++ SIOCGIFBRDADDR = 0x8919 ++ SIOCGIFCONF = 0x8912 ++ SIOCGIFCOUNT = 0x8938 ++ SIOCGIFDSTADDR = 0x8917 ++ SIOCGIFENCAP = 0x8925 ++ SIOCGIFFLAGS = 0x8913 ++ SIOCGIFHWADDR = 0x8927 ++ SIOCGIFINDEX = 0x8933 ++ SIOCGIFMAP = 0x8970 ++ SIOCGIFMEM = 0x891f ++ SIOCGIFMETRIC = 0x891d ++ SIOCGIFMTU = 0x8921 ++ SIOCGIFNAME = 0x8910 ++ SIOCGIFNETMASK = 0x891b ++ SIOCGIFPFLAGS = 0x8935 ++ SIOCGIFSLAVE = 0x8929 ++ SIOCGIFTXQLEN = 0x8942 ++ SIOCGPGRP = 0x40047309 ++ SIOCGRARP = 0x8961 ++ SIOCGSTAMP = 0x8906 ++ SIOCGSTAMPNS = 0x8907 ++ SIOCPROTOPRIVATE = 0x89e0 ++ SIOCRTMSG = 0x890d ++ SIOCSARP = 0x8955 ++ SIOCSIFADDR = 0x8916 ++ SIOCSIFBR = 0x8941 ++ SIOCSIFBRDADDR = 0x891a ++ SIOCSIFDSTADDR = 0x8918 ++ SIOCSIFENCAP = 0x8926 ++ SIOCSIFFLAGS = 0x8914 ++ SIOCSIFHWADDR = 0x8924 ++ SIOCSIFHWBROADCAST = 0x8937 ++ SIOCSIFLINK = 0x8911 ++ SIOCSIFMAP = 0x8971 ++ SIOCSIFMEM = 0x8920 ++ SIOCSIFMETRIC = 0x891e ++ SIOCSIFMTU = 0x8922 ++ SIOCSIFNAME = 0x8923 ++ SIOCSIFNETMASK = 0x891c ++ SIOCSIFPFLAGS = 0x8934 ++ SIOCSIFSLAVE = 0x8930 ++ SIOCSIFTXQLEN = 0x8943 ++ SIOCSPGRP = 0x80047308 ++ SIOCSRARP = 0x8962 ++ SOCK_CLOEXEC = 0x80000 ++ SOCK_DCCP = 0x6 ++ SOCK_DGRAM = 0x1 ++ SOCK_NONBLOCK = 0x80 ++ SOCK_PACKET = 0xa ++ SOCK_RAW = 0x3 ++ SOCK_RDM = 0x4 ++ SOCK_SEQPACKET = 0x5 ++ SOCK_STREAM = 0x2 ++ SOL_AAL = 0x109 ++ SOL_ALG = 0x117 ++ SOL_ATM = 0x108 ++ SOL_CAIF = 0x116 ++ SOL_CAN_BASE = 0x64 ++ SOL_DCCP = 0x10d ++ SOL_DECNET = 0x105 ++ SOL_ICMPV6 = 0x3a ++ SOL_IP = 0x0 ++ SOL_IPV6 = 0x29 ++ SOL_IRDA = 0x10a ++ SOL_IUCV = 0x115 ++ SOL_KCM = 0x119 ++ SOL_LLC = 0x10c ++ SOL_NETBEUI = 0x10b ++ SOL_NETLINK = 0x10e ++ SOL_NFC = 0x118 ++ SOL_PACKET = 0x107 ++ SOL_PNPIPE = 0x113 ++ SOL_PPPOL2TP = 0x111 ++ SOL_RAW = 0xff ++ SOL_RDS = 0x114 ++ SOL_RXRPC = 0x110 ++ SOL_SOCKET = 0xffff ++ SOL_TCP = 0x6 ++ SOL_TIPC = 0x10f ++ SOL_X25 = 0x106 ++ SOMAXCONN = 0x80 ++ SO_ACCEPTCONN = 0x1009 ++ SO_ATTACH_BPF = 0x32 ++ SO_ATTACH_FILTER = 0x1a ++ SO_ATTACH_REUSEPORT_CBPF = 0x33 ++ SO_ATTACH_REUSEPORT_EBPF = 0x34 ++ SO_BINDTODEVICE = 0x19 ++ SO_BPF_EXTENSIONS = 0x30 ++ SO_BROADCAST = 0x20 ++ SO_BSDCOMPAT = 0xe ++ SO_BUSY_POLL = 0x2e ++ SO_CNX_ADVICE = 0x35 ++ SO_DEBUG = 0x1 ++ SO_DETACH_BPF = 0x1b ++ SO_DETACH_FILTER = 0x1b ++ SO_DOMAIN = 0x1029 ++ SO_DONTROUTE = 0x10 ++ SO_ERROR = 0x1007 ++ SO_GET_FILTER = 0x1a ++ SO_INCOMING_CPU = 0x31 ++ SO_KEEPALIVE = 0x8 ++ SO_LINGER = 0x80 ++ SO_LOCK_FILTER = 0x2c ++ SO_MARK = 0x24 ++ SO_MAX_PACING_RATE = 0x2f ++ SO_NOFCS = 0x2b ++ SO_NO_CHECK = 0xb ++ SO_OOBINLINE = 0x100 ++ SO_PASSCRED = 0x11 ++ SO_PASSSEC = 0x22 ++ SO_PEEK_OFF = 0x2a ++ SO_PEERCRED = 0x12 ++ SO_PEERNAME = 0x1c ++ SO_PEERSEC = 0x1e ++ SO_PRIORITY = 0xc ++ SO_PROTOCOL = 0x1028 ++ SO_RCVBUF = 0x1002 ++ SO_RCVBUFFORCE = 0x21 ++ SO_RCVLOWAT = 0x1004 ++ SO_RCVTIMEO = 0x1006 ++ SO_REUSEADDR = 0x4 ++ SO_REUSEPORT = 0x200 ++ SO_RXQ_OVFL = 0x28 ++ SO_SECURITY_AUTHENTICATION = 0x16 ++ SO_SECURITY_ENCRYPTION_NETWORK = 0x18 ++ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 ++ SO_SELECT_ERR_QUEUE = 0x2d ++ SO_SNDBUF = 0x1001 ++ SO_SNDBUFFORCE = 0x1f ++ SO_SNDLOWAT = 0x1003 ++ SO_SNDTIMEO = 0x1005 ++ SO_STYLE = 0x1008 ++ SO_TIMESTAMP = 0x1d ++ SO_TIMESTAMPING = 0x25 ++ SO_TIMESTAMPNS = 0x23 ++ SO_TYPE = 0x1008 ++ SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 ++ SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 ++ SO_VM_SOCKETS_BUFFER_SIZE = 0x0 ++ SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 ++ SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 ++ SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 ++ SO_VM_SOCKETS_TRUSTED = 0x5 ++ SO_WIFI_STATUS = 0x29 ++ SPLICE_F_GIFT = 0x8 ++ SPLICE_F_MORE = 0x4 ++ SPLICE_F_MOVE = 0x1 ++ SPLICE_F_NONBLOCK = 0x2 ++ S_BLKSIZE = 0x200 ++ S_IEXEC = 0x40 ++ S_IFBLK = 0x6000 ++ S_IFCHR = 0x2000 ++ S_IFDIR = 0x4000 ++ S_IFIFO = 0x1000 ++ S_IFLNK = 0xa000 ++ S_IFMT = 0xf000 ++ S_IFREG = 0x8000 ++ S_IFSOCK = 0xc000 ++ S_IREAD = 0x100 ++ S_IRGRP = 0x20 ++ S_IROTH = 0x4 ++ S_IRUSR = 0x100 ++ S_IRWXG = 0x38 ++ S_IRWXO = 0x7 ++ S_IRWXU = 0x1c0 ++ S_ISGID = 0x400 ++ S_ISUID = 0x800 ++ S_ISVTX = 0x200 ++ S_IWGRP = 0x10 ++ S_IWOTH = 0x2 ++ S_IWRITE = 0x80 ++ S_IWUSR = 0x80 ++ S_IXGRP = 0x8 ++ S_IXOTH = 0x1 ++ S_IXUSR = 0x40 ++ TAB0 = 0x0 ++ TAB1 = 0x800 ++ TAB2 = 0x1000 ++ TAB3 = 0x1800 ++ TABDLY = 0x1800 ++ TCFLSH = 0x5407 ++ TCGETA = 0x5401 ++ TCGETS = 0x540d ++ TCGETS2 = 0x4030542a ++ TCIFLUSH = 0x0 ++ TCIOFF = 0x2 ++ TCIOFLUSH = 0x2 ++ TCION = 0x3 ++ TCOFLUSH = 0x1 ++ TCOOFF = 0x0 ++ TCOON = 0x1 ++ TCP_CC_INFO = 0x1a ++ TCP_CONGESTION = 0xd ++ TCP_COOKIE_IN_ALWAYS = 0x1 ++ TCP_COOKIE_MAX = 0x10 ++ TCP_COOKIE_MIN = 0x8 ++ TCP_COOKIE_OUT_NEVER = 0x2 ++ TCP_COOKIE_PAIR_SIZE = 0x20 ++ TCP_COOKIE_TRANSACTIONS = 0xf ++ TCP_CORK = 0x3 ++ TCP_DEFER_ACCEPT = 0x9 ++ TCP_FASTOPEN = 0x17 ++ TCP_INFO = 0xb ++ TCP_KEEPCNT = 0x6 ++ TCP_KEEPIDLE = 0x4 ++ TCP_KEEPINTVL = 0x5 ++ TCP_LINGER2 = 0x8 ++ TCP_MAXSEG = 0x2 ++ TCP_MAXWIN = 0xffff ++ TCP_MAX_WINSHIFT = 0xe ++ TCP_MD5SIG = 0xe ++ TCP_MD5SIG_MAXKEYLEN = 0x50 ++ TCP_MSS = 0x200 ++ TCP_MSS_DEFAULT = 0x218 ++ TCP_MSS_DESIRED = 0x4c4 ++ TCP_NODELAY = 0x1 ++ TCP_NOTSENT_LOWAT = 0x19 ++ TCP_QUEUE_SEQ = 0x15 ++ TCP_QUICKACK = 0xc ++ TCP_REPAIR = 0x13 ++ TCP_REPAIR_OPTIONS = 0x16 ++ TCP_REPAIR_QUEUE = 0x14 ++ TCP_SAVED_SYN = 0x1c ++ TCP_SAVE_SYN = 0x1b ++ TCP_SYNCNT = 0x7 ++ TCP_S_DATA_IN = 0x4 ++ TCP_S_DATA_OUT = 0x8 ++ TCP_THIN_DUPACK = 0x11 ++ TCP_THIN_LINEAR_TIMEOUTS = 0x10 ++ TCP_TIMESTAMP = 0x18 ++ TCP_USER_TIMEOUT = 0x12 ++ TCP_WINDOW_CLAMP = 0xa ++ TCSAFLUSH = 0x5410 ++ TCSBRK = 0x5405 ++ TCSBRKP = 0x5486 ++ TCSETA = 0x5402 ++ TCSETAF = 0x5404 ++ TCSETAW = 0x5403 ++ TCSETS = 0x540e ++ TCSETS2 = 0x8030542b ++ TCSETSF = 0x5410 ++ TCSETSF2 = 0x8030542d ++ TCSETSW = 0x540f ++ TCSETSW2 = 0x8030542c ++ TCXONC = 0x5406 ++ TIOCCBRK = 0x5428 ++ TIOCCONS = 0x80047478 ++ TIOCEXCL = 0x740d ++ TIOCGDEV = 0x40045432 ++ TIOCGETD = 0x7400 ++ TIOCGETP = 0x7408 ++ TIOCGEXCL = 0x40045440 ++ TIOCGICOUNT = 0x5492 ++ TIOCGLCKTRMIOS = 0x548b ++ TIOCGLTC = 0x7474 ++ TIOCGPGRP = 0x40047477 ++ TIOCGPKT = 0x40045438 ++ TIOCGPTLCK = 0x40045439 ++ TIOCGPTN = 0x40045430 ++ TIOCGRS485 = 0x4020542e ++ TIOCGSERIAL = 0x5484 ++ TIOCGSID = 0x7416 ++ TIOCGSOFTCAR = 0x5481 ++ TIOCGWINSZ = 0x40087468 ++ TIOCINQ = 0x467f ++ TIOCLINUX = 0x5483 ++ TIOCMBIC = 0x741c ++ TIOCMBIS = 0x741b ++ TIOCMGET = 0x741d ++ TIOCMIWAIT = 0x5491 ++ TIOCMSET = 0x741a ++ TIOCM_CAR = 0x100 ++ TIOCM_CD = 0x100 ++ TIOCM_CTS = 0x40 ++ TIOCM_DSR = 0x400 ++ TIOCM_DTR = 0x2 ++ TIOCM_LE = 0x1 ++ TIOCM_RI = 0x200 ++ TIOCM_RNG = 0x200 ++ TIOCM_RTS = 0x4 ++ TIOCM_SR = 0x20 ++ TIOCM_ST = 0x10 ++ TIOCNOTTY = 0x5471 ++ TIOCNXCL = 0x740e ++ TIOCOUTQ = 0x7472 ++ TIOCPKT = 0x5470 ++ TIOCPKT_DATA = 0x0 ++ TIOCPKT_DOSTOP = 0x20 ++ TIOCPKT_FLUSHREAD = 0x1 ++ TIOCPKT_FLUSHWRITE = 0x2 ++ TIOCPKT_IOCTL = 0x40 ++ TIOCPKT_NOSTOP = 0x10 ++ TIOCPKT_START = 0x8 ++ TIOCPKT_STOP = 0x4 ++ TIOCSBRK = 0x5427 ++ TIOCSCTTY = 0x5480 ++ TIOCSERCONFIG = 0x5488 ++ TIOCSERGETLSR = 0x548e ++ TIOCSERGETMULTI = 0x548f ++ TIOCSERGSTRUCT = 0x548d ++ TIOCSERGWILD = 0x5489 ++ TIOCSERSETMULTI = 0x5490 ++ TIOCSERSWILD = 0x548a ++ TIOCSER_TEMT = 0x1 ++ TIOCSETD = 0x7401 ++ TIOCSETN = 0x740a ++ TIOCSETP = 0x7409 ++ TIOCSIG = 0x80045436 ++ TIOCSLCKTRMIOS = 0x548c ++ TIOCSLTC = 0x7475 ++ TIOCSPGRP = 0x80047476 ++ TIOCSPTLCK = 0x80045431 ++ TIOCSRS485 = 0xc020542f ++ TIOCSSERIAL = 0x5485 ++ TIOCSSOFTCAR = 0x5482 ++ TIOCSTI = 0x5472 ++ TIOCSWINSZ = 0x80087467 ++ TIOCVHANGUP = 0x5437 ++ TOSTOP = 0x8000 ++ TUNATTACHFILTER = 0x800854d5 ++ TUNDETACHFILTER = 0x800854d6 ++ TUNGETFEATURES = 0x400454cf ++ TUNGETFILTER = 0x400854db ++ TUNGETIFF = 0x400454d2 ++ TUNGETSNDBUF = 0x400454d3 ++ TUNGETVNETBE = 0x400454df ++ TUNGETVNETHDRSZ = 0x400454d7 ++ TUNGETVNETLE = 0x400454dd ++ TUNSETDEBUG = 0x800454c9 ++ TUNSETGROUP = 0x800454ce ++ TUNSETIFF = 0x800454ca ++ TUNSETIFINDEX = 0x800454da ++ TUNSETLINK = 0x800454cd ++ TUNSETNOCSUM = 0x800454c8 ++ TUNSETOFFLOAD = 0x800454d0 ++ TUNSETOWNER = 0x800454cc ++ TUNSETPERSIST = 0x800454cb ++ TUNSETQUEUE = 0x800454d9 ++ TUNSETSNDBUF = 0x800454d4 ++ TUNSETTXFILTER = 0x800454d1 ++ TUNSETVNETBE = 0x800454de ++ TUNSETVNETHDRSZ = 0x800454d8 ++ TUNSETVNETLE = 0x800454dc ++ VDISCARD = 0xd ++ VEOF = 0x10 ++ VEOL = 0x11 ++ VEOL2 = 0x6 ++ VERASE = 0x2 ++ VINTR = 0x0 ++ VKILL = 0x3 ++ VLNEXT = 0xf ++ VMADDR_CID_ANY = 0xffffffff ++ VMADDR_CID_HOST = 0x2 ++ VMADDR_CID_HYPERVISOR = 0x0 ++ VMADDR_CID_RESERVED = 0x1 ++ VMADDR_PORT_ANY = 0xffffffff ++ VMIN = 0x4 ++ VQUIT = 0x1 ++ VREPRINT = 0xc ++ VSTART = 0x8 ++ VSTOP = 0x9 ++ VSUSP = 0xa ++ VSWTC = 0x7 ++ VSWTCH = 0x7 ++ VT0 = 0x0 ++ VT1 = 0x4000 ++ VTDLY = 0x4000 ++ VTIME = 0x5 ++ VWERASE = 0xe ++ WALL = 0x40000000 ++ WCLONE = 0x80000000 ++ WCONTINUED = 0x8 ++ WEXITED = 0x4 ++ WNOHANG = 0x1 ++ WNOTHREAD = 0x20000000 ++ WNOWAIT = 0x1000000 ++ WORDSIZE = 0x20 ++ WSTOPPED = 0x2 ++ WUNTRACED = 0x2 ++ XCASE = 0x4 ++ XTABS = 0x1800 ++) ++ ++// Errors ++const ( ++ E2BIG = syscall.Errno(0x7) ++ EACCES = syscall.Errno(0xd) ++ EADDRINUSE = syscall.Errno(0x7d) ++ EADDRNOTAVAIL = syscall.Errno(0x7e) ++ EADV = syscall.Errno(0x44) ++ EAFNOSUPPORT = syscall.Errno(0x7c) ++ EAGAIN = syscall.Errno(0xb) ++ EALREADY = syscall.Errno(0x95) ++ EBADE = syscall.Errno(0x32) ++ EBADF = syscall.Errno(0x9) ++ EBADFD = syscall.Errno(0x51) ++ EBADMSG = syscall.Errno(0x4d) ++ EBADR = syscall.Errno(0x33) ++ EBADRQC = syscall.Errno(0x36) ++ EBADSLT = syscall.Errno(0x37) ++ EBFONT = syscall.Errno(0x3b) ++ EBUSY = syscall.Errno(0x10) ++ ECANCELED = syscall.Errno(0x9e) ++ ECHILD = syscall.Errno(0xa) ++ ECHRNG = syscall.Errno(0x25) ++ ECOMM = syscall.Errno(0x46) ++ ECONNABORTED = syscall.Errno(0x82) ++ ECONNREFUSED = syscall.Errno(0x92) ++ ECONNRESET = syscall.Errno(0x83) ++ EDEADLK = syscall.Errno(0x2d) ++ EDEADLOCK = syscall.Errno(0x38) ++ EDESTADDRREQ = syscall.Errno(0x60) ++ EDOM = syscall.Errno(0x21) ++ EDOTDOT = syscall.Errno(0x49) ++ EDQUOT = syscall.Errno(0x46d) ++ EEXIST = syscall.Errno(0x11) ++ EFAULT = syscall.Errno(0xe) ++ EFBIG = syscall.Errno(0x1b) ++ EHOSTDOWN = syscall.Errno(0x93) ++ EHOSTUNREACH = syscall.Errno(0x94) ++ EHWPOISON = syscall.Errno(0xa8) ++ EIDRM = syscall.Errno(0x24) ++ EILSEQ = syscall.Errno(0x58) ++ EINIT = syscall.Errno(0x8d) ++ EINPROGRESS = syscall.Errno(0x96) ++ EINTR = syscall.Errno(0x4) ++ EINVAL = syscall.Errno(0x16) ++ EIO = syscall.Errno(0x5) ++ EISCONN = syscall.Errno(0x85) ++ EISDIR = syscall.Errno(0x15) ++ EISNAM = syscall.Errno(0x8b) ++ EKEYEXPIRED = syscall.Errno(0xa2) ++ EKEYREJECTED = syscall.Errno(0xa4) ++ EKEYREVOKED = syscall.Errno(0xa3) ++ EL2HLT = syscall.Errno(0x2c) ++ EL2NSYNC = syscall.Errno(0x26) ++ EL3HLT = syscall.Errno(0x27) ++ EL3RST = syscall.Errno(0x28) ++ ELIBACC = syscall.Errno(0x53) ++ ELIBBAD = syscall.Errno(0x54) ++ ELIBEXEC = syscall.Errno(0x57) ++ ELIBMAX = syscall.Errno(0x56) ++ ELIBSCN = syscall.Errno(0x55) ++ ELNRNG = syscall.Errno(0x29) ++ ELOOP = syscall.Errno(0x5a) ++ EMEDIUMTYPE = syscall.Errno(0xa0) ++ EMFILE = syscall.Errno(0x18) ++ EMLINK = syscall.Errno(0x1f) ++ EMSGSIZE = syscall.Errno(0x61) ++ EMULTIHOP = syscall.Errno(0x4a) ++ ENAMETOOLONG = syscall.Errno(0x4e) ++ ENAVAIL = syscall.Errno(0x8a) ++ ENETDOWN = syscall.Errno(0x7f) ++ ENETRESET = syscall.Errno(0x81) ++ ENETUNREACH = syscall.Errno(0x80) ++ ENFILE = syscall.Errno(0x17) ++ ENOANO = syscall.Errno(0x35) ++ ENOBUFS = syscall.Errno(0x84) ++ ENOCSI = syscall.Errno(0x2b) ++ ENODATA = syscall.Errno(0x3d) ++ ENODEV = syscall.Errno(0x13) ++ ENOENT = syscall.Errno(0x2) ++ ENOEXEC = syscall.Errno(0x8) ++ ENOKEY = syscall.Errno(0xa1) ++ ENOLCK = syscall.Errno(0x2e) ++ ENOLINK = syscall.Errno(0x43) ++ ENOMEDIUM = syscall.Errno(0x9f) ++ ENOMEM = syscall.Errno(0xc) ++ ENOMSG = syscall.Errno(0x23) ++ ENONET = syscall.Errno(0x40) ++ ENOPKG = syscall.Errno(0x41) ++ ENOPROTOOPT = syscall.Errno(0x63) ++ ENOSPC = syscall.Errno(0x1c) ++ ENOSR = syscall.Errno(0x3f) ++ ENOSTR = syscall.Errno(0x3c) ++ ENOSYS = syscall.Errno(0x59) ++ ENOTBLK = syscall.Errno(0xf) ++ ENOTCONN = syscall.Errno(0x86) ++ ENOTDIR = syscall.Errno(0x14) ++ ENOTEMPTY = syscall.Errno(0x5d) ++ ENOTNAM = syscall.Errno(0x89) ++ ENOTRECOVERABLE = syscall.Errno(0xa6) ++ ENOTSOCK = syscall.Errno(0x5f) ++ ENOTSUP = syscall.Errno(0x7a) ++ ENOTTY = syscall.Errno(0x19) ++ ENOTUNIQ = syscall.Errno(0x50) ++ ENXIO = syscall.Errno(0x6) ++ EOPNOTSUPP = syscall.Errno(0x7a) ++ EOVERFLOW = syscall.Errno(0x4f) ++ EOWNERDEAD = syscall.Errno(0xa5) ++ EPERM = syscall.Errno(0x1) ++ EPFNOSUPPORT = syscall.Errno(0x7b) ++ EPIPE = syscall.Errno(0x20) ++ EPROTO = syscall.Errno(0x47) ++ EPROTONOSUPPORT = syscall.Errno(0x78) ++ EPROTOTYPE = syscall.Errno(0x62) ++ ERANGE = syscall.Errno(0x22) ++ EREMCHG = syscall.Errno(0x52) ++ EREMDEV = syscall.Errno(0x8e) ++ EREMOTE = syscall.Errno(0x42) ++ EREMOTEIO = syscall.Errno(0x8c) ++ ERESTART = syscall.Errno(0x5b) ++ ERFKILL = syscall.Errno(0xa7) ++ EROFS = syscall.Errno(0x1e) ++ ESHUTDOWN = syscall.Errno(0x8f) ++ ESOCKTNOSUPPORT = syscall.Errno(0x79) ++ ESPIPE = syscall.Errno(0x1d) ++ ESRCH = syscall.Errno(0x3) ++ ESRMNT = syscall.Errno(0x45) ++ ESTALE = syscall.Errno(0x97) ++ ESTRPIPE = syscall.Errno(0x5c) ++ ETIME = syscall.Errno(0x3e) ++ ETIMEDOUT = syscall.Errno(0x91) ++ ETOOMANYREFS = syscall.Errno(0x90) ++ ETXTBSY = syscall.Errno(0x1a) ++ EUCLEAN = syscall.Errno(0x87) ++ EUNATCH = syscall.Errno(0x2a) ++ EUSERS = syscall.Errno(0x5e) ++ EWOULDBLOCK = syscall.Errno(0xb) ++ EXDEV = syscall.Errno(0x12) ++ EXFULL = syscall.Errno(0x34) ++) ++ ++// Signals ++const ( ++ SIGABRT = syscall.Signal(0x6) ++ SIGALRM = syscall.Signal(0xe) ++ SIGBUS = syscall.Signal(0xa) ++ SIGCHLD = syscall.Signal(0x12) ++ SIGCLD = syscall.Signal(0x12) ++ SIGCONT = syscall.Signal(0x19) ++ SIGEMT = syscall.Signal(0x7) ++ SIGFPE = syscall.Signal(0x8) ++ SIGHUP = syscall.Signal(0x1) ++ SIGILL = syscall.Signal(0x4) ++ SIGINT = syscall.Signal(0x2) ++ SIGIO = syscall.Signal(0x16) ++ SIGIOT = syscall.Signal(0x6) ++ SIGKILL = syscall.Signal(0x9) ++ SIGPIPE = syscall.Signal(0xd) ++ SIGPOLL = syscall.Signal(0x16) ++ SIGPROF = syscall.Signal(0x1d) ++ SIGPWR = syscall.Signal(0x13) ++ SIGQUIT = syscall.Signal(0x3) ++ SIGSEGV = syscall.Signal(0xb) ++ SIGSTOP = syscall.Signal(0x17) ++ SIGSYS = syscall.Signal(0xc) ++ SIGTERM = syscall.Signal(0xf) ++ SIGTRAP = syscall.Signal(0x5) ++ SIGTSTP = syscall.Signal(0x18) ++ SIGTTIN = syscall.Signal(0x1a) ++ SIGTTOU = syscall.Signal(0x1b) ++ SIGURG = syscall.Signal(0x15) ++ SIGUSR1 = syscall.Signal(0x10) ++ SIGUSR2 = syscall.Signal(0x11) ++ SIGVTALRM = syscall.Signal(0x1c) ++ SIGWINCH = syscall.Signal(0x14) ++ SIGXCPU = syscall.Signal(0x1e) ++ SIGXFSZ = syscall.Signal(0x1f) ++) ++ ++// Error table ++var errors = [...]string{ ++ 1: "operation not permitted", ++ 2: "no such file or directory", ++ 3: "no such process", ++ 4: "interrupted system call", ++ 5: "input/output error", ++ 6: "no such device or address", ++ 7: "argument list too long", ++ 8: "exec format error", ++ 9: "bad file descriptor", ++ 10: "no child processes", ++ 11: "resource temporarily unavailable", ++ 12: "cannot allocate memory", ++ 13: "permission denied", ++ 14: "bad address", ++ 15: "block device required", ++ 16: "device or resource busy", ++ 17: "file exists", ++ 18: "invalid cross-device link", ++ 19: "no such device", ++ 20: "not a directory", ++ 21: "is a directory", ++ 22: "invalid argument", ++ 23: "too many open files in system", ++ 24: "too many open files", ++ 25: "inappropriate ioctl for device", ++ 26: "text file busy", ++ 27: "file too large", ++ 28: "no space left on device", ++ 29: "illegal seek", ++ 30: "read-only file system", ++ 31: "too many links", ++ 32: "broken pipe", ++ 33: "numerical argument out of domain", ++ 34: "numerical result out of range", ++ 35: "no message of desired type", ++ 36: "identifier removed", ++ 37: "channel number out of range", ++ 38: "level 2 not synchronized", ++ 39: "level 3 halted", ++ 40: "level 3 reset", ++ 41: "link number out of range", ++ 42: "protocol driver not attached", ++ 43: "no CSI structure available", ++ 44: "level 2 halted", ++ 45: "resource deadlock avoided", ++ 46: "no locks available", ++ 50: "invalid exchange", ++ 51: "invalid request descriptor", ++ 52: "exchange full", ++ 53: "no anode", ++ 54: "invalid request code", ++ 55: "invalid slot", ++ 56: "file locking deadlock error", ++ 59: "bad font file format", ++ 60: "device not a stream", ++ 61: "no data available", ++ 62: "timer expired", ++ 63: "out of streams resources", ++ 64: "machine is not on the network", ++ 65: "package not installed", ++ 66: "object is remote", ++ 67: "link has been severed", ++ 68: "advertise error", ++ 69: "srmount error", ++ 70: "communication error on send", ++ 71: "protocol error", ++ 73: "RFS specific error", ++ 74: "multihop attempted", ++ 77: "bad message", ++ 78: "file name too long", ++ 79: "value too large for defined data type", ++ 80: "name not unique on network", ++ 81: "file descriptor in bad state", ++ 82: "remote address changed", ++ 83: "can not access a needed shared library", ++ 84: "accessing a corrupted shared library", ++ 85: ".lib section in a.out corrupted", ++ 86: "attempting to link in too many shared libraries", ++ 87: "cannot exec a shared library directly", ++ 88: "invalid or incomplete multibyte or wide character", ++ 89: "function not implemented", ++ 90: "too many levels of symbolic links", ++ 91: "interrupted system call should be restarted", ++ 92: "streams pipe error", ++ 93: "directory not empty", ++ 94: "too many users", ++ 95: "socket operation on non-socket", ++ 96: "destination address required", ++ 97: "message too long", ++ 98: "protocol wrong type for socket", ++ 99: "protocol not available", ++ 120: "protocol not supported", ++ 121: "socket type not supported", ++ 122: "operation not supported", ++ 123: "protocol family not supported", ++ 124: "address family not supported by protocol", ++ 125: "address already in use", ++ 126: "cannot assign requested address", ++ 127: "network is down", ++ 128: "network is unreachable", ++ 129: "network dropped connection on reset", ++ 130: "software caused connection abort", ++ 131: "connection reset by peer", ++ 132: "no buffer space available", ++ 133: "transport endpoint is already connected", ++ 134: "transport endpoint is not connected", ++ 135: "structure needs cleaning", ++ 137: "not a XENIX named type file", ++ 138: "no XENIX semaphores available", ++ 139: "is a named type file", ++ 140: "remote I/O error", ++ 141: "unknown error 141", ++ 142: "unknown error 142", ++ 143: "cannot send after transport endpoint shutdown", ++ 144: "too many references: cannot splice", ++ 145: "connection timed out", ++ 146: "connection refused", ++ 147: "host is down", ++ 148: "no route to host", ++ 149: "operation already in progress", ++ 150: "operation now in progress", ++ 151: "stale file handle", ++ 158: "operation canceled", ++ 159: "no medium found", ++ 160: "wrong medium type", ++ 161: "required key not available", ++ 162: "key has expired", ++ 163: "key has been revoked", ++ 164: "key was rejected by service", ++ 165: "owner died", ++ 166: "state not recoverable", ++ 167: "operation not possible due to RF-kill", ++ 168: "memory page has hardware error", ++ 1133: "disk quota exceeded", ++} ++ ++// Signal table ++var signals = [...]string{ ++ 1: "hangup", ++ 2: "interrupt", ++ 3: "quit", ++ 4: "illegal instruction", ++ 5: "trace/breakpoint trap", ++ 6: "aborted", ++ 7: "EMT trap", ++ 8: "floating point exception", ++ 9: "killed", ++ 10: "bus error", ++ 11: "segmentation fault", ++ 12: "bad system call", ++ 13: "broken pipe", ++ 14: "alarm clock", ++ 15: "terminated", ++ 16: "user defined signal 1", ++ 17: "user defined signal 2", ++ 18: "child exited", ++ 19: "power failure", ++ 20: "window changed", ++ 21: "urgent I/O condition", ++ 22: "I/O possible", ++ 23: "stopped (signal)", ++ 24: "stopped", ++ 25: "continued", ++ 26: "stopped (tty input)", ++ 27: "stopped (tty output)", ++ 28: "virtual timer expired", ++ 29: "profiling timer expired", ++ 30: "CPU time limit exceeded", ++ 31: "file size limit exceeded", ++} +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +new file mode 100644 +index 0000000..4d602e6 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +@@ -0,0 +1,2040 @@ ++// mkerrors.sh -m64 ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build ppc64,linux ++ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- -m64 _const.go ++ ++package unix ++ ++import "syscall" ++ ++const ( ++ AF_ALG = 0x26 ++ AF_APPLETALK = 0x5 ++ AF_ASH = 0x12 ++ AF_ATMPVC = 0x8 ++ AF_ATMSVC = 0x14 ++ AF_AX25 = 0x3 ++ AF_BLUETOOTH = 0x1f ++ AF_BRIDGE = 0x7 ++ AF_CAIF = 0x25 ++ AF_CAN = 0x1d ++ AF_DECnet = 0xc ++ AF_ECONET = 0x13 ++ AF_FILE = 0x1 ++ AF_IEEE802154 = 0x24 ++ AF_INET = 0x2 ++ AF_INET6 = 0xa ++ AF_IPX = 0x4 ++ AF_IRDA = 0x17 ++ AF_ISDN = 0x22 ++ AF_IUCV = 0x20 ++ AF_KEY = 0xf ++ AF_LLC = 0x1a ++ AF_LOCAL = 0x1 ++ AF_MAX = 0x29 ++ AF_NETBEUI = 0xd ++ AF_NETLINK = 0x10 ++ AF_NETROM = 0x6 ++ AF_NFC = 0x27 ++ AF_PACKET = 0x11 ++ AF_PHONET = 0x23 ++ AF_PPPOX = 0x18 ++ AF_RDS = 0x15 ++ AF_ROSE = 0xb ++ AF_ROUTE = 0x10 ++ AF_RXRPC = 0x21 ++ AF_SECURITY = 0xe ++ AF_SNA = 0x16 ++ AF_TIPC = 0x1e ++ AF_UNIX = 0x1 ++ AF_UNSPEC = 0x0 ++ AF_VSOCK = 0x28 ++ AF_WANPIPE = 0x19 ++ AF_X25 = 0x9 ++ ALG_OP_DECRYPT = 0x0 ++ ALG_OP_ENCRYPT = 0x1 ++ ALG_SET_AEAD_ASSOCLEN = 0x4 ++ ALG_SET_AEAD_AUTHSIZE = 0x5 ++ ALG_SET_IV = 0x2 ++ ALG_SET_KEY = 0x1 ++ ALG_SET_OP = 0x3 ++ ARPHRD_6LOWPAN = 0x339 ++ ARPHRD_ADAPT = 0x108 ++ ARPHRD_APPLETLK = 0x8 ++ ARPHRD_ARCNET = 0x7 ++ ARPHRD_ASH = 0x30d ++ ARPHRD_ATM = 0x13 ++ ARPHRD_AX25 = 0x3 ++ ARPHRD_BIF = 0x307 ++ ARPHRD_CAIF = 0x336 ++ ARPHRD_CAN = 0x118 ++ ARPHRD_CHAOS = 0x5 ++ ARPHRD_CISCO = 0x201 ++ ARPHRD_CSLIP = 0x101 ++ ARPHRD_CSLIP6 = 0x103 ++ ARPHRD_DDCMP = 0x205 ++ ARPHRD_DLCI = 0xf ++ ARPHRD_ECONET = 0x30e ++ ARPHRD_EETHER = 0x2 ++ ARPHRD_ETHER = 0x1 ++ ARPHRD_EUI64 = 0x1b ++ ARPHRD_FCAL = 0x311 ++ ARPHRD_FCFABRIC = 0x313 ++ ARPHRD_FCPL = 0x312 ++ ARPHRD_FCPP = 0x310 ++ ARPHRD_FDDI = 0x306 ++ ARPHRD_FRAD = 0x302 ++ ARPHRD_HDLC = 0x201 ++ ARPHRD_HIPPI = 0x30c ++ ARPHRD_HWX25 = 0x110 ++ ARPHRD_IEEE1394 = 0x18 ++ ARPHRD_IEEE802 = 0x6 ++ ARPHRD_IEEE80211 = 0x321 ++ ARPHRD_IEEE80211_PRISM = 0x322 ++ ARPHRD_IEEE80211_RADIOTAP = 0x323 ++ ARPHRD_IEEE802154 = 0x324 ++ ARPHRD_IEEE802154_MONITOR = 0x325 ++ ARPHRD_IEEE802_TR = 0x320 ++ ARPHRD_INFINIBAND = 0x20 ++ ARPHRD_IP6GRE = 0x337 ++ ARPHRD_IPDDP = 0x309 ++ ARPHRD_IPGRE = 0x30a ++ ARPHRD_IRDA = 0x30f ++ ARPHRD_LAPB = 0x204 ++ ARPHRD_LOCALTLK = 0x305 ++ ARPHRD_LOOPBACK = 0x304 ++ ARPHRD_METRICOM = 0x17 ++ ARPHRD_NETLINK = 0x338 ++ ARPHRD_NETROM = 0x0 ++ ARPHRD_NONE = 0xfffe ++ ARPHRD_PHONET = 0x334 ++ ARPHRD_PHONET_PIPE = 0x335 ++ ARPHRD_PIMREG = 0x30b ++ ARPHRD_PPP = 0x200 ++ ARPHRD_PRONET = 0x4 ++ ARPHRD_RAWHDLC = 0x206 ++ ARPHRD_ROSE = 0x10e ++ ARPHRD_RSRVD = 0x104 ++ ARPHRD_SIT = 0x308 ++ ARPHRD_SKIP = 0x303 ++ ARPHRD_SLIP = 0x100 ++ ARPHRD_SLIP6 = 0x102 ++ ARPHRD_TUNNEL = 0x300 ++ ARPHRD_TUNNEL6 = 0x301 ++ ARPHRD_VOID = 0xffff ++ ARPHRD_X25 = 0x10f ++ B0 = 0x0 ++ B1000000 = 0x17 ++ B110 = 0x3 ++ B115200 = 0x11 ++ B1152000 = 0x18 ++ B1200 = 0x9 ++ B134 = 0x4 ++ B150 = 0x5 ++ B1500000 = 0x19 ++ B1800 = 0xa ++ B19200 = 0xe ++ B200 = 0x6 ++ B2000000 = 0x1a ++ B230400 = 0x12 ++ B2400 = 0xb ++ B2500000 = 0x1b ++ B300 = 0x7 ++ B3000000 = 0x1c ++ B3500000 = 0x1d ++ B38400 = 0xf ++ B4000000 = 0x1e ++ B460800 = 0x13 ++ B4800 = 0xc ++ B50 = 0x1 ++ B500000 = 0x14 ++ B57600 = 0x10 ++ B576000 = 0x15 ++ B600 = 0x8 ++ B75 = 0x2 ++ B921600 = 0x16 ++ B9600 = 0xd ++ BLKBSZGET = 0x80081270 ++ BLKBSZSET = 0x40081271 ++ BLKFLSBUF = 0x1261 ++ BLKFRAGET = 0x1265 ++ BLKFRASET = 0x1264 ++ BLKGETSIZE = 0x1260 ++ BLKGETSIZE64 = 0x80081272 ++ BLKRAGET = 0x1263 ++ BLKRASET = 0x1262 ++ BLKROGET = 0x125e ++ BLKROSET = 0x125d ++ BLKRRPART = 0x125f ++ BLKSECTGET = 0x1267 ++ BLKSECTSET = 0x1266 ++ BLKSSZGET = 0x1268 ++ BOTHER = 0x1f ++ BPF_A = 0x10 ++ BPF_ABS = 0x20 ++ BPF_ADD = 0x0 ++ BPF_ALU = 0x4 ++ BPF_AND = 0x50 ++ BPF_B = 0x10 ++ BPF_DIV = 0x30 ++ BPF_H = 0x8 ++ BPF_IMM = 0x0 ++ BPF_IND = 0x40 ++ BPF_JA = 0x0 ++ BPF_JEQ = 0x10 ++ BPF_JGE = 0x30 ++ BPF_JGT = 0x20 ++ BPF_JMP = 0x5 ++ BPF_JSET = 0x40 ++ BPF_K = 0x0 ++ BPF_LD = 0x0 ++ BPF_LDX = 0x1 ++ BPF_LEN = 0x80 ++ BPF_LSH = 0x60 ++ BPF_MAJOR_VERSION = 0x1 ++ BPF_MAXINSNS = 0x1000 ++ BPF_MEM = 0x60 ++ BPF_MEMWORDS = 0x10 ++ BPF_MINOR_VERSION = 0x1 ++ BPF_MISC = 0x7 ++ BPF_MOD = 0x90 ++ BPF_MSH = 0xa0 ++ BPF_MUL = 0x20 ++ BPF_NEG = 0x80 ++ BPF_OR = 0x40 ++ BPF_RET = 0x6 ++ BPF_RSH = 0x70 ++ BPF_ST = 0x2 ++ BPF_STX = 0x3 ++ BPF_SUB = 0x10 ++ BPF_TAX = 0x0 ++ BPF_TXA = 0x80 ++ BPF_W = 0x0 ++ BPF_X = 0x8 ++ BPF_XOR = 0xa0 ++ BRKINT = 0x2 ++ BS0 = 0x0 ++ BS1 = 0x8000 ++ BSDLY = 0x8000 ++ CAN_BCM = 0x2 ++ CAN_EFF_FLAG = 0x80000000 ++ CAN_EFF_ID_BITS = 0x1d ++ CAN_EFF_MASK = 0x1fffffff ++ CAN_ERR_FLAG = 0x20000000 ++ CAN_ERR_MASK = 0x1fffffff ++ CAN_INV_FILTER = 0x20000000 ++ CAN_ISOTP = 0x6 ++ CAN_MAX_DLC = 0x8 ++ CAN_MAX_DLEN = 0x8 ++ CAN_MCNET = 0x5 ++ CAN_MTU = 0x10 ++ CAN_NPROTO = 0x7 ++ CAN_RAW = 0x1 ++ CAN_RTR_FLAG = 0x40000000 ++ CAN_SFF_ID_BITS = 0xb ++ CAN_SFF_MASK = 0x7ff ++ CAN_TP16 = 0x3 ++ CAN_TP20 = 0x4 ++ CBAUD = 0xff ++ CBAUDEX = 0x0 ++ CFLUSH = 0xf ++ CIBAUD = 0xff0000 ++ CLOCAL = 0x8000 ++ CLOCK_BOOTTIME = 0x7 ++ CLOCK_BOOTTIME_ALARM = 0x9 ++ CLOCK_DEFAULT = 0x0 ++ CLOCK_EXT = 0x1 ++ CLOCK_INT = 0x2 ++ CLOCK_MONOTONIC = 0x1 ++ CLOCK_MONOTONIC_COARSE = 0x6 ++ CLOCK_MONOTONIC_RAW = 0x4 ++ CLOCK_PROCESS_CPUTIME_ID = 0x2 ++ CLOCK_REALTIME = 0x0 ++ CLOCK_REALTIME_ALARM = 0x8 ++ CLOCK_REALTIME_COARSE = 0x5 ++ CLOCK_THREAD_CPUTIME_ID = 0x3 ++ CLOCK_TXFROMRX = 0x4 ++ CLOCK_TXINT = 0x3 ++ CLONE_CHILD_CLEARTID = 0x200000 ++ CLONE_CHILD_SETTID = 0x1000000 ++ CLONE_DETACHED = 0x400000 ++ CLONE_FILES = 0x400 ++ CLONE_FS = 0x200 ++ CLONE_IO = 0x80000000 ++ CLONE_NEWCGROUP = 0x2000000 ++ CLONE_NEWIPC = 0x8000000 ++ CLONE_NEWNET = 0x40000000 ++ CLONE_NEWNS = 0x20000 ++ CLONE_NEWPID = 0x20000000 ++ CLONE_NEWUSER = 0x10000000 ++ CLONE_NEWUTS = 0x4000000 ++ CLONE_PARENT = 0x8000 ++ CLONE_PARENT_SETTID = 0x100000 ++ CLONE_PTRACE = 0x2000 ++ CLONE_SETTLS = 0x80000 ++ CLONE_SIGHAND = 0x800 ++ CLONE_SYSVSEM = 0x40000 ++ CLONE_THREAD = 0x10000 ++ CLONE_UNTRACED = 0x800000 ++ CLONE_VFORK = 0x4000 ++ CLONE_VM = 0x100 ++ CMSPAR = 0x40000000 ++ CR0 = 0x0 ++ CR1 = 0x1000 ++ CR2 = 0x2000 ++ CR3 = 0x3000 ++ CRDLY = 0x3000 ++ CREAD = 0x800 ++ CRTSCTS = 0x80000000 ++ CS5 = 0x0 ++ CS6 = 0x100 ++ CS7 = 0x200 ++ CS8 = 0x300 ++ CSIGNAL = 0xff ++ CSIZE = 0x300 ++ CSTART = 0x11 ++ CSTATUS = 0x0 ++ CSTOP = 0x13 ++ CSTOPB = 0x400 ++ CSUSP = 0x1a ++ DT_BLK = 0x6 ++ DT_CHR = 0x2 ++ DT_DIR = 0x4 ++ DT_FIFO = 0x1 ++ DT_LNK = 0xa ++ DT_REG = 0x8 ++ DT_SOCK = 0xc ++ DT_UNKNOWN = 0x0 ++ DT_WHT = 0xe ++ ECHO = 0x8 ++ ECHOCTL = 0x40 ++ ECHOE = 0x2 ++ ECHOK = 0x4 ++ ECHOKE = 0x1 ++ ECHONL = 0x10 ++ ECHOPRT = 0x20 ++ ENCODING_DEFAULT = 0x0 ++ ENCODING_FM_MARK = 0x3 ++ ENCODING_FM_SPACE = 0x4 ++ ENCODING_MANCHESTER = 0x5 ++ ENCODING_NRZ = 0x1 ++ ENCODING_NRZI = 0x2 ++ EPOLLERR = 0x8 ++ EPOLLET = 0x80000000 ++ EPOLLHUP = 0x10 ++ EPOLLIN = 0x1 ++ EPOLLMSG = 0x400 ++ EPOLLONESHOT = 0x40000000 ++ EPOLLOUT = 0x4 ++ EPOLLPRI = 0x2 ++ EPOLLRDBAND = 0x80 ++ EPOLLRDHUP = 0x2000 ++ EPOLLRDNORM = 0x40 ++ EPOLLWAKEUP = 0x20000000 ++ EPOLLWRBAND = 0x200 ++ EPOLLWRNORM = 0x100 ++ EPOLL_CLOEXEC = 0x80000 ++ EPOLL_CTL_ADD = 0x1 ++ EPOLL_CTL_DEL = 0x2 ++ EPOLL_CTL_MOD = 0x3 ++ ETH_P_1588 = 0x88f7 ++ ETH_P_8021AD = 0x88a8 ++ ETH_P_8021AH = 0x88e7 ++ ETH_P_8021Q = 0x8100 ++ ETH_P_80221 = 0x8917 ++ ETH_P_802_2 = 0x4 ++ ETH_P_802_3 = 0x1 ++ ETH_P_802_3_MIN = 0x600 ++ ETH_P_802_EX1 = 0x88b5 ++ ETH_P_AARP = 0x80f3 ++ ETH_P_AF_IUCV = 0xfbfb ++ ETH_P_ALL = 0x3 ++ ETH_P_AOE = 0x88a2 ++ ETH_P_ARCNET = 0x1a ++ ETH_P_ARP = 0x806 ++ ETH_P_ATALK = 0x809b ++ ETH_P_ATMFATE = 0x8884 ++ ETH_P_ATMMPOA = 0x884c ++ ETH_P_AX25 = 0x2 ++ ETH_P_BATMAN = 0x4305 ++ ETH_P_BPQ = 0x8ff ++ ETH_P_CAIF = 0xf7 ++ ETH_P_CAN = 0xc ++ ETH_P_CANFD = 0xd ++ ETH_P_CONTROL = 0x16 ++ ETH_P_CUST = 0x6006 ++ ETH_P_DDCMP = 0x6 ++ ETH_P_DEC = 0x6000 ++ ETH_P_DIAG = 0x6005 ++ ETH_P_DNA_DL = 0x6001 ++ ETH_P_DNA_RC = 0x6002 ++ ETH_P_DNA_RT = 0x6003 ++ ETH_P_DSA = 0x1b ++ ETH_P_ECONET = 0x18 ++ ETH_P_EDSA = 0xdada ++ ETH_P_FCOE = 0x8906 ++ ETH_P_FIP = 0x8914 ++ ETH_P_HDLC = 0x19 ++ ETH_P_IEEE802154 = 0xf6 ++ ETH_P_IEEEPUP = 0xa00 ++ ETH_P_IEEEPUPAT = 0xa01 ++ ETH_P_IP = 0x800 ++ ETH_P_IPV6 = 0x86dd ++ ETH_P_IPX = 0x8137 ++ ETH_P_IRDA = 0x17 ++ ETH_P_LAT = 0x6004 ++ ETH_P_LINK_CTL = 0x886c ++ ETH_P_LOCALTALK = 0x9 ++ ETH_P_LOOP = 0x60 ++ ETH_P_LOOPBACK = 0x9000 ++ ETH_P_MOBITEX = 0x15 ++ ETH_P_MPLS_MC = 0x8848 ++ ETH_P_MPLS_UC = 0x8847 ++ ETH_P_MVRP = 0x88f5 ++ ETH_P_PAE = 0x888e ++ ETH_P_PAUSE = 0x8808 ++ ETH_P_PHONET = 0xf5 ++ ETH_P_PPPTALK = 0x10 ++ ETH_P_PPP_DISC = 0x8863 ++ ETH_P_PPP_MP = 0x8 ++ ETH_P_PPP_SES = 0x8864 ++ ETH_P_PRP = 0x88fb ++ ETH_P_PUP = 0x200 ++ ETH_P_PUPAT = 0x201 ++ ETH_P_QINQ1 = 0x9100 ++ ETH_P_QINQ2 = 0x9200 ++ ETH_P_QINQ3 = 0x9300 ++ ETH_P_RARP = 0x8035 ++ ETH_P_SCA = 0x6007 ++ ETH_P_SLOW = 0x8809 ++ ETH_P_SNAP = 0x5 ++ ETH_P_TDLS = 0x890d ++ ETH_P_TEB = 0x6558 ++ ETH_P_TIPC = 0x88ca ++ ETH_P_TRAILER = 0x1c ++ ETH_P_TR_802_2 = 0x11 ++ ETH_P_WAN_PPP = 0x7 ++ ETH_P_WCCP = 0x883e ++ ETH_P_X25 = 0x805 ++ ETH_P_XDSA = 0xf8 ++ EXTA = 0xe ++ EXTB = 0xf ++ EXTPROC = 0x10000000 ++ FALLOC_FL_COLLAPSE_RANGE = 0x8 ++ FALLOC_FL_INSERT_RANGE = 0x20 ++ FALLOC_FL_KEEP_SIZE = 0x1 ++ FALLOC_FL_NO_HIDE_STALE = 0x4 ++ FALLOC_FL_PUNCH_HOLE = 0x2 ++ FALLOC_FL_ZERO_RANGE = 0x10 ++ FD_CLOEXEC = 0x1 ++ FD_SETSIZE = 0x400 ++ FF0 = 0x0 ++ FF1 = 0x4000 ++ FFDLY = 0x4000 ++ FLUSHO = 0x800000 ++ F_DUPFD = 0x0 ++ F_DUPFD_CLOEXEC = 0x406 ++ F_EXLCK = 0x4 ++ F_GETFD = 0x1 ++ F_GETFL = 0x3 ++ F_GETLEASE = 0x401 ++ F_GETLK = 0x5 ++ F_GETLK64 = 0xc ++ F_GETOWN = 0x9 ++ F_GETOWN_EX = 0x10 ++ F_GETPIPE_SZ = 0x408 ++ F_GETSIG = 0xb ++ F_LOCK = 0x1 ++ F_NOTIFY = 0x402 ++ F_OFD_GETLK = 0x24 ++ F_OFD_SETLK = 0x25 ++ F_OFD_SETLKW = 0x26 ++ F_OK = 0x0 ++ F_RDLCK = 0x0 ++ F_SETFD = 0x2 ++ F_SETFL = 0x4 ++ F_SETLEASE = 0x400 ++ F_SETLK = 0x6 ++ F_SETLK64 = 0xd ++ F_SETLKW = 0x7 ++ F_SETLKW64 = 0xe ++ F_SETOWN = 0x8 ++ F_SETOWN_EX = 0xf ++ F_SETPIPE_SZ = 0x407 ++ F_SETSIG = 0xa ++ F_SHLCK = 0x8 ++ F_TEST = 0x3 ++ F_TLOCK = 0x2 ++ F_ULOCK = 0x0 ++ F_UNLCK = 0x2 ++ F_WRLCK = 0x1 ++ GRND_NONBLOCK = 0x1 ++ GRND_RANDOM = 0x2 ++ HUPCL = 0x4000 ++ IBSHIFT = 0x10 ++ ICANON = 0x100 ++ ICMPV6_FILTER = 0x1 ++ ICRNL = 0x100 ++ IEXTEN = 0x400 ++ IFA_F_DADFAILED = 0x8 ++ IFA_F_DEPRECATED = 0x20 ++ IFA_F_HOMEADDRESS = 0x10 ++ IFA_F_MANAGETEMPADDR = 0x100 ++ IFA_F_NODAD = 0x2 ++ IFA_F_NOPREFIXROUTE = 0x200 ++ IFA_F_OPTIMISTIC = 0x4 ++ IFA_F_PERMANENT = 0x80 ++ IFA_F_SECONDARY = 0x1 ++ IFA_F_TEMPORARY = 0x1 ++ IFA_F_TENTATIVE = 0x40 ++ IFA_MAX = 0x8 ++ IFF_ALLMULTI = 0x200 ++ IFF_ATTACH_QUEUE = 0x200 ++ IFF_AUTOMEDIA = 0x4000 ++ IFF_BROADCAST = 0x2 ++ IFF_DEBUG = 0x4 ++ IFF_DETACH_QUEUE = 0x400 ++ IFF_DORMANT = 0x20000 ++ IFF_DYNAMIC = 0x8000 ++ IFF_ECHO = 0x40000 ++ IFF_LOOPBACK = 0x8 ++ IFF_LOWER_UP = 0x10000 ++ IFF_MASTER = 0x400 ++ IFF_MULTICAST = 0x1000 ++ IFF_MULTI_QUEUE = 0x100 ++ IFF_NOARP = 0x80 ++ IFF_NOFILTER = 0x1000 ++ IFF_NOTRAILERS = 0x20 ++ IFF_NO_PI = 0x1000 ++ IFF_ONE_QUEUE = 0x2000 ++ IFF_PERSIST = 0x800 ++ IFF_POINTOPOINT = 0x10 ++ IFF_PORTSEL = 0x2000 ++ IFF_PROMISC = 0x100 ++ IFF_RUNNING = 0x40 ++ IFF_SLAVE = 0x800 ++ IFF_TAP = 0x2 ++ IFF_TUN = 0x1 ++ IFF_TUN_EXCL = 0x8000 ++ IFF_UP = 0x1 ++ IFF_VNET_HDR = 0x4000 ++ IFF_VOLATILE = 0x70c5a ++ IFNAMSIZ = 0x10 ++ IGNBRK = 0x1 ++ IGNCR = 0x80 ++ IGNPAR = 0x4 ++ IMAXBEL = 0x2000 ++ INLCR = 0x40 ++ INPCK = 0x10 ++ IN_ACCESS = 0x1 ++ IN_ALL_EVENTS = 0xfff ++ IN_ATTRIB = 0x4 ++ IN_CLASSA_HOST = 0xffffff ++ IN_CLASSA_MAX = 0x80 ++ IN_CLASSA_NET = 0xff000000 ++ IN_CLASSA_NSHIFT = 0x18 ++ IN_CLASSB_HOST = 0xffff ++ IN_CLASSB_MAX = 0x10000 ++ IN_CLASSB_NET = 0xffff0000 ++ IN_CLASSB_NSHIFT = 0x10 ++ IN_CLASSC_HOST = 0xff ++ IN_CLASSC_NET = 0xffffff00 ++ IN_CLASSC_NSHIFT = 0x8 ++ IN_CLOEXEC = 0x80000 ++ IN_CLOSE = 0x18 ++ IN_CLOSE_NOWRITE = 0x10 ++ IN_CLOSE_WRITE = 0x8 ++ IN_CREATE = 0x100 ++ IN_DELETE = 0x200 ++ IN_DELETE_SELF = 0x400 ++ IN_DONT_FOLLOW = 0x2000000 ++ IN_EXCL_UNLINK = 0x4000000 ++ IN_IGNORED = 0x8000 ++ IN_ISDIR = 0x40000000 ++ IN_LOOPBACKNET = 0x7f ++ IN_MASK_ADD = 0x20000000 ++ IN_MODIFY = 0x2 ++ IN_MOVE = 0xc0 ++ IN_MOVED_FROM = 0x40 ++ IN_MOVED_TO = 0x80 ++ IN_MOVE_SELF = 0x800 ++ IN_NONBLOCK = 0x800 ++ IN_ONESHOT = 0x80000000 ++ IN_ONLYDIR = 0x1000000 ++ IN_OPEN = 0x20 ++ IN_Q_OVERFLOW = 0x4000 ++ IN_UNMOUNT = 0x2000 ++ IPPROTO_AH = 0x33 ++ IPPROTO_BEETPH = 0x5e ++ IPPROTO_COMP = 0x6c ++ IPPROTO_DCCP = 0x21 ++ IPPROTO_DSTOPTS = 0x3c ++ IPPROTO_EGP = 0x8 ++ IPPROTO_ENCAP = 0x62 ++ IPPROTO_ESP = 0x32 ++ IPPROTO_FRAGMENT = 0x2c ++ IPPROTO_GRE = 0x2f ++ IPPROTO_HOPOPTS = 0x0 ++ IPPROTO_ICMP = 0x1 ++ IPPROTO_ICMPV6 = 0x3a ++ IPPROTO_IDP = 0x16 ++ IPPROTO_IGMP = 0x2 ++ IPPROTO_IP = 0x0 ++ IPPROTO_IPIP = 0x4 ++ IPPROTO_IPV6 = 0x29 ++ IPPROTO_MH = 0x87 ++ IPPROTO_MTP = 0x5c ++ IPPROTO_NONE = 0x3b ++ IPPROTO_PIM = 0x67 ++ IPPROTO_PUP = 0xc ++ IPPROTO_RAW = 0xff ++ IPPROTO_ROUTING = 0x2b ++ IPPROTO_RSVP = 0x2e ++ IPPROTO_SCTP = 0x84 ++ IPPROTO_TCP = 0x6 ++ IPPROTO_TP = 0x1d ++ IPPROTO_UDP = 0x11 ++ IPPROTO_UDPLITE = 0x88 ++ IPV6_2292DSTOPTS = 0x4 ++ IPV6_2292HOPLIMIT = 0x8 ++ IPV6_2292HOPOPTS = 0x3 ++ IPV6_2292PKTINFO = 0x2 ++ IPV6_2292PKTOPTIONS = 0x6 ++ IPV6_2292RTHDR = 0x5 ++ IPV6_ADDRFORM = 0x1 ++ IPV6_ADD_MEMBERSHIP = 0x14 ++ IPV6_AUTHHDR = 0xa ++ IPV6_CHECKSUM = 0x7 ++ IPV6_DROP_MEMBERSHIP = 0x15 ++ IPV6_DSTOPTS = 0x3b ++ IPV6_HOPLIMIT = 0x34 ++ IPV6_HOPOPTS = 0x36 ++ IPV6_IPSEC_POLICY = 0x22 ++ IPV6_JOIN_ANYCAST = 0x1b ++ IPV6_JOIN_GROUP = 0x14 ++ IPV6_LEAVE_ANYCAST = 0x1c ++ IPV6_LEAVE_GROUP = 0x15 ++ IPV6_MTU = 0x18 ++ IPV6_MTU_DISCOVER = 0x17 ++ IPV6_MULTICAST_HOPS = 0x12 ++ IPV6_MULTICAST_IF = 0x11 ++ IPV6_MULTICAST_LOOP = 0x13 ++ IPV6_NEXTHOP = 0x9 ++ IPV6_PKTINFO = 0x32 ++ IPV6_PMTUDISC_DO = 0x2 ++ IPV6_PMTUDISC_DONT = 0x0 ++ IPV6_PMTUDISC_INTERFACE = 0x4 ++ IPV6_PMTUDISC_OMIT = 0x5 ++ IPV6_PMTUDISC_PROBE = 0x3 ++ IPV6_PMTUDISC_WANT = 0x1 ++ IPV6_RECVDSTOPTS = 0x3a ++ IPV6_RECVERR = 0x19 ++ IPV6_RECVHOPLIMIT = 0x33 ++ IPV6_RECVHOPOPTS = 0x35 ++ IPV6_RECVPKTINFO = 0x31 ++ IPV6_RECVRTHDR = 0x38 ++ IPV6_RECVTCLASS = 0x42 ++ IPV6_ROUTER_ALERT = 0x16 ++ IPV6_RTHDR = 0x39 ++ IPV6_RTHDRDSTOPTS = 0x37 ++ IPV6_RTHDR_LOOSE = 0x0 ++ IPV6_RTHDR_STRICT = 0x1 ++ IPV6_RTHDR_TYPE_0 = 0x0 ++ IPV6_RXDSTOPTS = 0x3b ++ IPV6_RXHOPOPTS = 0x36 ++ IPV6_TCLASS = 0x43 ++ IPV6_UNICAST_HOPS = 0x10 ++ IPV6_V6ONLY = 0x1a ++ IPV6_XFRM_POLICY = 0x23 ++ IP_ADD_MEMBERSHIP = 0x23 ++ IP_ADD_SOURCE_MEMBERSHIP = 0x27 ++ IP_BLOCK_SOURCE = 0x26 ++ IP_DEFAULT_MULTICAST_LOOP = 0x1 ++ IP_DEFAULT_MULTICAST_TTL = 0x1 ++ IP_DF = 0x4000 ++ IP_DROP_MEMBERSHIP = 0x24 ++ IP_DROP_SOURCE_MEMBERSHIP = 0x28 ++ IP_FREEBIND = 0xf ++ IP_HDRINCL = 0x3 ++ IP_IPSEC_POLICY = 0x10 ++ IP_MAXPACKET = 0xffff ++ IP_MAX_MEMBERSHIPS = 0x14 ++ IP_MF = 0x2000 ++ IP_MINTTL = 0x15 ++ IP_MSFILTER = 0x29 ++ IP_MSS = 0x240 ++ IP_MTU = 0xe ++ IP_MTU_DISCOVER = 0xa ++ IP_MULTICAST_ALL = 0x31 ++ IP_MULTICAST_IF = 0x20 ++ IP_MULTICAST_LOOP = 0x22 ++ IP_MULTICAST_TTL = 0x21 ++ IP_NODEFRAG = 0x16 ++ IP_OFFMASK = 0x1fff ++ IP_OPTIONS = 0x4 ++ IP_ORIGDSTADDR = 0x14 ++ IP_PASSSEC = 0x12 ++ IP_PKTINFO = 0x8 ++ IP_PKTOPTIONS = 0x9 ++ IP_PMTUDISC = 0xa ++ IP_PMTUDISC_DO = 0x2 ++ IP_PMTUDISC_DONT = 0x0 ++ IP_PMTUDISC_INTERFACE = 0x4 ++ IP_PMTUDISC_OMIT = 0x5 ++ IP_PMTUDISC_PROBE = 0x3 ++ IP_PMTUDISC_WANT = 0x1 ++ IP_RECVERR = 0xb ++ IP_RECVOPTS = 0x6 ++ IP_RECVORIGDSTADDR = 0x14 ++ IP_RECVRETOPTS = 0x7 ++ IP_RECVTOS = 0xd ++ IP_RECVTTL = 0xc ++ IP_RETOPTS = 0x7 ++ IP_RF = 0x8000 ++ IP_ROUTER_ALERT = 0x5 ++ IP_TOS = 0x1 ++ IP_TRANSPARENT = 0x13 ++ IP_TTL = 0x2 ++ IP_UNBLOCK_SOURCE = 0x25 ++ IP_UNICAST_IF = 0x32 ++ IP_XFRM_POLICY = 0x11 ++ ISIG = 0x80 ++ ISTRIP = 0x20 ++ IUCLC = 0x1000 ++ IUTF8 = 0x4000 ++ IXANY = 0x800 ++ IXOFF = 0x400 ++ IXON = 0x200 ++ LINUX_REBOOT_CMD_CAD_OFF = 0x0 ++ LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef ++ LINUX_REBOOT_CMD_HALT = 0xcdef0123 ++ LINUX_REBOOT_CMD_KEXEC = 0x45584543 ++ LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc ++ LINUX_REBOOT_CMD_RESTART = 0x1234567 ++ LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 ++ LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 ++ LINUX_REBOOT_MAGIC1 = 0xfee1dead ++ LINUX_REBOOT_MAGIC2 = 0x28121969 ++ LOCK_EX = 0x2 ++ LOCK_NB = 0x4 ++ LOCK_SH = 0x1 ++ LOCK_UN = 0x8 ++ MADV_DODUMP = 0x11 ++ MADV_DOFORK = 0xb ++ MADV_DONTDUMP = 0x10 ++ MADV_DONTFORK = 0xa ++ MADV_DONTNEED = 0x4 ++ MADV_HUGEPAGE = 0xe ++ MADV_HWPOISON = 0x64 ++ MADV_MERGEABLE = 0xc ++ MADV_NOHUGEPAGE = 0xf ++ MADV_NORMAL = 0x0 ++ MADV_RANDOM = 0x1 ++ MADV_REMOVE = 0x9 ++ MADV_SEQUENTIAL = 0x2 ++ MADV_UNMERGEABLE = 0xd ++ MADV_WILLNEED = 0x3 ++ MAP_ANON = 0x20 ++ MAP_ANONYMOUS = 0x20 ++ MAP_DENYWRITE = 0x800 ++ MAP_EXECUTABLE = 0x1000 ++ MAP_FILE = 0x0 ++ MAP_FIXED = 0x10 ++ MAP_GROWSDOWN = 0x100 ++ MAP_HUGETLB = 0x40000 ++ MAP_HUGE_MASK = 0x3f ++ MAP_HUGE_SHIFT = 0x1a ++ MAP_LOCKED = 0x80 ++ MAP_NONBLOCK = 0x10000 ++ MAP_NORESERVE = 0x40 ++ MAP_POPULATE = 0x8000 ++ MAP_PRIVATE = 0x2 ++ MAP_SHARED = 0x1 ++ MAP_STACK = 0x20000 ++ MAP_TYPE = 0xf ++ MCL_CURRENT = 0x2000 ++ MCL_FUTURE = 0x4000 ++ MNT_DETACH = 0x2 ++ MNT_EXPIRE = 0x4 ++ MNT_FORCE = 0x1 ++ MSG_CMSG_CLOEXEC = 0x40000000 ++ MSG_CONFIRM = 0x800 ++ MSG_CTRUNC = 0x8 ++ MSG_DONTROUTE = 0x4 ++ MSG_DONTWAIT = 0x40 ++ MSG_EOR = 0x80 ++ MSG_ERRQUEUE = 0x2000 ++ MSG_FASTOPEN = 0x20000000 ++ MSG_FIN = 0x200 ++ MSG_MORE = 0x8000 ++ MSG_NOSIGNAL = 0x4000 ++ MSG_OOB = 0x1 ++ MSG_PEEK = 0x2 ++ MSG_PROXY = 0x10 ++ MSG_RST = 0x1000 ++ MSG_SYN = 0x400 ++ MSG_TRUNC = 0x20 ++ MSG_TRYHARD = 0x4 ++ MSG_WAITALL = 0x100 ++ MSG_WAITFORONE = 0x10000 ++ MS_ACTIVE = 0x40000000 ++ MS_ASYNC = 0x1 ++ MS_BIND = 0x1000 ++ MS_DIRSYNC = 0x80 ++ MS_INVALIDATE = 0x2 ++ MS_I_VERSION = 0x800000 ++ MS_KERNMOUNT = 0x400000 ++ MS_MANDLOCK = 0x40 ++ MS_MGC_MSK = 0xffff0000 ++ MS_MGC_VAL = 0xc0ed0000 ++ MS_MOVE = 0x2000 ++ MS_NOATIME = 0x400 ++ MS_NODEV = 0x4 ++ MS_NODIRATIME = 0x800 ++ MS_NOEXEC = 0x8 ++ MS_NOSUID = 0x2 ++ MS_NOUSER = -0x80000000 ++ MS_POSIXACL = 0x10000 ++ MS_PRIVATE = 0x40000 ++ MS_RDONLY = 0x1 ++ MS_REC = 0x4000 ++ MS_RELATIME = 0x200000 ++ MS_REMOUNT = 0x20 ++ MS_RMT_MASK = 0x800051 ++ MS_SHARED = 0x100000 ++ MS_SILENT = 0x8000 ++ MS_SLAVE = 0x80000 ++ MS_STRICTATIME = 0x1000000 ++ MS_SYNC = 0x4 ++ MS_SYNCHRONOUS = 0x10 ++ MS_UNBINDABLE = 0x20000 ++ NAME_MAX = 0xff ++ NETLINK_ADD_MEMBERSHIP = 0x1 ++ NETLINK_AUDIT = 0x9 ++ NETLINK_BROADCAST_ERROR = 0x4 ++ NETLINK_CAP_ACK = 0xa ++ NETLINK_CONNECTOR = 0xb ++ NETLINK_CRYPTO = 0x15 ++ NETLINK_DNRTMSG = 0xe ++ NETLINK_DROP_MEMBERSHIP = 0x2 ++ NETLINK_ECRYPTFS = 0x13 ++ NETLINK_FIB_LOOKUP = 0xa ++ NETLINK_FIREWALL = 0x3 ++ NETLINK_GENERIC = 0x10 ++ NETLINK_INET_DIAG = 0x4 ++ NETLINK_IP6_FW = 0xd ++ NETLINK_ISCSI = 0x8 ++ NETLINK_KOBJECT_UEVENT = 0xf ++ NETLINK_LISTEN_ALL_NSID = 0x8 ++ NETLINK_LIST_MEMBERSHIPS = 0x9 ++ NETLINK_NETFILTER = 0xc ++ NETLINK_NFLOG = 0x5 ++ NETLINK_NO_ENOBUFS = 0x5 ++ NETLINK_PKTINFO = 0x3 ++ NETLINK_RDMA = 0x14 ++ NETLINK_ROUTE = 0x0 ++ NETLINK_RX_RING = 0x6 ++ NETLINK_SCSITRANSPORT = 0x12 ++ NETLINK_SELINUX = 0x7 ++ NETLINK_SOCK_DIAG = 0x4 ++ NETLINK_TX_RING = 0x7 ++ NETLINK_UNUSED = 0x1 ++ NETLINK_USERSOCK = 0x2 ++ NETLINK_XFRM = 0x6 ++ NL0 = 0x0 ++ NL1 = 0x100 ++ NL2 = 0x200 ++ NL3 = 0x300 ++ NLA_ALIGNTO = 0x4 ++ NLA_F_NESTED = 0x8000 ++ NLA_F_NET_BYTEORDER = 0x4000 ++ NLA_HDRLEN = 0x4 ++ NLDLY = 0x300 ++ NLMSG_ALIGNTO = 0x4 ++ NLMSG_DONE = 0x3 ++ NLMSG_ERROR = 0x2 ++ NLMSG_HDRLEN = 0x10 ++ NLMSG_MIN_TYPE = 0x10 ++ NLMSG_NOOP = 0x1 ++ NLMSG_OVERRUN = 0x4 ++ NLM_F_ACK = 0x4 ++ NLM_F_APPEND = 0x800 ++ NLM_F_ATOMIC = 0x400 ++ NLM_F_CREATE = 0x400 ++ NLM_F_DUMP = 0x300 ++ NLM_F_DUMP_FILTERED = 0x20 ++ NLM_F_DUMP_INTR = 0x10 ++ NLM_F_ECHO = 0x8 ++ NLM_F_EXCL = 0x200 ++ NLM_F_MATCH = 0x200 ++ NLM_F_MULTI = 0x2 ++ NLM_F_REPLACE = 0x100 ++ NLM_F_REQUEST = 0x1 ++ NLM_F_ROOT = 0x100 ++ NOFLSH = 0x80000000 ++ OCRNL = 0x8 ++ OFDEL = 0x80 ++ OFILL = 0x40 ++ OLCUC = 0x4 ++ ONLCR = 0x2 ++ ONLRET = 0x20 ++ ONOCR = 0x10 ++ OPOST = 0x1 ++ O_ACCMODE = 0x3 ++ O_APPEND = 0x400 ++ O_ASYNC = 0x2000 ++ O_CLOEXEC = 0x80000 ++ O_CREAT = 0x40 ++ O_DIRECT = 0x20000 ++ O_DIRECTORY = 0x4000 ++ O_DSYNC = 0x1000 ++ O_EXCL = 0x80 ++ O_FSYNC = 0x101000 ++ O_LARGEFILE = 0x0 ++ O_NDELAY = 0x800 ++ O_NOATIME = 0x40000 ++ O_NOCTTY = 0x100 ++ O_NOFOLLOW = 0x8000 ++ O_NONBLOCK = 0x800 ++ O_PATH = 0x200000 ++ O_RDONLY = 0x0 ++ O_RDWR = 0x2 ++ O_RSYNC = 0x101000 ++ O_SYNC = 0x101000 ++ O_TMPFILE = 0x410000 ++ O_TRUNC = 0x200 ++ O_WRONLY = 0x1 ++ PACKET_ADD_MEMBERSHIP = 0x1 ++ PACKET_AUXDATA = 0x8 ++ PACKET_BROADCAST = 0x1 ++ PACKET_COPY_THRESH = 0x7 ++ PACKET_DROP_MEMBERSHIP = 0x2 ++ PACKET_FANOUT = 0x12 ++ PACKET_FANOUT_CPU = 0x2 ++ PACKET_FANOUT_FLAG_DEFRAG = 0x8000 ++ PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 ++ PACKET_FANOUT_HASH = 0x0 ++ PACKET_FANOUT_LB = 0x1 ++ PACKET_FANOUT_QM = 0x5 ++ PACKET_FANOUT_RND = 0x4 ++ PACKET_FANOUT_ROLLOVER = 0x3 ++ PACKET_FASTROUTE = 0x6 ++ PACKET_HDRLEN = 0xb ++ PACKET_HOST = 0x0 ++ PACKET_KERNEL = 0x7 ++ PACKET_LOOPBACK = 0x5 ++ PACKET_LOSS = 0xe ++ PACKET_MR_ALLMULTI = 0x2 ++ PACKET_MR_MULTICAST = 0x0 ++ PACKET_MR_PROMISC = 0x1 ++ PACKET_MR_UNICAST = 0x3 ++ PACKET_MULTICAST = 0x2 ++ PACKET_ORIGDEV = 0x9 ++ PACKET_OTHERHOST = 0x3 ++ PACKET_OUTGOING = 0x4 ++ PACKET_QDISC_BYPASS = 0x14 ++ PACKET_RECV_OUTPUT = 0x3 ++ PACKET_RESERVE = 0xc ++ PACKET_RX_RING = 0x5 ++ PACKET_STATISTICS = 0x6 ++ PACKET_TIMESTAMP = 0x11 ++ PACKET_TX_HAS_OFF = 0x13 ++ PACKET_TX_RING = 0xd ++ PACKET_TX_TIMESTAMP = 0x10 ++ PACKET_USER = 0x6 ++ PACKET_VERSION = 0xa ++ PACKET_VNET_HDR = 0xf ++ PARENB = 0x1000 ++ PARITY_CRC16_PR0 = 0x2 ++ PARITY_CRC16_PR0_CCITT = 0x4 ++ PARITY_CRC16_PR1 = 0x3 ++ PARITY_CRC16_PR1_CCITT = 0x5 ++ PARITY_CRC32_PR0_CCITT = 0x6 ++ PARITY_CRC32_PR1_CCITT = 0x7 ++ PARITY_DEFAULT = 0x0 ++ PARITY_NONE = 0x1 ++ PARMRK = 0x8 ++ PARODD = 0x2000 ++ PENDIN = 0x20000000 ++ PRIO_PGRP = 0x1 ++ PRIO_PROCESS = 0x0 ++ PRIO_USER = 0x2 ++ PROT_EXEC = 0x4 ++ PROT_GROWSDOWN = 0x1000000 ++ PROT_GROWSUP = 0x2000000 ++ PROT_NONE = 0x0 ++ PROT_READ = 0x1 ++ PROT_SAO = 0x10 ++ PROT_WRITE = 0x2 ++ PR_CAPBSET_DROP = 0x18 ++ PR_CAPBSET_READ = 0x17 ++ PR_ENDIAN_BIG = 0x0 ++ PR_ENDIAN_LITTLE = 0x1 ++ PR_ENDIAN_PPC_LITTLE = 0x2 ++ PR_FPEMU_NOPRINT = 0x1 ++ PR_FPEMU_SIGFPE = 0x2 ++ PR_FP_EXC_ASYNC = 0x2 ++ PR_FP_EXC_DISABLED = 0x0 ++ PR_FP_EXC_DIV = 0x10000 ++ PR_FP_EXC_INV = 0x100000 ++ PR_FP_EXC_NONRECOV = 0x1 ++ PR_FP_EXC_OVF = 0x20000 ++ PR_FP_EXC_PRECISE = 0x3 ++ PR_FP_EXC_RES = 0x80000 ++ PR_FP_EXC_SW_ENABLE = 0x80 ++ PR_FP_EXC_UND = 0x40000 ++ PR_GET_CHILD_SUBREAPER = 0x25 ++ PR_GET_DUMPABLE = 0x3 ++ PR_GET_ENDIAN = 0x13 ++ PR_GET_FPEMU = 0x9 ++ PR_GET_FPEXC = 0xb ++ PR_GET_KEEPCAPS = 0x7 ++ PR_GET_NAME = 0x10 ++ PR_GET_NO_NEW_PRIVS = 0x27 ++ PR_GET_PDEATHSIG = 0x2 ++ PR_GET_SECCOMP = 0x15 ++ PR_GET_SECUREBITS = 0x1b ++ PR_GET_THP_DISABLE = 0x2a ++ PR_GET_TID_ADDRESS = 0x28 ++ PR_GET_TIMERSLACK = 0x1e ++ PR_GET_TIMING = 0xd ++ PR_GET_TSC = 0x19 ++ PR_GET_UNALIGN = 0x5 ++ PR_MCE_KILL = 0x21 ++ PR_MCE_KILL_CLEAR = 0x0 ++ PR_MCE_KILL_DEFAULT = 0x2 ++ PR_MCE_KILL_EARLY = 0x1 ++ PR_MCE_KILL_GET = 0x22 ++ PR_MCE_KILL_LATE = 0x0 ++ PR_MCE_KILL_SET = 0x1 ++ PR_SET_CHILD_SUBREAPER = 0x24 ++ PR_SET_DUMPABLE = 0x4 ++ PR_SET_ENDIAN = 0x14 ++ PR_SET_FPEMU = 0xa ++ PR_SET_FPEXC = 0xc ++ PR_SET_KEEPCAPS = 0x8 ++ PR_SET_MM = 0x23 ++ PR_SET_MM_ARG_END = 0x9 ++ PR_SET_MM_ARG_START = 0x8 ++ PR_SET_MM_AUXV = 0xc ++ PR_SET_MM_BRK = 0x7 ++ PR_SET_MM_END_CODE = 0x2 ++ PR_SET_MM_END_DATA = 0x4 ++ PR_SET_MM_ENV_END = 0xb ++ PR_SET_MM_ENV_START = 0xa ++ PR_SET_MM_EXE_FILE = 0xd ++ PR_SET_MM_MAP = 0xe ++ PR_SET_MM_MAP_SIZE = 0xf ++ PR_SET_MM_START_BRK = 0x6 ++ PR_SET_MM_START_CODE = 0x1 ++ PR_SET_MM_START_DATA = 0x3 ++ PR_SET_MM_START_STACK = 0x5 ++ PR_SET_NAME = 0xf ++ PR_SET_NO_NEW_PRIVS = 0x26 ++ PR_SET_PDEATHSIG = 0x1 ++ PR_SET_PTRACER = 0x59616d61 ++ PR_SET_PTRACER_ANY = -0x1 ++ PR_SET_SECCOMP = 0x16 ++ PR_SET_SECUREBITS = 0x1c ++ PR_SET_THP_DISABLE = 0x29 ++ PR_SET_TIMERSLACK = 0x1d ++ PR_SET_TIMING = 0xe ++ PR_SET_TSC = 0x1a ++ PR_SET_UNALIGN = 0x6 ++ PR_TASK_PERF_EVENTS_DISABLE = 0x1f ++ PR_TASK_PERF_EVENTS_ENABLE = 0x20 ++ PR_TIMING_STATISTICAL = 0x0 ++ PR_TIMING_TIMESTAMP = 0x1 ++ PR_TSC_ENABLE = 0x1 ++ PR_TSC_SIGSEGV = 0x2 ++ PR_UNALIGN_NOPRINT = 0x1 ++ PR_UNALIGN_SIGBUS = 0x2 ++ PTRACE_ATTACH = 0x10 ++ PTRACE_CONT = 0x7 ++ PTRACE_DETACH = 0x11 ++ PTRACE_EVENT_CLONE = 0x3 ++ PTRACE_EVENT_EXEC = 0x4 ++ PTRACE_EVENT_EXIT = 0x6 ++ PTRACE_EVENT_FORK = 0x1 ++ PTRACE_EVENT_SECCOMP = 0x7 ++ PTRACE_EVENT_STOP = 0x80 ++ PTRACE_EVENT_VFORK = 0x2 ++ PTRACE_EVENT_VFORK_DONE = 0x5 ++ PTRACE_GETEVENTMSG = 0x4201 ++ PTRACE_GETEVRREGS = 0x14 ++ PTRACE_GETFPREGS = 0xe ++ PTRACE_GETREGS = 0xc ++ PTRACE_GETREGS64 = 0x16 ++ PTRACE_GETREGSET = 0x4204 ++ PTRACE_GETSIGINFO = 0x4202 ++ PTRACE_GETSIGMASK = 0x420a ++ PTRACE_GETVRREGS = 0x12 ++ PTRACE_GETVSRREGS = 0x1b ++ PTRACE_GET_DEBUGREG = 0x19 ++ PTRACE_INTERRUPT = 0x4207 ++ PTRACE_KILL = 0x8 ++ PTRACE_LISTEN = 0x4208 ++ PTRACE_O_EXITKILL = 0x100000 ++ PTRACE_O_MASK = 0x1000ff ++ PTRACE_O_TRACECLONE = 0x8 ++ PTRACE_O_TRACEEXEC = 0x10 ++ PTRACE_O_TRACEEXIT = 0x40 ++ PTRACE_O_TRACEFORK = 0x2 ++ PTRACE_O_TRACESECCOMP = 0x80 ++ PTRACE_O_TRACESYSGOOD = 0x1 ++ PTRACE_O_TRACEVFORK = 0x4 ++ PTRACE_O_TRACEVFORKDONE = 0x20 ++ PTRACE_PEEKDATA = 0x2 ++ PTRACE_PEEKSIGINFO = 0x4209 ++ PTRACE_PEEKSIGINFO_SHARED = 0x1 ++ PTRACE_PEEKTEXT = 0x1 ++ PTRACE_PEEKUSR = 0x3 ++ PTRACE_POKEDATA = 0x5 ++ PTRACE_POKETEXT = 0x4 ++ PTRACE_POKEUSR = 0x6 ++ PTRACE_SEIZE = 0x4206 ++ PTRACE_SETEVRREGS = 0x15 ++ PTRACE_SETFPREGS = 0xf ++ PTRACE_SETOPTIONS = 0x4200 ++ PTRACE_SETREGS = 0xd ++ PTRACE_SETREGS64 = 0x17 ++ PTRACE_SETREGSET = 0x4205 ++ PTRACE_SETSIGINFO = 0x4203 ++ PTRACE_SETSIGMASK = 0x420b ++ PTRACE_SETVRREGS = 0x13 ++ PTRACE_SETVSRREGS = 0x1c ++ PTRACE_SET_DEBUGREG = 0x1a ++ PTRACE_SINGLEBLOCK = 0x100 ++ PTRACE_SINGLESTEP = 0x9 ++ PTRACE_SYSCALL = 0x18 ++ PTRACE_TRACEME = 0x0 ++ PT_CCR = 0x26 ++ PT_CTR = 0x23 ++ PT_DAR = 0x29 ++ PT_DSCR = 0x2c ++ PT_DSISR = 0x2a ++ PT_FPR0 = 0x30 ++ PT_FPSCR = 0x50 ++ PT_LNK = 0x24 ++ PT_MSR = 0x21 ++ PT_NIP = 0x20 ++ PT_ORIG_R3 = 0x22 ++ PT_R0 = 0x0 ++ PT_R1 = 0x1 ++ PT_R10 = 0xa ++ PT_R11 = 0xb ++ PT_R12 = 0xc ++ PT_R13 = 0xd ++ PT_R14 = 0xe ++ PT_R15 = 0xf ++ PT_R16 = 0x10 ++ PT_R17 = 0x11 ++ PT_R18 = 0x12 ++ PT_R19 = 0x13 ++ PT_R2 = 0x2 ++ PT_R20 = 0x14 ++ PT_R21 = 0x15 ++ PT_R22 = 0x16 ++ PT_R23 = 0x17 ++ PT_R24 = 0x18 ++ PT_R25 = 0x19 ++ PT_R26 = 0x1a ++ PT_R27 = 0x1b ++ PT_R28 = 0x1c ++ PT_R29 = 0x1d ++ PT_R3 = 0x3 ++ PT_R30 = 0x1e ++ PT_R31 = 0x1f ++ PT_R4 = 0x4 ++ PT_R5 = 0x5 ++ PT_R6 = 0x6 ++ PT_R7 = 0x7 ++ PT_R8 = 0x8 ++ PT_R9 = 0x9 ++ PT_REGS_COUNT = 0x2c ++ PT_RESULT = 0x2b ++ PT_SOFTE = 0x27 ++ PT_TRAP = 0x28 ++ PT_VR0 = 0x52 ++ PT_VRSAVE = 0x94 ++ PT_VSCR = 0x93 ++ PT_VSR0 = 0x96 ++ PT_VSR31 = 0xd4 ++ PT_XER = 0x25 ++ RLIMIT_AS = 0x9 ++ RLIMIT_CORE = 0x4 ++ RLIMIT_CPU = 0x0 ++ RLIMIT_DATA = 0x2 ++ RLIMIT_FSIZE = 0x1 ++ RLIMIT_NOFILE = 0x7 ++ RLIMIT_STACK = 0x3 ++ RLIM_INFINITY = -0x1 ++ RTAX_ADVMSS = 0x8 ++ RTAX_CWND = 0x7 ++ RTAX_FEATURES = 0xc ++ RTAX_FEATURE_ALLFRAG = 0x8 ++ RTAX_FEATURE_ECN = 0x1 ++ RTAX_FEATURE_SACK = 0x2 ++ RTAX_FEATURE_TIMESTAMP = 0x4 ++ RTAX_HOPLIMIT = 0xa ++ RTAX_INITCWND = 0xb ++ RTAX_INITRWND = 0xe ++ RTAX_LOCK = 0x1 ++ RTAX_MAX = 0xf ++ RTAX_MTU = 0x2 ++ RTAX_QUICKACK = 0xf ++ RTAX_REORDERING = 0x9 ++ RTAX_RTO_MIN = 0xd ++ RTAX_RTT = 0x4 ++ RTAX_RTTVAR = 0x5 ++ RTAX_SSTHRESH = 0x6 ++ RTAX_UNSPEC = 0x0 ++ RTAX_WINDOW = 0x3 ++ RTA_ALIGNTO = 0x4 ++ RTA_MAX = 0x11 ++ RTCF_DIRECTSRC = 0x4000000 ++ RTCF_DOREDIRECT = 0x1000000 ++ RTCF_LOG = 0x2000000 ++ RTCF_MASQ = 0x400000 ++ RTCF_NAT = 0x800000 ++ RTCF_VALVE = 0x200000 ++ RTF_ADDRCLASSMASK = 0xf8000000 ++ RTF_ADDRCONF = 0x40000 ++ RTF_ALLONLINK = 0x20000 ++ RTF_BROADCAST = 0x10000000 ++ RTF_CACHE = 0x1000000 ++ RTF_DEFAULT = 0x10000 ++ RTF_DYNAMIC = 0x10 ++ RTF_FLOW = 0x2000000 ++ RTF_GATEWAY = 0x2 ++ RTF_HOST = 0x4 ++ RTF_INTERFACE = 0x40000000 ++ RTF_IRTT = 0x100 ++ RTF_LINKRT = 0x100000 ++ RTF_LOCAL = 0x80000000 ++ RTF_MODIFIED = 0x20 ++ RTF_MSS = 0x40 ++ RTF_MTU = 0x40 ++ RTF_MULTICAST = 0x20000000 ++ RTF_NAT = 0x8000000 ++ RTF_NOFORWARD = 0x1000 ++ RTF_NONEXTHOP = 0x200000 ++ RTF_NOPMTUDISC = 0x4000 ++ RTF_POLICY = 0x4000000 ++ RTF_REINSTATE = 0x8 ++ RTF_REJECT = 0x200 ++ RTF_STATIC = 0x400 ++ RTF_THROW = 0x2000 ++ RTF_UP = 0x1 ++ RTF_WINDOW = 0x80 ++ RTF_XRESOLVE = 0x800 ++ RTM_BASE = 0x10 ++ RTM_DELACTION = 0x31 ++ RTM_DELADDR = 0x15 ++ RTM_DELADDRLABEL = 0x49 ++ RTM_DELLINK = 0x11 ++ RTM_DELMDB = 0x55 ++ RTM_DELNEIGH = 0x1d ++ RTM_DELQDISC = 0x25 ++ RTM_DELROUTE = 0x19 ++ RTM_DELRULE = 0x21 ++ RTM_DELTCLASS = 0x29 ++ RTM_DELTFILTER = 0x2d ++ RTM_F_CLONED = 0x200 ++ RTM_F_EQUALIZE = 0x400 ++ RTM_F_NOTIFY = 0x100 ++ RTM_F_PREFIX = 0x800 ++ RTM_GETACTION = 0x32 ++ RTM_GETADDR = 0x16 ++ RTM_GETADDRLABEL = 0x4a ++ RTM_GETANYCAST = 0x3e ++ RTM_GETDCB = 0x4e ++ RTM_GETLINK = 0x12 ++ RTM_GETMDB = 0x56 ++ RTM_GETMULTICAST = 0x3a ++ RTM_GETNEIGH = 0x1e ++ RTM_GETNEIGHTBL = 0x42 ++ RTM_GETNETCONF = 0x52 ++ RTM_GETQDISC = 0x26 ++ RTM_GETROUTE = 0x1a ++ RTM_GETRULE = 0x22 ++ RTM_GETTCLASS = 0x2a ++ RTM_GETTFILTER = 0x2e ++ RTM_MAX = 0x57 ++ RTM_NEWACTION = 0x30 ++ RTM_NEWADDR = 0x14 ++ RTM_NEWADDRLABEL = 0x48 ++ RTM_NEWLINK = 0x10 ++ RTM_NEWMDB = 0x54 ++ RTM_NEWNDUSEROPT = 0x44 ++ RTM_NEWNEIGH = 0x1c ++ RTM_NEWNEIGHTBL = 0x40 ++ RTM_NEWNETCONF = 0x50 ++ RTM_NEWPREFIX = 0x34 ++ RTM_NEWQDISC = 0x24 ++ RTM_NEWROUTE = 0x18 ++ RTM_NEWRULE = 0x20 ++ RTM_NEWTCLASS = 0x28 ++ RTM_NEWTFILTER = 0x2c ++ RTM_NR_FAMILIES = 0x12 ++ RTM_NR_MSGTYPES = 0x48 ++ RTM_SETDCB = 0x4f ++ RTM_SETLINK = 0x13 ++ RTM_SETNEIGHTBL = 0x43 ++ RTNH_ALIGNTO = 0x4 ++ RTNH_F_DEAD = 0x1 ++ RTNH_F_ONLINK = 0x4 ++ RTNH_F_PERVASIVE = 0x2 ++ RTN_MAX = 0xb ++ RTPROT_BIRD = 0xc ++ RTPROT_BOOT = 0x3 ++ RTPROT_DHCP = 0x10 ++ RTPROT_DNROUTED = 0xd ++ RTPROT_GATED = 0x8 ++ RTPROT_KERNEL = 0x2 ++ RTPROT_MROUTED = 0x11 ++ RTPROT_MRT = 0xa ++ RTPROT_NTK = 0xf ++ RTPROT_RA = 0x9 ++ RTPROT_REDIRECT = 0x1 ++ RTPROT_STATIC = 0x4 ++ RTPROT_UNSPEC = 0x0 ++ RTPROT_XORP = 0xe ++ RTPROT_ZEBRA = 0xb ++ RT_CLASS_DEFAULT = 0xfd ++ RT_CLASS_LOCAL = 0xff ++ RT_CLASS_MAIN = 0xfe ++ RT_CLASS_MAX = 0xff ++ RT_CLASS_UNSPEC = 0x0 ++ RUSAGE_CHILDREN = -0x1 ++ RUSAGE_SELF = 0x0 ++ RUSAGE_THREAD = 0x1 ++ SCM_CREDENTIALS = 0x2 ++ SCM_RIGHTS = 0x1 ++ SCM_TIMESTAMP = 0x1d ++ SCM_TIMESTAMPING = 0x25 ++ SCM_TIMESTAMPNS = 0x23 ++ SCM_WIFI_STATUS = 0x29 ++ SHUT_RD = 0x0 ++ SHUT_RDWR = 0x2 ++ SHUT_WR = 0x1 ++ SIOCADDDLCI = 0x8980 ++ SIOCADDMULTI = 0x8931 ++ SIOCADDRT = 0x890b ++ SIOCATMARK = 0x8905 ++ SIOCDARP = 0x8953 ++ SIOCDELDLCI = 0x8981 ++ SIOCDELMULTI = 0x8932 ++ SIOCDELRT = 0x890c ++ SIOCDEVPRIVATE = 0x89f0 ++ SIOCDIFADDR = 0x8936 ++ SIOCDRARP = 0x8960 ++ SIOCGARP = 0x8954 ++ SIOCGIFADDR = 0x8915 ++ SIOCGIFBR = 0x8940 ++ SIOCGIFBRDADDR = 0x8919 ++ SIOCGIFCONF = 0x8912 ++ SIOCGIFCOUNT = 0x8938 ++ SIOCGIFDSTADDR = 0x8917 ++ SIOCGIFENCAP = 0x8925 ++ SIOCGIFFLAGS = 0x8913 ++ SIOCGIFHWADDR = 0x8927 ++ SIOCGIFINDEX = 0x8933 ++ SIOCGIFMAP = 0x8970 ++ SIOCGIFMEM = 0x891f ++ SIOCGIFMETRIC = 0x891d ++ SIOCGIFMTU = 0x8921 ++ SIOCGIFNAME = 0x8910 ++ SIOCGIFNETMASK = 0x891b ++ SIOCGIFPFLAGS = 0x8935 ++ SIOCGIFSLAVE = 0x8929 ++ SIOCGIFTXQLEN = 0x8942 ++ SIOCGPGRP = 0x8904 ++ SIOCGRARP = 0x8961 ++ SIOCGSTAMP = 0x8906 ++ SIOCGSTAMPNS = 0x8907 ++ SIOCPROTOPRIVATE = 0x89e0 ++ SIOCRTMSG = 0x890d ++ SIOCSARP = 0x8955 ++ SIOCSIFADDR = 0x8916 ++ SIOCSIFBR = 0x8941 ++ SIOCSIFBRDADDR = 0x891a ++ SIOCSIFDSTADDR = 0x8918 ++ SIOCSIFENCAP = 0x8926 ++ SIOCSIFFLAGS = 0x8914 ++ SIOCSIFHWADDR = 0x8924 ++ SIOCSIFHWBROADCAST = 0x8937 ++ SIOCSIFLINK = 0x8911 ++ SIOCSIFMAP = 0x8971 ++ SIOCSIFMEM = 0x8920 ++ SIOCSIFMETRIC = 0x891e ++ SIOCSIFMTU = 0x8922 ++ SIOCSIFNAME = 0x8923 ++ SIOCSIFNETMASK = 0x891c ++ SIOCSIFPFLAGS = 0x8934 ++ SIOCSIFSLAVE = 0x8930 ++ SIOCSIFTXQLEN = 0x8943 ++ SIOCSPGRP = 0x8902 ++ SIOCSRARP = 0x8962 ++ SOCK_CLOEXEC = 0x80000 ++ SOCK_DCCP = 0x6 ++ SOCK_DGRAM = 0x2 ++ SOCK_NONBLOCK = 0x800 ++ SOCK_PACKET = 0xa ++ SOCK_RAW = 0x3 ++ SOCK_RDM = 0x4 ++ SOCK_SEQPACKET = 0x5 ++ SOCK_STREAM = 0x1 ++ SOL_AAL = 0x109 ++ SOL_ATM = 0x108 ++ SOL_DECNET = 0x105 ++ SOL_ICMPV6 = 0x3a ++ SOL_IP = 0x0 ++ SOL_IPV6 = 0x29 ++ SOL_IRDA = 0x10a ++ SOL_NETLINK = 0x10e ++ SOL_PACKET = 0x107 ++ SOL_RAW = 0xff ++ SOL_SOCKET = 0x1 ++ SOL_TCP = 0x6 ++ SOL_X25 = 0x106 ++ SOMAXCONN = 0x80 ++ SO_ACCEPTCONN = 0x1e ++ SO_ATTACH_FILTER = 0x1a ++ SO_BINDTODEVICE = 0x19 ++ SO_BPF_EXTENSIONS = 0x30 ++ SO_BROADCAST = 0x6 ++ SO_BSDCOMPAT = 0xe ++ SO_BUSY_POLL = 0x2e ++ SO_DEBUG = 0x1 ++ SO_DETACH_FILTER = 0x1b ++ SO_DOMAIN = 0x27 ++ SO_DONTROUTE = 0x5 ++ SO_ERROR = 0x4 ++ SO_GET_FILTER = 0x1a ++ SO_KEEPALIVE = 0x9 ++ SO_LINGER = 0xd ++ SO_LOCK_FILTER = 0x2c ++ SO_MARK = 0x24 ++ SO_MAX_PACING_RATE = 0x2f ++ SO_NOFCS = 0x2b ++ SO_NO_CHECK = 0xb ++ SO_OOBINLINE = 0xa ++ SO_PASSCRED = 0x14 ++ SO_PASSSEC = 0x22 ++ SO_PEEK_OFF = 0x2a ++ SO_PEERCRED = 0x15 ++ SO_PEERNAME = 0x1c ++ SO_PEERSEC = 0x1f ++ SO_PRIORITY = 0xc ++ SO_PROTOCOL = 0x26 ++ SO_RCVBUF = 0x8 ++ SO_RCVBUFFORCE = 0x21 ++ SO_RCVLOWAT = 0x10 ++ SO_RCVTIMEO = 0x12 ++ SO_REUSEADDR = 0x2 ++ SO_REUSEPORT = 0xf ++ SO_RXQ_OVFL = 0x28 ++ SO_SECURITY_AUTHENTICATION = 0x16 ++ SO_SECURITY_ENCRYPTION_NETWORK = 0x18 ++ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 ++ SO_SELECT_ERR_QUEUE = 0x2d ++ SO_SNDBUF = 0x7 ++ SO_SNDBUFFORCE = 0x20 ++ SO_SNDLOWAT = 0x11 ++ SO_SNDTIMEO = 0x13 ++ SO_TIMESTAMP = 0x1d ++ SO_TIMESTAMPING = 0x25 ++ SO_TIMESTAMPNS = 0x23 ++ SO_TYPE = 0x3 ++ SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 ++ SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 ++ SO_VM_SOCKETS_BUFFER_SIZE = 0x0 ++ SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 ++ SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 ++ SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 ++ SO_VM_SOCKETS_TRUSTED = 0x5 ++ SO_WIFI_STATUS = 0x29 ++ SPLICE_F_GIFT = 0x8 ++ SPLICE_F_MORE = 0x4 ++ SPLICE_F_MOVE = 0x1 ++ SPLICE_F_NONBLOCK = 0x2 ++ S_BLKSIZE = 0x200 ++ S_IEXEC = 0x40 ++ S_IFBLK = 0x6000 ++ S_IFCHR = 0x2000 ++ S_IFDIR = 0x4000 ++ S_IFIFO = 0x1000 ++ S_IFLNK = 0xa000 ++ S_IFMT = 0xf000 ++ S_IFREG = 0x8000 ++ S_IFSOCK = 0xc000 ++ S_IREAD = 0x100 ++ S_IRGRP = 0x20 ++ S_IROTH = 0x4 ++ S_IRUSR = 0x100 ++ S_IRWXG = 0x38 ++ S_IRWXO = 0x7 ++ S_IRWXU = 0x1c0 ++ S_ISGID = 0x400 ++ S_ISUID = 0x800 ++ S_ISVTX = 0x200 ++ S_IWGRP = 0x10 ++ S_IWOTH = 0x2 ++ S_IWRITE = 0x80 ++ S_IWUSR = 0x80 ++ S_IXGRP = 0x8 ++ S_IXOTH = 0x1 ++ S_IXUSR = 0x40 ++ TAB0 = 0x0 ++ TAB1 = 0x400 ++ TAB2 = 0x800 ++ TAB3 = 0xc00 ++ TABDLY = 0xc00 ++ TCFLSH = 0x2000741f ++ TCGETA = 0x40147417 ++ TCGETS = 0x402c7413 ++ TCIFLUSH = 0x0 ++ TCIOFF = 0x2 ++ TCIOFLUSH = 0x2 ++ TCION = 0x3 ++ TCOFLUSH = 0x1 ++ TCOOFF = 0x0 ++ TCOON = 0x1 ++ TCP_CONGESTION = 0xd ++ TCP_COOKIE_IN_ALWAYS = 0x1 ++ TCP_COOKIE_MAX = 0x10 ++ TCP_COOKIE_MIN = 0x8 ++ TCP_COOKIE_OUT_NEVER = 0x2 ++ TCP_COOKIE_PAIR_SIZE = 0x20 ++ TCP_COOKIE_TRANSACTIONS = 0xf ++ TCP_CORK = 0x3 ++ TCP_DEFER_ACCEPT = 0x9 ++ TCP_FASTOPEN = 0x17 ++ TCP_INFO = 0xb ++ TCP_KEEPCNT = 0x6 ++ TCP_KEEPIDLE = 0x4 ++ TCP_KEEPINTVL = 0x5 ++ TCP_LINGER2 = 0x8 ++ TCP_MAXSEG = 0x2 ++ TCP_MAXWIN = 0xffff ++ TCP_MAX_WINSHIFT = 0xe ++ TCP_MD5SIG = 0xe ++ TCP_MD5SIG_MAXKEYLEN = 0x50 ++ TCP_MSS = 0x200 ++ TCP_MSS_DEFAULT = 0x218 ++ TCP_MSS_DESIRED = 0x4c4 ++ TCP_NODELAY = 0x1 ++ TCP_QUEUE_SEQ = 0x15 ++ TCP_QUICKACK = 0xc ++ TCP_REPAIR = 0x13 ++ TCP_REPAIR_OPTIONS = 0x16 ++ TCP_REPAIR_QUEUE = 0x14 ++ TCP_SYNCNT = 0x7 ++ TCP_S_DATA_IN = 0x4 ++ TCP_S_DATA_OUT = 0x8 ++ TCP_THIN_DUPACK = 0x11 ++ TCP_THIN_LINEAR_TIMEOUTS = 0x10 ++ TCP_TIMESTAMP = 0x18 ++ TCP_USER_TIMEOUT = 0x12 ++ TCP_WINDOW_CLAMP = 0xa ++ TCSAFLUSH = 0x2 ++ TCSBRK = 0x2000741d ++ TCSBRKP = 0x5425 ++ TCSETA = 0x80147418 ++ TCSETAF = 0x8014741c ++ TCSETAW = 0x80147419 ++ TCSETS = 0x802c7414 ++ TCSETSF = 0x802c7416 ++ TCSETSW = 0x802c7415 ++ TCXONC = 0x2000741e ++ TIOCCBRK = 0x5428 ++ TIOCCONS = 0x541d ++ TIOCEXCL = 0x540c ++ TIOCGDEV = 0x40045432 ++ TIOCGETC = 0x40067412 ++ TIOCGETD = 0x5424 ++ TIOCGETP = 0x40067408 ++ TIOCGEXCL = 0x40045440 ++ TIOCGICOUNT = 0x545d ++ TIOCGLCKTRMIOS = 0x5456 ++ TIOCGLTC = 0x40067474 ++ TIOCGPGRP = 0x40047477 ++ TIOCGPKT = 0x40045438 ++ TIOCGPTLCK = 0x40045439 ++ TIOCGPTN = 0x40045430 ++ TIOCGRS485 = 0x542e ++ TIOCGSERIAL = 0x541e ++ TIOCGSID = 0x5429 ++ TIOCGSOFTCAR = 0x5419 ++ TIOCGWINSZ = 0x40087468 ++ TIOCINQ = 0x4004667f ++ TIOCLINUX = 0x541c ++ TIOCMBIC = 0x5417 ++ TIOCMBIS = 0x5416 ++ TIOCMGET = 0x5415 ++ TIOCMIWAIT = 0x545c ++ TIOCMSET = 0x5418 ++ TIOCM_CAR = 0x40 ++ TIOCM_CD = 0x40 ++ TIOCM_CTS = 0x20 ++ TIOCM_DSR = 0x100 ++ TIOCM_DTR = 0x2 ++ TIOCM_LE = 0x1 ++ TIOCM_LOOP = 0x8000 ++ TIOCM_OUT1 = 0x2000 ++ TIOCM_OUT2 = 0x4000 ++ TIOCM_RI = 0x80 ++ TIOCM_RNG = 0x80 ++ TIOCM_RTS = 0x4 ++ TIOCM_SR = 0x10 ++ TIOCM_ST = 0x8 ++ TIOCNOTTY = 0x5422 ++ TIOCNXCL = 0x540d ++ TIOCOUTQ = 0x40047473 ++ TIOCPKT = 0x5420 ++ TIOCPKT_DATA = 0x0 ++ TIOCPKT_DOSTOP = 0x20 ++ TIOCPKT_FLUSHREAD = 0x1 ++ TIOCPKT_FLUSHWRITE = 0x2 ++ TIOCPKT_IOCTL = 0x40 ++ TIOCPKT_NOSTOP = 0x10 ++ TIOCPKT_START = 0x8 ++ TIOCPKT_STOP = 0x4 ++ TIOCSBRK = 0x5427 ++ TIOCSCTTY = 0x540e ++ TIOCSERCONFIG = 0x5453 ++ TIOCSERGETLSR = 0x5459 ++ TIOCSERGETMULTI = 0x545a ++ TIOCSERGSTRUCT = 0x5458 ++ TIOCSERGWILD = 0x5454 ++ TIOCSERSETMULTI = 0x545b ++ TIOCSERSWILD = 0x5455 ++ TIOCSER_TEMT = 0x1 ++ TIOCSETC = 0x80067411 ++ TIOCSETD = 0x5423 ++ TIOCSETN = 0x8006740a ++ TIOCSETP = 0x80067409 ++ TIOCSIG = 0x80045436 ++ TIOCSLCKTRMIOS = 0x5457 ++ TIOCSLTC = 0x80067475 ++ TIOCSPGRP = 0x80047476 ++ TIOCSPTLCK = 0x80045431 ++ TIOCSRS485 = 0x542f ++ TIOCSSERIAL = 0x541f ++ TIOCSSOFTCAR = 0x541a ++ TIOCSTART = 0x2000746e ++ TIOCSTI = 0x5412 ++ TIOCSTOP = 0x2000746f ++ TIOCSWINSZ = 0x80087467 ++ TIOCVHANGUP = 0x5437 ++ TOSTOP = 0x400000 ++ TUNATTACHFILTER = 0x801054d5 ++ TUNDETACHFILTER = 0x801054d6 ++ TUNGETFEATURES = 0x400454cf ++ TUNGETFILTER = 0x401054db ++ TUNGETIFF = 0x400454d2 ++ TUNGETSNDBUF = 0x400454d3 ++ TUNGETVNETHDRSZ = 0x400454d7 ++ TUNSETDEBUG = 0x800454c9 ++ TUNSETGROUP = 0x800454ce ++ TUNSETIFF = 0x800454ca ++ TUNSETIFINDEX = 0x800454da ++ TUNSETLINK = 0x800454cd ++ TUNSETNOCSUM = 0x800454c8 ++ TUNSETOFFLOAD = 0x800454d0 ++ TUNSETOWNER = 0x800454cc ++ TUNSETPERSIST = 0x800454cb ++ TUNSETQUEUE = 0x800454d9 ++ TUNSETSNDBUF = 0x800454d4 ++ TUNSETTXFILTER = 0x800454d1 ++ TUNSETVNETHDRSZ = 0x800454d8 ++ VDISCARD = 0x10 ++ VEOF = 0x4 ++ VEOL = 0x6 ++ VEOL2 = 0x8 ++ VERASE = 0x2 ++ VINTR = 0x0 ++ VKILL = 0x3 ++ VLNEXT = 0xf ++ VMADDR_CID_ANY = 0xffffffff ++ VMADDR_CID_HOST = 0x2 ++ VMADDR_CID_HYPERVISOR = 0x0 ++ VMADDR_CID_RESERVED = 0x1 ++ VMADDR_PORT_ANY = 0xffffffff ++ VMIN = 0x5 ++ VQUIT = 0x1 ++ VREPRINT = 0xb ++ VSTART = 0xd ++ VSTOP = 0xe ++ VSUSP = 0xc ++ VSWTC = 0x9 ++ VT0 = 0x0 ++ VT1 = 0x10000 ++ VTDLY = 0x10000 ++ VTIME = 0x7 ++ VWERASE = 0xa ++ WALL = 0x40000000 ++ WCLONE = 0x80000000 ++ WCONTINUED = 0x8 ++ WEXITED = 0x4 ++ WNOHANG = 0x1 ++ WNOTHREAD = 0x20000000 ++ WNOWAIT = 0x1000000 ++ WORDSIZE = 0x40 ++ WSTOPPED = 0x2 ++ WUNTRACED = 0x2 ++ XCASE = 0x4000 ++ XTABS = 0xc00 ++) ++ ++// Errors ++const ( ++ E2BIG = syscall.Errno(0x7) ++ EACCES = syscall.Errno(0xd) ++ EADDRINUSE = syscall.Errno(0x62) ++ EADDRNOTAVAIL = syscall.Errno(0x63) ++ EADV = syscall.Errno(0x44) ++ EAFNOSUPPORT = syscall.Errno(0x61) ++ EAGAIN = syscall.Errno(0xb) ++ EALREADY = syscall.Errno(0x72) ++ EBADE = syscall.Errno(0x34) ++ EBADF = syscall.Errno(0x9) ++ EBADFD = syscall.Errno(0x4d) ++ EBADMSG = syscall.Errno(0x4a) ++ EBADR = syscall.Errno(0x35) ++ EBADRQC = syscall.Errno(0x38) ++ EBADSLT = syscall.Errno(0x39) ++ EBFONT = syscall.Errno(0x3b) ++ EBUSY = syscall.Errno(0x10) ++ ECANCELED = syscall.Errno(0x7d) ++ ECHILD = syscall.Errno(0xa) ++ ECHRNG = syscall.Errno(0x2c) ++ ECOMM = syscall.Errno(0x46) ++ ECONNABORTED = syscall.Errno(0x67) ++ ECONNREFUSED = syscall.Errno(0x6f) ++ ECONNRESET = syscall.Errno(0x68) ++ EDEADLK = syscall.Errno(0x23) ++ EDEADLOCK = syscall.Errno(0x3a) ++ EDESTADDRREQ = syscall.Errno(0x59) ++ EDOM = syscall.Errno(0x21) ++ EDOTDOT = syscall.Errno(0x49) ++ EDQUOT = syscall.Errno(0x7a) ++ EEXIST = syscall.Errno(0x11) ++ EFAULT = syscall.Errno(0xe) ++ EFBIG = syscall.Errno(0x1b) ++ EHOSTDOWN = syscall.Errno(0x70) ++ EHOSTUNREACH = syscall.Errno(0x71) ++ EHWPOISON = syscall.Errno(0x85) ++ EIDRM = syscall.Errno(0x2b) ++ EILSEQ = syscall.Errno(0x54) ++ EINPROGRESS = syscall.Errno(0x73) ++ EINTR = syscall.Errno(0x4) ++ EINVAL = syscall.Errno(0x16) ++ EIO = syscall.Errno(0x5) ++ EISCONN = syscall.Errno(0x6a) ++ EISDIR = syscall.Errno(0x15) ++ EISNAM = syscall.Errno(0x78) ++ EKEYEXPIRED = syscall.Errno(0x7f) ++ EKEYREJECTED = syscall.Errno(0x81) ++ EKEYREVOKED = syscall.Errno(0x80) ++ EL2HLT = syscall.Errno(0x33) ++ EL2NSYNC = syscall.Errno(0x2d) ++ EL3HLT = syscall.Errno(0x2e) ++ EL3RST = syscall.Errno(0x2f) ++ ELIBACC = syscall.Errno(0x4f) ++ ELIBBAD = syscall.Errno(0x50) ++ ELIBEXEC = syscall.Errno(0x53) ++ ELIBMAX = syscall.Errno(0x52) ++ ELIBSCN = syscall.Errno(0x51) ++ ELNRNG = syscall.Errno(0x30) ++ ELOOP = syscall.Errno(0x28) ++ EMEDIUMTYPE = syscall.Errno(0x7c) ++ EMFILE = syscall.Errno(0x18) ++ EMLINK = syscall.Errno(0x1f) ++ EMSGSIZE = syscall.Errno(0x5a) ++ EMULTIHOP = syscall.Errno(0x48) ++ ENAMETOOLONG = syscall.Errno(0x24) ++ ENAVAIL = syscall.Errno(0x77) ++ ENETDOWN = syscall.Errno(0x64) ++ ENETRESET = syscall.Errno(0x66) ++ ENETUNREACH = syscall.Errno(0x65) ++ ENFILE = syscall.Errno(0x17) ++ ENOANO = syscall.Errno(0x37) ++ ENOBUFS = syscall.Errno(0x69) ++ ENOCSI = syscall.Errno(0x32) ++ ENODATA = syscall.Errno(0x3d) ++ ENODEV = syscall.Errno(0x13) ++ ENOENT = syscall.Errno(0x2) ++ ENOEXEC = syscall.Errno(0x8) ++ ENOKEY = syscall.Errno(0x7e) ++ ENOLCK = syscall.Errno(0x25) ++ ENOLINK = syscall.Errno(0x43) ++ ENOMEDIUM = syscall.Errno(0x7b) ++ ENOMEM = syscall.Errno(0xc) ++ ENOMSG = syscall.Errno(0x2a) ++ ENONET = syscall.Errno(0x40) ++ ENOPKG = syscall.Errno(0x41) ++ ENOPROTOOPT = syscall.Errno(0x5c) ++ ENOSPC = syscall.Errno(0x1c) ++ ENOSR = syscall.Errno(0x3f) ++ ENOSTR = syscall.Errno(0x3c) ++ ENOSYS = syscall.Errno(0x26) ++ ENOTBLK = syscall.Errno(0xf) ++ ENOTCONN = syscall.Errno(0x6b) ++ ENOTDIR = syscall.Errno(0x14) ++ ENOTEMPTY = syscall.Errno(0x27) ++ ENOTNAM = syscall.Errno(0x76) ++ ENOTRECOVERABLE = syscall.Errno(0x83) ++ ENOTSOCK = syscall.Errno(0x58) ++ ENOTSUP = syscall.Errno(0x5f) ++ ENOTTY = syscall.Errno(0x19) ++ ENOTUNIQ = syscall.Errno(0x4c) ++ ENXIO = syscall.Errno(0x6) ++ EOPNOTSUPP = syscall.Errno(0x5f) ++ EOVERFLOW = syscall.Errno(0x4b) ++ EOWNERDEAD = syscall.Errno(0x82) ++ EPERM = syscall.Errno(0x1) ++ EPFNOSUPPORT = syscall.Errno(0x60) ++ EPIPE = syscall.Errno(0x20) ++ EPROTO = syscall.Errno(0x47) ++ EPROTONOSUPPORT = syscall.Errno(0x5d) ++ EPROTOTYPE = syscall.Errno(0x5b) ++ ERANGE = syscall.Errno(0x22) ++ EREMCHG = syscall.Errno(0x4e) ++ EREMOTE = syscall.Errno(0x42) ++ EREMOTEIO = syscall.Errno(0x79) ++ ERESTART = syscall.Errno(0x55) ++ ERFKILL = syscall.Errno(0x84) ++ EROFS = syscall.Errno(0x1e) ++ ESHUTDOWN = syscall.Errno(0x6c) ++ ESOCKTNOSUPPORT = syscall.Errno(0x5e) ++ ESPIPE = syscall.Errno(0x1d) ++ ESRCH = syscall.Errno(0x3) ++ ESRMNT = syscall.Errno(0x45) ++ ESTALE = syscall.Errno(0x74) ++ ESTRPIPE = syscall.Errno(0x56) ++ ETIME = syscall.Errno(0x3e) ++ ETIMEDOUT = syscall.Errno(0x6e) ++ ETOOMANYREFS = syscall.Errno(0x6d) ++ ETXTBSY = syscall.Errno(0x1a) ++ EUCLEAN = syscall.Errno(0x75) ++ EUNATCH = syscall.Errno(0x31) ++ EUSERS = syscall.Errno(0x57) ++ EWOULDBLOCK = syscall.Errno(0xb) ++ EXDEV = syscall.Errno(0x12) ++ EXFULL = syscall.Errno(0x36) ++) ++ ++// Signals ++const ( ++ SIGABRT = syscall.Signal(0x6) ++ SIGALRM = syscall.Signal(0xe) ++ SIGBUS = syscall.Signal(0x7) ++ SIGCHLD = syscall.Signal(0x11) ++ SIGCLD = syscall.Signal(0x11) ++ SIGCONT = syscall.Signal(0x12) ++ SIGFPE = syscall.Signal(0x8) ++ SIGHUP = syscall.Signal(0x1) ++ SIGILL = syscall.Signal(0x4) ++ SIGINT = syscall.Signal(0x2) ++ SIGIO = syscall.Signal(0x1d) ++ SIGIOT = syscall.Signal(0x6) ++ SIGKILL = syscall.Signal(0x9) ++ SIGPIPE = syscall.Signal(0xd) ++ SIGPOLL = syscall.Signal(0x1d) ++ SIGPROF = syscall.Signal(0x1b) ++ SIGPWR = syscall.Signal(0x1e) ++ SIGQUIT = syscall.Signal(0x3) ++ SIGSEGV = syscall.Signal(0xb) ++ SIGSTKFLT = syscall.Signal(0x10) ++ SIGSTOP = syscall.Signal(0x13) ++ SIGSYS = syscall.Signal(0x1f) ++ SIGTERM = syscall.Signal(0xf) ++ SIGTRAP = syscall.Signal(0x5) ++ SIGTSTP = syscall.Signal(0x14) ++ SIGTTIN = syscall.Signal(0x15) ++ SIGTTOU = syscall.Signal(0x16) ++ SIGUNUSED = syscall.Signal(0x1f) ++ SIGURG = syscall.Signal(0x17) ++ SIGUSR1 = syscall.Signal(0xa) ++ SIGUSR2 = syscall.Signal(0xc) ++ SIGVTALRM = syscall.Signal(0x1a) ++ SIGWINCH = syscall.Signal(0x1c) ++ SIGXCPU = syscall.Signal(0x18) ++ SIGXFSZ = syscall.Signal(0x19) ++) ++ ++// Error table ++var errors = [...]string{ ++ 1: "operation not permitted", ++ 2: "no such file or directory", ++ 3: "no such process", ++ 4: "interrupted system call", ++ 5: "input/output error", ++ 6: "no such device or address", ++ 7: "argument list too long", ++ 8: "exec format error", ++ 9: "bad file descriptor", ++ 10: "no child processes", ++ 11: "resource temporarily unavailable", ++ 12: "cannot allocate memory", ++ 13: "permission denied", ++ 14: "bad address", ++ 15: "block device required", ++ 16: "device or resource busy", ++ 17: "file exists", ++ 18: "invalid cross-device link", ++ 19: "no such device", ++ 20: "not a directory", ++ 21: "is a directory", ++ 22: "invalid argument", ++ 23: "too many open files in system", ++ 24: "too many open files", ++ 25: "inappropriate ioctl for device", ++ 26: "text file busy", ++ 27: "file too large", ++ 28: "no space left on device", ++ 29: "illegal seek", ++ 30: "read-only file system", ++ 31: "too many links", ++ 32: "broken pipe", ++ 33: "numerical argument out of domain", ++ 34: "numerical result out of range", ++ 35: "resource deadlock avoided", ++ 36: "file name too long", ++ 37: "no locks available", ++ 38: "function not implemented", ++ 39: "directory not empty", ++ 40: "too many levels of symbolic links", ++ 42: "no message of desired type", ++ 43: "identifier removed", ++ 44: "channel number out of range", ++ 45: "level 2 not synchronized", ++ 46: "level 3 halted", ++ 47: "level 3 reset", ++ 48: "link number out of range", ++ 49: "protocol driver not attached", ++ 50: "no CSI structure available", ++ 51: "level 2 halted", ++ 52: "invalid exchange", ++ 53: "invalid request descriptor", ++ 54: "exchange full", ++ 55: "no anode", ++ 56: "invalid request code", ++ 57: "invalid slot", ++ 58: "file locking deadlock error", ++ 59: "bad font file format", ++ 60: "device not a stream", ++ 61: "no data available", ++ 62: "timer expired", ++ 63: "out of streams resources", ++ 64: "machine is not on the network", ++ 65: "package not installed", ++ 66: "object is remote", ++ 67: "link has been severed", ++ 68: "advertise error", ++ 69: "srmount error", ++ 70: "communication error on send", ++ 71: "protocol error", ++ 72: "multihop attempted", ++ 73: "RFS specific error", ++ 74: "bad message", ++ 75: "value too large for defined data type", ++ 76: "name not unique on network", ++ 77: "file descriptor in bad state", ++ 78: "remote address changed", ++ 79: "can not access a needed shared library", ++ 80: "accessing a corrupted shared library", ++ 81: ".lib section in a.out corrupted", ++ 82: "attempting to link in too many shared libraries", ++ 83: "cannot exec a shared library directly", ++ 84: "invalid or incomplete multibyte or wide character", ++ 85: "interrupted system call should be restarted", ++ 86: "streams pipe error", ++ 87: "too many users", ++ 88: "socket operation on non-socket", ++ 89: "destination address required", ++ 90: "message too long", ++ 91: "protocol wrong type for socket", ++ 92: "protocol not available", ++ 93: "protocol not supported", ++ 94: "socket type not supported", ++ 95: "operation not supported", ++ 96: "protocol family not supported", ++ 97: "address family not supported by protocol", ++ 98: "address already in use", ++ 99: "cannot assign requested address", ++ 100: "network is down", ++ 101: "network is unreachable", ++ 102: "network dropped connection on reset", ++ 103: "software caused connection abort", ++ 104: "connection reset by peer", ++ 105: "no buffer space available", ++ 106: "transport endpoint is already connected", ++ 107: "transport endpoint is not connected", ++ 108: "cannot send after transport endpoint shutdown", ++ 109: "too many references: cannot splice", ++ 110: "connection timed out", ++ 111: "connection refused", ++ 112: "host is down", ++ 113: "no route to host", ++ 114: "operation already in progress", ++ 115: "operation now in progress", ++ 116: "stale file handle", ++ 117: "structure needs cleaning", ++ 118: "not a XENIX named type file", ++ 119: "no XENIX semaphores available", ++ 120: "is a named type file", ++ 121: "remote I/O error", ++ 122: "disk quota exceeded", ++ 123: "no medium found", ++ 124: "wrong medium type", ++ 125: "operation canceled", ++ 126: "required key not available", ++ 127: "key has expired", ++ 128: "key has been revoked", ++ 129: "key was rejected by service", ++ 130: "owner died", ++ 131: "state not recoverable", ++ 132: "operation not possible due to RF-kill", ++ 133: "memory page has hardware error", ++} ++ ++// Signal table ++var signals = [...]string{ ++ 1: "hangup", ++ 2: "interrupt", ++ 3: "quit", ++ 4: "illegal instruction", ++ 5: "trace/breakpoint trap", ++ 6: "aborted", ++ 7: "bus error", ++ 8: "floating point exception", ++ 9: "killed", ++ 10: "user defined signal 1", ++ 11: "segmentation fault", ++ 12: "user defined signal 2", ++ 13: "broken pipe", ++ 14: "alarm clock", ++ 15: "terminated", ++ 16: "stack fault", ++ 17: "child exited", ++ 18: "continued", ++ 19: "stopped (signal)", ++ 20: "stopped", ++ 21: "stopped (tty input)", ++ 22: "stopped (tty output)", ++ 23: "urgent I/O condition", ++ 24: "CPU time limit exceeded", ++ 25: "file size limit exceeded", ++ 26: "virtual timer expired", ++ 27: "profiling timer expired", ++ 28: "window changed", ++ 29: "I/O possible", ++ 30: "power failure", ++ 31: "bad system call", ++} +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +new file mode 100644 +index 0000000..5280d9e +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +@@ -0,0 +1,2036 @@ ++// mkerrors.sh -m64 ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build ppc64le,linux ++ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- -m64 _const.go ++ ++package unix ++ ++import "syscall" ++ ++const ( ++ AF_ALG = 0x26 ++ AF_APPLETALK = 0x5 ++ AF_ASH = 0x12 ++ AF_ATMPVC = 0x8 ++ AF_ATMSVC = 0x14 ++ AF_AX25 = 0x3 ++ AF_BLUETOOTH = 0x1f ++ AF_BRIDGE = 0x7 ++ AF_CAIF = 0x25 ++ AF_CAN = 0x1d ++ AF_DECnet = 0xc ++ AF_ECONET = 0x13 ++ AF_FILE = 0x1 ++ AF_IEEE802154 = 0x24 ++ AF_INET = 0x2 ++ AF_INET6 = 0xa ++ AF_IPX = 0x4 ++ AF_IRDA = 0x17 ++ AF_ISDN = 0x22 ++ AF_IUCV = 0x20 ++ AF_KEY = 0xf ++ AF_LLC = 0x1a ++ AF_LOCAL = 0x1 ++ AF_MAX = 0x29 ++ AF_NETBEUI = 0xd ++ AF_NETLINK = 0x10 ++ AF_NETROM = 0x6 ++ AF_NFC = 0x27 ++ AF_PACKET = 0x11 ++ AF_PHONET = 0x23 ++ AF_PPPOX = 0x18 ++ AF_RDS = 0x15 ++ AF_ROSE = 0xb ++ AF_ROUTE = 0x10 ++ AF_RXRPC = 0x21 ++ AF_SECURITY = 0xe ++ AF_SNA = 0x16 ++ AF_TIPC = 0x1e ++ AF_UNIX = 0x1 ++ AF_UNSPEC = 0x0 ++ AF_VSOCK = 0x28 ++ AF_WANPIPE = 0x19 ++ AF_X25 = 0x9 ++ ALG_OP_DECRYPT = 0x0 ++ ALG_OP_ENCRYPT = 0x1 ++ ALG_SET_AEAD_ASSOCLEN = 0x4 ++ ALG_SET_AEAD_AUTHSIZE = 0x5 ++ ALG_SET_IV = 0x2 ++ ALG_SET_KEY = 0x1 ++ ALG_SET_OP = 0x3 ++ ARPHRD_ADAPT = 0x108 ++ ARPHRD_APPLETLK = 0x8 ++ ARPHRD_ARCNET = 0x7 ++ ARPHRD_ASH = 0x30d ++ ARPHRD_ATM = 0x13 ++ ARPHRD_AX25 = 0x3 ++ ARPHRD_BIF = 0x307 ++ ARPHRD_CAIF = 0x336 ++ ARPHRD_CAN = 0x118 ++ ARPHRD_CHAOS = 0x5 ++ ARPHRD_CISCO = 0x201 ++ ARPHRD_CSLIP = 0x101 ++ ARPHRD_CSLIP6 = 0x103 ++ ARPHRD_DDCMP = 0x205 ++ ARPHRD_DLCI = 0xf ++ ARPHRD_ECONET = 0x30e ++ ARPHRD_EETHER = 0x2 ++ ARPHRD_ETHER = 0x1 ++ ARPHRD_EUI64 = 0x1b ++ ARPHRD_FCAL = 0x311 ++ ARPHRD_FCFABRIC = 0x313 ++ ARPHRD_FCPL = 0x312 ++ ARPHRD_FCPP = 0x310 ++ ARPHRD_FDDI = 0x306 ++ ARPHRD_FRAD = 0x302 ++ ARPHRD_HDLC = 0x201 ++ ARPHRD_HIPPI = 0x30c ++ ARPHRD_HWX25 = 0x110 ++ ARPHRD_IEEE1394 = 0x18 ++ ARPHRD_IEEE802 = 0x6 ++ ARPHRD_IEEE80211 = 0x321 ++ ARPHRD_IEEE80211_PRISM = 0x322 ++ ARPHRD_IEEE80211_RADIOTAP = 0x323 ++ ARPHRD_IEEE802154 = 0x324 ++ ARPHRD_IEEE802154_MONITOR = 0x325 ++ ARPHRD_IEEE802_TR = 0x320 ++ ARPHRD_INFINIBAND = 0x20 ++ ARPHRD_IP6GRE = 0x337 ++ ARPHRD_IPDDP = 0x309 ++ ARPHRD_IPGRE = 0x30a ++ ARPHRD_IRDA = 0x30f ++ ARPHRD_LAPB = 0x204 ++ ARPHRD_LOCALTLK = 0x305 ++ ARPHRD_LOOPBACK = 0x304 ++ ARPHRD_METRICOM = 0x17 ++ ARPHRD_NETLINK = 0x338 ++ ARPHRD_NETROM = 0x0 ++ ARPHRD_NONE = 0xfffe ++ ARPHRD_PHONET = 0x334 ++ ARPHRD_PHONET_PIPE = 0x335 ++ ARPHRD_PIMREG = 0x30b ++ ARPHRD_PPP = 0x200 ++ ARPHRD_PRONET = 0x4 ++ ARPHRD_RAWHDLC = 0x206 ++ ARPHRD_ROSE = 0x10e ++ ARPHRD_RSRVD = 0x104 ++ ARPHRD_SIT = 0x308 ++ ARPHRD_SKIP = 0x303 ++ ARPHRD_SLIP = 0x100 ++ ARPHRD_SLIP6 = 0x102 ++ ARPHRD_TUNNEL = 0x300 ++ ARPHRD_TUNNEL6 = 0x301 ++ ARPHRD_VOID = 0xffff ++ ARPHRD_X25 = 0x10f ++ B0 = 0x0 ++ B1000000 = 0x17 ++ B110 = 0x3 ++ B115200 = 0x11 ++ B1152000 = 0x18 ++ B1200 = 0x9 ++ B134 = 0x4 ++ B150 = 0x5 ++ B1500000 = 0x19 ++ B1800 = 0xa ++ B19200 = 0xe ++ B200 = 0x6 ++ B2000000 = 0x1a ++ B230400 = 0x12 ++ B2400 = 0xb ++ B2500000 = 0x1b ++ B300 = 0x7 ++ B3000000 = 0x1c ++ B3500000 = 0x1d ++ B38400 = 0xf ++ B4000000 = 0x1e ++ B460800 = 0x13 ++ B4800 = 0xc ++ B50 = 0x1 ++ B500000 = 0x14 ++ B57600 = 0x10 ++ B576000 = 0x15 ++ B600 = 0x8 ++ B75 = 0x2 ++ B921600 = 0x16 ++ B9600 = 0xd ++ BLKBSZGET = 0x80081270 ++ BLKBSZSET = 0x40081271 ++ BLKFLSBUF = 0x1261 ++ BLKFRAGET = 0x1265 ++ BLKFRASET = 0x1264 ++ BLKGETSIZE = 0x1260 ++ BLKGETSIZE64 = 0x80081272 ++ BLKRAGET = 0x1263 ++ BLKRASET = 0x1262 ++ BLKROGET = 0x125e ++ BLKROSET = 0x125d ++ BLKRRPART = 0x125f ++ BLKSECTGET = 0x1267 ++ BLKSECTSET = 0x1266 ++ BLKSSZGET = 0x1268 ++ BOTHER = 0x1f ++ BPF_A = 0x10 ++ BPF_ABS = 0x20 ++ BPF_ADD = 0x0 ++ BPF_ALU = 0x4 ++ BPF_AND = 0x50 ++ BPF_B = 0x10 ++ BPF_DIV = 0x30 ++ BPF_H = 0x8 ++ BPF_IMM = 0x0 ++ BPF_IND = 0x40 ++ BPF_JA = 0x0 ++ BPF_JEQ = 0x10 ++ BPF_JGE = 0x30 ++ BPF_JGT = 0x20 ++ BPF_JMP = 0x5 ++ BPF_JSET = 0x40 ++ BPF_K = 0x0 ++ BPF_LD = 0x0 ++ BPF_LDX = 0x1 ++ BPF_LEN = 0x80 ++ BPF_LSH = 0x60 ++ BPF_MAJOR_VERSION = 0x1 ++ BPF_MAXINSNS = 0x1000 ++ BPF_MEM = 0x60 ++ BPF_MEMWORDS = 0x10 ++ BPF_MINOR_VERSION = 0x1 ++ BPF_MISC = 0x7 ++ BPF_MOD = 0x90 ++ BPF_MSH = 0xa0 ++ BPF_MUL = 0x20 ++ BPF_NEG = 0x80 ++ BPF_OR = 0x40 ++ BPF_RET = 0x6 ++ BPF_RSH = 0x70 ++ BPF_ST = 0x2 ++ BPF_STX = 0x3 ++ BPF_SUB = 0x10 ++ BPF_TAX = 0x0 ++ BPF_TXA = 0x80 ++ BPF_W = 0x0 ++ BPF_X = 0x8 ++ BPF_XOR = 0xa0 ++ BRKINT = 0x2 ++ BS0 = 0x0 ++ BS1 = 0x8000 ++ BSDLY = 0x8000 ++ CAN_BCM = 0x2 ++ CAN_EFF_FLAG = 0x80000000 ++ CAN_EFF_ID_BITS = 0x1d ++ CAN_EFF_MASK = 0x1fffffff ++ CAN_ERR_FLAG = 0x20000000 ++ CAN_ERR_MASK = 0x1fffffff ++ CAN_INV_FILTER = 0x20000000 ++ CAN_ISOTP = 0x6 ++ CAN_MAX_DLC = 0x8 ++ CAN_MAX_DLEN = 0x8 ++ CAN_MCNET = 0x5 ++ CAN_MTU = 0x10 ++ CAN_NPROTO = 0x7 ++ CAN_RAW = 0x1 ++ CAN_RTR_FLAG = 0x40000000 ++ CAN_SFF_ID_BITS = 0xb ++ CAN_SFF_MASK = 0x7ff ++ CAN_TP16 = 0x3 ++ CAN_TP20 = 0x4 ++ CBAUD = 0xff ++ CBAUDEX = 0x0 ++ CFLUSH = 0xf ++ CIBAUD = 0xff0000 ++ CLOCAL = 0x8000 ++ CLOCK_BOOTTIME = 0x7 ++ CLOCK_BOOTTIME_ALARM = 0x9 ++ CLOCK_DEFAULT = 0x0 ++ CLOCK_EXT = 0x1 ++ CLOCK_INT = 0x2 ++ CLOCK_MONOTONIC = 0x1 ++ CLOCK_MONOTONIC_COARSE = 0x6 ++ CLOCK_MONOTONIC_RAW = 0x4 ++ CLOCK_PROCESS_CPUTIME_ID = 0x2 ++ CLOCK_REALTIME = 0x0 ++ CLOCK_REALTIME_ALARM = 0x8 ++ CLOCK_REALTIME_COARSE = 0x5 ++ CLOCK_THREAD_CPUTIME_ID = 0x3 ++ CLOCK_TXFROMRX = 0x4 ++ CLOCK_TXINT = 0x3 ++ CLONE_CHILD_CLEARTID = 0x200000 ++ CLONE_CHILD_SETTID = 0x1000000 ++ CLONE_DETACHED = 0x400000 ++ CLONE_FILES = 0x400 ++ CLONE_FS = 0x200 ++ CLONE_IO = 0x80000000 ++ CLONE_NEWCGROUP = 0x2000000 ++ CLONE_NEWIPC = 0x8000000 ++ CLONE_NEWNET = 0x40000000 ++ CLONE_NEWNS = 0x20000 ++ CLONE_NEWPID = 0x20000000 ++ CLONE_NEWUSER = 0x10000000 ++ CLONE_NEWUTS = 0x4000000 ++ CLONE_PARENT = 0x8000 ++ CLONE_PARENT_SETTID = 0x100000 ++ CLONE_PTRACE = 0x2000 ++ CLONE_SETTLS = 0x80000 ++ CLONE_SIGHAND = 0x800 ++ CLONE_SYSVSEM = 0x40000 ++ CLONE_THREAD = 0x10000 ++ CLONE_UNTRACED = 0x800000 ++ CLONE_VFORK = 0x4000 ++ CLONE_VM = 0x100 ++ CMSPAR = 0x40000000 ++ CR0 = 0x0 ++ CR1 = 0x1000 ++ CR2 = 0x2000 ++ CR3 = 0x3000 ++ CRDLY = 0x3000 ++ CREAD = 0x800 ++ CRTSCTS = 0x80000000 ++ CS5 = 0x0 ++ CS6 = 0x100 ++ CS7 = 0x200 ++ CS8 = 0x300 ++ CSIGNAL = 0xff ++ CSIZE = 0x300 ++ CSTART = 0x11 ++ CSTATUS = 0x0 ++ CSTOP = 0x13 ++ CSTOPB = 0x400 ++ CSUSP = 0x1a ++ DT_BLK = 0x6 ++ DT_CHR = 0x2 ++ DT_DIR = 0x4 ++ DT_FIFO = 0x1 ++ DT_LNK = 0xa ++ DT_REG = 0x8 ++ DT_SOCK = 0xc ++ DT_UNKNOWN = 0x0 ++ DT_WHT = 0xe ++ ECHO = 0x8 ++ ECHOCTL = 0x40 ++ ECHOE = 0x2 ++ ECHOK = 0x4 ++ ECHOKE = 0x1 ++ ECHONL = 0x10 ++ ECHOPRT = 0x20 ++ ENCODING_DEFAULT = 0x0 ++ ENCODING_FM_MARK = 0x3 ++ ENCODING_FM_SPACE = 0x4 ++ ENCODING_MANCHESTER = 0x5 ++ ENCODING_NRZ = 0x1 ++ ENCODING_NRZI = 0x2 ++ EPOLLERR = 0x8 ++ EPOLLET = 0x80000000 ++ EPOLLHUP = 0x10 ++ EPOLLIN = 0x1 ++ EPOLLMSG = 0x400 ++ EPOLLONESHOT = 0x40000000 ++ EPOLLOUT = 0x4 ++ EPOLLPRI = 0x2 ++ EPOLLRDBAND = 0x80 ++ EPOLLRDHUP = 0x2000 ++ EPOLLRDNORM = 0x40 ++ EPOLLWAKEUP = 0x20000000 ++ EPOLLWRBAND = 0x200 ++ EPOLLWRNORM = 0x100 ++ EPOLL_CLOEXEC = 0x80000 ++ EPOLL_CTL_ADD = 0x1 ++ EPOLL_CTL_DEL = 0x2 ++ EPOLL_CTL_MOD = 0x3 ++ ETH_P_1588 = 0x88f7 ++ ETH_P_8021AD = 0x88a8 ++ ETH_P_8021AH = 0x88e7 ++ ETH_P_8021Q = 0x8100 ++ ETH_P_802_2 = 0x4 ++ ETH_P_802_3 = 0x1 ++ ETH_P_802_3_MIN = 0x600 ++ ETH_P_802_EX1 = 0x88b5 ++ ETH_P_AARP = 0x80f3 ++ ETH_P_AF_IUCV = 0xfbfb ++ ETH_P_ALL = 0x3 ++ ETH_P_AOE = 0x88a2 ++ ETH_P_ARCNET = 0x1a ++ ETH_P_ARP = 0x806 ++ ETH_P_ATALK = 0x809b ++ ETH_P_ATMFATE = 0x8884 ++ ETH_P_ATMMPOA = 0x884c ++ ETH_P_AX25 = 0x2 ++ ETH_P_BATMAN = 0x4305 ++ ETH_P_BPQ = 0x8ff ++ ETH_P_CAIF = 0xf7 ++ ETH_P_CAN = 0xc ++ ETH_P_CANFD = 0xd ++ ETH_P_CONTROL = 0x16 ++ ETH_P_CUST = 0x6006 ++ ETH_P_DDCMP = 0x6 ++ ETH_P_DEC = 0x6000 ++ ETH_P_DIAG = 0x6005 ++ ETH_P_DNA_DL = 0x6001 ++ ETH_P_DNA_RC = 0x6002 ++ ETH_P_DNA_RT = 0x6003 ++ ETH_P_DSA = 0x1b ++ ETH_P_ECONET = 0x18 ++ ETH_P_EDSA = 0xdada ++ ETH_P_FCOE = 0x8906 ++ ETH_P_FIP = 0x8914 ++ ETH_P_HDLC = 0x19 ++ ETH_P_IEEE802154 = 0xf6 ++ ETH_P_IEEEPUP = 0xa00 ++ ETH_P_IEEEPUPAT = 0xa01 ++ ETH_P_IP = 0x800 ++ ETH_P_IPV6 = 0x86dd ++ ETH_P_IPX = 0x8137 ++ ETH_P_IRDA = 0x17 ++ ETH_P_LAT = 0x6004 ++ ETH_P_LINK_CTL = 0x886c ++ ETH_P_LOCALTALK = 0x9 ++ ETH_P_LOOP = 0x60 ++ ETH_P_MOBITEX = 0x15 ++ ETH_P_MPLS_MC = 0x8848 ++ ETH_P_MPLS_UC = 0x8847 ++ ETH_P_MVRP = 0x88f5 ++ ETH_P_PAE = 0x888e ++ ETH_P_PAUSE = 0x8808 ++ ETH_P_PHONET = 0xf5 ++ ETH_P_PPPTALK = 0x10 ++ ETH_P_PPP_DISC = 0x8863 ++ ETH_P_PPP_MP = 0x8 ++ ETH_P_PPP_SES = 0x8864 ++ ETH_P_PRP = 0x88fb ++ ETH_P_PUP = 0x200 ++ ETH_P_PUPAT = 0x201 ++ ETH_P_QINQ1 = 0x9100 ++ ETH_P_QINQ2 = 0x9200 ++ ETH_P_QINQ3 = 0x9300 ++ ETH_P_RARP = 0x8035 ++ ETH_P_SCA = 0x6007 ++ ETH_P_SLOW = 0x8809 ++ ETH_P_SNAP = 0x5 ++ ETH_P_TDLS = 0x890d ++ ETH_P_TEB = 0x6558 ++ ETH_P_TIPC = 0x88ca ++ ETH_P_TRAILER = 0x1c ++ ETH_P_TR_802_2 = 0x11 ++ ETH_P_WAN_PPP = 0x7 ++ ETH_P_WCCP = 0x883e ++ ETH_P_X25 = 0x805 ++ EXTA = 0xe ++ EXTB = 0xf ++ EXTPROC = 0x10000000 ++ FALLOC_FL_COLLAPSE_RANGE = 0x8 ++ FALLOC_FL_INSERT_RANGE = 0x20 ++ FALLOC_FL_KEEP_SIZE = 0x1 ++ FALLOC_FL_NO_HIDE_STALE = 0x4 ++ FALLOC_FL_PUNCH_HOLE = 0x2 ++ FALLOC_FL_ZERO_RANGE = 0x10 ++ FD_CLOEXEC = 0x1 ++ FD_SETSIZE = 0x400 ++ FF0 = 0x0 ++ FF1 = 0x4000 ++ FFDLY = 0x4000 ++ FLUSHO = 0x800000 ++ F_DUPFD = 0x0 ++ F_DUPFD_CLOEXEC = 0x406 ++ F_EXLCK = 0x4 ++ F_GETFD = 0x1 ++ F_GETFL = 0x3 ++ F_GETLEASE = 0x401 ++ F_GETLK = 0x5 ++ F_GETLK64 = 0xc ++ F_GETOWN = 0x9 ++ F_GETOWN_EX = 0x10 ++ F_GETPIPE_SZ = 0x408 ++ F_GETSIG = 0xb ++ F_LOCK = 0x1 ++ F_NOTIFY = 0x402 ++ F_OK = 0x0 ++ F_RDLCK = 0x0 ++ F_SETFD = 0x2 ++ F_SETFL = 0x4 ++ F_SETLEASE = 0x400 ++ F_SETLK = 0x6 ++ F_SETLK64 = 0xd ++ F_SETLKW = 0x7 ++ F_SETLKW64 = 0xe ++ F_SETOWN = 0x8 ++ F_SETOWN_EX = 0xf ++ F_SETPIPE_SZ = 0x407 ++ F_SETSIG = 0xa ++ F_SHLCK = 0x8 ++ F_TEST = 0x3 ++ F_TLOCK = 0x2 ++ F_ULOCK = 0x0 ++ F_UNLCK = 0x2 ++ F_WRLCK = 0x1 ++ GRND_NONBLOCK = 0x1 ++ GRND_RANDOM = 0x2 ++ HUPCL = 0x4000 ++ IBSHIFT = 0x10 ++ ICANON = 0x100 ++ ICMPV6_FILTER = 0x1 ++ ICRNL = 0x100 ++ IEXTEN = 0x400 ++ IFA_F_DADFAILED = 0x8 ++ IFA_F_DEPRECATED = 0x20 ++ IFA_F_HOMEADDRESS = 0x10 ++ IFA_F_NODAD = 0x2 ++ IFA_F_OPTIMISTIC = 0x4 ++ IFA_F_PERMANENT = 0x80 ++ IFA_F_SECONDARY = 0x1 ++ IFA_F_TEMPORARY = 0x1 ++ IFA_F_TENTATIVE = 0x40 ++ IFA_MAX = 0x7 ++ IFF_802_1Q_VLAN = 0x1 ++ IFF_ALLMULTI = 0x200 ++ IFF_ATTACH_QUEUE = 0x200 ++ IFF_AUTOMEDIA = 0x4000 ++ IFF_BONDING = 0x20 ++ IFF_BRIDGE_PORT = 0x4000 ++ IFF_BROADCAST = 0x2 ++ IFF_DEBUG = 0x4 ++ IFF_DETACH_QUEUE = 0x400 ++ IFF_DISABLE_NETPOLL = 0x1000 ++ IFF_DONT_BRIDGE = 0x800 ++ IFF_DORMANT = 0x20000 ++ IFF_DYNAMIC = 0x8000 ++ IFF_EBRIDGE = 0x2 ++ IFF_ECHO = 0x40000 ++ IFF_ISATAP = 0x80 ++ IFF_LIVE_ADDR_CHANGE = 0x100000 ++ IFF_LOOPBACK = 0x8 ++ IFF_LOWER_UP = 0x10000 ++ IFF_MACVLAN = 0x200000 ++ IFF_MACVLAN_PORT = 0x2000 ++ IFF_MASTER = 0x400 ++ IFF_MASTER_8023AD = 0x8 ++ IFF_MASTER_ALB = 0x10 ++ IFF_MASTER_ARPMON = 0x100 ++ IFF_MULTICAST = 0x1000 ++ IFF_MULTI_QUEUE = 0x100 ++ IFF_NOARP = 0x80 ++ IFF_NOFILTER = 0x1000 ++ IFF_NOTRAILERS = 0x20 ++ IFF_NO_PI = 0x1000 ++ IFF_ONE_QUEUE = 0x2000 ++ IFF_OVS_DATAPATH = 0x8000 ++ IFF_PERSIST = 0x800 ++ IFF_POINTOPOINT = 0x10 ++ IFF_PORTSEL = 0x2000 ++ IFF_PROMISC = 0x100 ++ IFF_RUNNING = 0x40 ++ IFF_SLAVE = 0x800 ++ IFF_SLAVE_INACTIVE = 0x4 ++ IFF_SLAVE_NEEDARP = 0x40 ++ IFF_SUPP_NOFCS = 0x80000 ++ IFF_TAP = 0x2 ++ IFF_TEAM_PORT = 0x40000 ++ IFF_TUN = 0x1 ++ IFF_TUN_EXCL = 0x8000 ++ IFF_TX_SKB_SHARING = 0x10000 ++ IFF_UNICAST_FLT = 0x20000 ++ IFF_UP = 0x1 ++ IFF_VNET_HDR = 0x4000 ++ IFF_VOLATILE = 0x70c5a ++ IFF_WAN_HDLC = 0x200 ++ IFF_XMIT_DST_RELEASE = 0x400 ++ IFNAMSIZ = 0x10 ++ IGNBRK = 0x1 ++ IGNCR = 0x80 ++ IGNPAR = 0x4 ++ IMAXBEL = 0x2000 ++ INLCR = 0x40 ++ INPCK = 0x10 ++ IN_ACCESS = 0x1 ++ IN_ALL_EVENTS = 0xfff ++ IN_ATTRIB = 0x4 ++ IN_CLASSA_HOST = 0xffffff ++ IN_CLASSA_MAX = 0x80 ++ IN_CLASSA_NET = 0xff000000 ++ IN_CLASSA_NSHIFT = 0x18 ++ IN_CLASSB_HOST = 0xffff ++ IN_CLASSB_MAX = 0x10000 ++ IN_CLASSB_NET = 0xffff0000 ++ IN_CLASSB_NSHIFT = 0x10 ++ IN_CLASSC_HOST = 0xff ++ IN_CLASSC_NET = 0xffffff00 ++ IN_CLASSC_NSHIFT = 0x8 ++ IN_CLOEXEC = 0x80000 ++ IN_CLOSE = 0x18 ++ IN_CLOSE_NOWRITE = 0x10 ++ IN_CLOSE_WRITE = 0x8 ++ IN_CREATE = 0x100 ++ IN_DELETE = 0x200 ++ IN_DELETE_SELF = 0x400 ++ IN_DONT_FOLLOW = 0x2000000 ++ IN_EXCL_UNLINK = 0x4000000 ++ IN_IGNORED = 0x8000 ++ IN_ISDIR = 0x40000000 ++ IN_LOOPBACKNET = 0x7f ++ IN_MASK_ADD = 0x20000000 ++ IN_MODIFY = 0x2 ++ IN_MOVE = 0xc0 ++ IN_MOVED_FROM = 0x40 ++ IN_MOVED_TO = 0x80 ++ IN_MOVE_SELF = 0x800 ++ IN_NONBLOCK = 0x800 ++ IN_ONESHOT = 0x80000000 ++ IN_ONLYDIR = 0x1000000 ++ IN_OPEN = 0x20 ++ IN_Q_OVERFLOW = 0x4000 ++ IN_UNMOUNT = 0x2000 ++ IPPROTO_AH = 0x33 ++ IPPROTO_BEETPH = 0x5e ++ IPPROTO_COMP = 0x6c ++ IPPROTO_DCCP = 0x21 ++ IPPROTO_DSTOPTS = 0x3c ++ IPPROTO_EGP = 0x8 ++ IPPROTO_ENCAP = 0x62 ++ IPPROTO_ESP = 0x32 ++ IPPROTO_FRAGMENT = 0x2c ++ IPPROTO_GRE = 0x2f ++ IPPROTO_HOPOPTS = 0x0 ++ IPPROTO_ICMP = 0x1 ++ IPPROTO_ICMPV6 = 0x3a ++ IPPROTO_IDP = 0x16 ++ IPPROTO_IGMP = 0x2 ++ IPPROTO_IP = 0x0 ++ IPPROTO_IPIP = 0x4 ++ IPPROTO_IPV6 = 0x29 ++ IPPROTO_MH = 0x87 ++ IPPROTO_MTP = 0x5c ++ IPPROTO_NONE = 0x3b ++ IPPROTO_PIM = 0x67 ++ IPPROTO_PUP = 0xc ++ IPPROTO_RAW = 0xff ++ IPPROTO_ROUTING = 0x2b ++ IPPROTO_RSVP = 0x2e ++ IPPROTO_SCTP = 0x84 ++ IPPROTO_TCP = 0x6 ++ IPPROTO_TP = 0x1d ++ IPPROTO_UDP = 0x11 ++ IPPROTO_UDPLITE = 0x88 ++ IPV6_2292DSTOPTS = 0x4 ++ IPV6_2292HOPLIMIT = 0x8 ++ IPV6_2292HOPOPTS = 0x3 ++ IPV6_2292PKTINFO = 0x2 ++ IPV6_2292PKTOPTIONS = 0x6 ++ IPV6_2292RTHDR = 0x5 ++ IPV6_ADDRFORM = 0x1 ++ IPV6_ADD_MEMBERSHIP = 0x14 ++ IPV6_AUTHHDR = 0xa ++ IPV6_CHECKSUM = 0x7 ++ IPV6_DROP_MEMBERSHIP = 0x15 ++ IPV6_DSTOPTS = 0x3b ++ IPV6_HOPLIMIT = 0x34 ++ IPV6_HOPOPTS = 0x36 ++ IPV6_IPSEC_POLICY = 0x22 ++ IPV6_JOIN_ANYCAST = 0x1b ++ IPV6_JOIN_GROUP = 0x14 ++ IPV6_LEAVE_ANYCAST = 0x1c ++ IPV6_LEAVE_GROUP = 0x15 ++ IPV6_MTU = 0x18 ++ IPV6_MTU_DISCOVER = 0x17 ++ IPV6_MULTICAST_HOPS = 0x12 ++ IPV6_MULTICAST_IF = 0x11 ++ IPV6_MULTICAST_LOOP = 0x13 ++ IPV6_NEXTHOP = 0x9 ++ IPV6_PKTINFO = 0x32 ++ IPV6_PMTUDISC_DO = 0x2 ++ IPV6_PMTUDISC_DONT = 0x0 ++ IPV6_PMTUDISC_PROBE = 0x3 ++ IPV6_PMTUDISC_WANT = 0x1 ++ IPV6_RECVDSTOPTS = 0x3a ++ IPV6_RECVERR = 0x19 ++ IPV6_RECVHOPLIMIT = 0x33 ++ IPV6_RECVHOPOPTS = 0x35 ++ IPV6_RECVPKTINFO = 0x31 ++ IPV6_RECVRTHDR = 0x38 ++ IPV6_RECVTCLASS = 0x42 ++ IPV6_ROUTER_ALERT = 0x16 ++ IPV6_RTHDR = 0x39 ++ IPV6_RTHDRDSTOPTS = 0x37 ++ IPV6_RTHDR_LOOSE = 0x0 ++ IPV6_RTHDR_STRICT = 0x1 ++ IPV6_RTHDR_TYPE_0 = 0x0 ++ IPV6_RXDSTOPTS = 0x3b ++ IPV6_RXHOPOPTS = 0x36 ++ IPV6_TCLASS = 0x43 ++ IPV6_UNICAST_HOPS = 0x10 ++ IPV6_V6ONLY = 0x1a ++ IPV6_XFRM_POLICY = 0x23 ++ IP_ADD_MEMBERSHIP = 0x23 ++ IP_ADD_SOURCE_MEMBERSHIP = 0x27 ++ IP_BLOCK_SOURCE = 0x26 ++ IP_DEFAULT_MULTICAST_LOOP = 0x1 ++ IP_DEFAULT_MULTICAST_TTL = 0x1 ++ IP_DF = 0x4000 ++ IP_DROP_MEMBERSHIP = 0x24 ++ IP_DROP_SOURCE_MEMBERSHIP = 0x28 ++ IP_FREEBIND = 0xf ++ IP_HDRINCL = 0x3 ++ IP_IPSEC_POLICY = 0x10 ++ IP_MAXPACKET = 0xffff ++ IP_MAX_MEMBERSHIPS = 0x14 ++ IP_MF = 0x2000 ++ IP_MINTTL = 0x15 ++ IP_MSFILTER = 0x29 ++ IP_MSS = 0x240 ++ IP_MTU = 0xe ++ IP_MTU_DISCOVER = 0xa ++ IP_MULTICAST_ALL = 0x31 ++ IP_MULTICAST_IF = 0x20 ++ IP_MULTICAST_LOOP = 0x22 ++ IP_MULTICAST_TTL = 0x21 ++ IP_OFFMASK = 0x1fff ++ IP_OPTIONS = 0x4 ++ IP_ORIGDSTADDR = 0x14 ++ IP_PASSSEC = 0x12 ++ IP_PKTINFO = 0x8 ++ IP_PKTOPTIONS = 0x9 ++ IP_PMTUDISC = 0xa ++ IP_PMTUDISC_DO = 0x2 ++ IP_PMTUDISC_DONT = 0x0 ++ IP_PMTUDISC_PROBE = 0x3 ++ IP_PMTUDISC_WANT = 0x1 ++ IP_RECVERR = 0xb ++ IP_RECVOPTS = 0x6 ++ IP_RECVORIGDSTADDR = 0x14 ++ IP_RECVRETOPTS = 0x7 ++ IP_RECVTOS = 0xd ++ IP_RECVTTL = 0xc ++ IP_RETOPTS = 0x7 ++ IP_RF = 0x8000 ++ IP_ROUTER_ALERT = 0x5 ++ IP_TOS = 0x1 ++ IP_TRANSPARENT = 0x13 ++ IP_TTL = 0x2 ++ IP_UNBLOCK_SOURCE = 0x25 ++ IP_UNICAST_IF = 0x32 ++ IP_XFRM_POLICY = 0x11 ++ ISIG = 0x80 ++ ISTRIP = 0x20 ++ IUCLC = 0x1000 ++ IUTF8 = 0x4000 ++ IXANY = 0x800 ++ IXOFF = 0x400 ++ IXON = 0x200 ++ LINUX_REBOOT_CMD_CAD_OFF = 0x0 ++ LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef ++ LINUX_REBOOT_CMD_HALT = 0xcdef0123 ++ LINUX_REBOOT_CMD_KEXEC = 0x45584543 ++ LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc ++ LINUX_REBOOT_CMD_RESTART = 0x1234567 ++ LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 ++ LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 ++ LINUX_REBOOT_MAGIC1 = 0xfee1dead ++ LINUX_REBOOT_MAGIC2 = 0x28121969 ++ LOCK_EX = 0x2 ++ LOCK_NB = 0x4 ++ LOCK_SH = 0x1 ++ LOCK_UN = 0x8 ++ MADV_DODUMP = 0x11 ++ MADV_DOFORK = 0xb ++ MADV_DONTDUMP = 0x10 ++ MADV_DONTFORK = 0xa ++ MADV_DONTNEED = 0x4 ++ MADV_HUGEPAGE = 0xe ++ MADV_HWPOISON = 0x64 ++ MADV_MERGEABLE = 0xc ++ MADV_NOHUGEPAGE = 0xf ++ MADV_NORMAL = 0x0 ++ MADV_RANDOM = 0x1 ++ MADV_REMOVE = 0x9 ++ MADV_SEQUENTIAL = 0x2 ++ MADV_UNMERGEABLE = 0xd ++ MADV_WILLNEED = 0x3 ++ MAP_ANON = 0x20 ++ MAP_ANONYMOUS = 0x20 ++ MAP_DENYWRITE = 0x800 ++ MAP_EXECUTABLE = 0x1000 ++ MAP_FILE = 0x0 ++ MAP_FIXED = 0x10 ++ MAP_GROWSDOWN = 0x100 ++ MAP_HUGETLB = 0x40000 ++ MAP_HUGE_MASK = 0x3f ++ MAP_HUGE_SHIFT = 0x1a ++ MAP_LOCKED = 0x80 ++ MAP_NONBLOCK = 0x10000 ++ MAP_NORESERVE = 0x40 ++ MAP_POPULATE = 0x8000 ++ MAP_PRIVATE = 0x2 ++ MAP_SHARED = 0x1 ++ MAP_STACK = 0x20000 ++ MAP_TYPE = 0xf ++ MCL_CURRENT = 0x2000 ++ MCL_FUTURE = 0x4000 ++ MNT_DETACH = 0x2 ++ MNT_EXPIRE = 0x4 ++ MNT_FORCE = 0x1 ++ MSG_CMSG_CLOEXEC = 0x40000000 ++ MSG_CONFIRM = 0x800 ++ MSG_CTRUNC = 0x8 ++ MSG_DONTROUTE = 0x4 ++ MSG_DONTWAIT = 0x40 ++ MSG_EOR = 0x80 ++ MSG_ERRQUEUE = 0x2000 ++ MSG_FASTOPEN = 0x20000000 ++ MSG_FIN = 0x200 ++ MSG_MORE = 0x8000 ++ MSG_NOSIGNAL = 0x4000 ++ MSG_OOB = 0x1 ++ MSG_PEEK = 0x2 ++ MSG_PROXY = 0x10 ++ MSG_RST = 0x1000 ++ MSG_SYN = 0x400 ++ MSG_TRUNC = 0x20 ++ MSG_TRYHARD = 0x4 ++ MSG_WAITALL = 0x100 ++ MSG_WAITFORONE = 0x10000 ++ MS_ACTIVE = 0x40000000 ++ MS_ASYNC = 0x1 ++ MS_BIND = 0x1000 ++ MS_DIRSYNC = 0x80 ++ MS_INVALIDATE = 0x2 ++ MS_I_VERSION = 0x800000 ++ MS_KERNMOUNT = 0x400000 ++ MS_MANDLOCK = 0x40 ++ MS_MGC_MSK = 0xffff0000 ++ MS_MGC_VAL = 0xc0ed0000 ++ MS_MOVE = 0x2000 ++ MS_NOATIME = 0x400 ++ MS_NODEV = 0x4 ++ MS_NODIRATIME = 0x800 ++ MS_NOEXEC = 0x8 ++ MS_NOSUID = 0x2 ++ MS_NOUSER = -0x80000000 ++ MS_POSIXACL = 0x10000 ++ MS_PRIVATE = 0x40000 ++ MS_RDONLY = 0x1 ++ MS_REC = 0x4000 ++ MS_RELATIME = 0x200000 ++ MS_REMOUNT = 0x20 ++ MS_RMT_MASK = 0x800051 ++ MS_SHARED = 0x100000 ++ MS_SILENT = 0x8000 ++ MS_SLAVE = 0x80000 ++ MS_STRICTATIME = 0x1000000 ++ MS_SYNC = 0x4 ++ MS_SYNCHRONOUS = 0x10 ++ MS_UNBINDABLE = 0x20000 ++ NAME_MAX = 0xff ++ NETLINK_ADD_MEMBERSHIP = 0x1 ++ NETLINK_AUDIT = 0x9 ++ NETLINK_BROADCAST_ERROR = 0x4 ++ NETLINK_CONNECTOR = 0xb ++ NETLINK_CRYPTO = 0x15 ++ NETLINK_DNRTMSG = 0xe ++ NETLINK_DROP_MEMBERSHIP = 0x2 ++ NETLINK_ECRYPTFS = 0x13 ++ NETLINK_FIB_LOOKUP = 0xa ++ NETLINK_FIREWALL = 0x3 ++ NETLINK_GENERIC = 0x10 ++ NETLINK_INET_DIAG = 0x4 ++ NETLINK_IP6_FW = 0xd ++ NETLINK_ISCSI = 0x8 ++ NETLINK_KOBJECT_UEVENT = 0xf ++ NETLINK_NETFILTER = 0xc ++ NETLINK_NFLOG = 0x5 ++ NETLINK_NO_ENOBUFS = 0x5 ++ NETLINK_PKTINFO = 0x3 ++ NETLINK_RDMA = 0x14 ++ NETLINK_ROUTE = 0x0 ++ NETLINK_RX_RING = 0x6 ++ NETLINK_SCSITRANSPORT = 0x12 ++ NETLINK_SELINUX = 0x7 ++ NETLINK_SOCK_DIAG = 0x4 ++ NETLINK_TX_RING = 0x7 ++ NETLINK_UNUSED = 0x1 ++ NETLINK_USERSOCK = 0x2 ++ NETLINK_XFRM = 0x6 ++ NL0 = 0x0 ++ NL1 = 0x100 ++ NL2 = 0x200 ++ NL3 = 0x300 ++ NLA_ALIGNTO = 0x4 ++ NLA_F_NESTED = 0x8000 ++ NLA_F_NET_BYTEORDER = 0x4000 ++ NLA_HDRLEN = 0x4 ++ NLDLY = 0x300 ++ NLMSG_ALIGNTO = 0x4 ++ NLMSG_DONE = 0x3 ++ NLMSG_ERROR = 0x2 ++ NLMSG_HDRLEN = 0x10 ++ NLMSG_MIN_TYPE = 0x10 ++ NLMSG_NOOP = 0x1 ++ NLMSG_OVERRUN = 0x4 ++ NLM_F_ACK = 0x4 ++ NLM_F_APPEND = 0x800 ++ NLM_F_ATOMIC = 0x400 ++ NLM_F_CREATE = 0x400 ++ NLM_F_DUMP = 0x300 ++ NLM_F_DUMP_FILTERED = 0x20 ++ NLM_F_DUMP_INTR = 0x10 ++ NLM_F_ECHO = 0x8 ++ NLM_F_EXCL = 0x200 ++ NLM_F_MATCH = 0x200 ++ NLM_F_MULTI = 0x2 ++ NLM_F_REPLACE = 0x100 ++ NLM_F_REQUEST = 0x1 ++ NLM_F_ROOT = 0x100 ++ NOFLSH = 0x80000000 ++ OCRNL = 0x8 ++ OFDEL = 0x80 ++ OFILL = 0x40 ++ OLCUC = 0x4 ++ ONLCR = 0x2 ++ ONLRET = 0x20 ++ ONOCR = 0x10 ++ OPOST = 0x1 ++ O_ACCMODE = 0x3 ++ O_APPEND = 0x400 ++ O_ASYNC = 0x2000 ++ O_CLOEXEC = 0x80000 ++ O_CREAT = 0x40 ++ O_DIRECT = 0x20000 ++ O_DIRECTORY = 0x4000 ++ O_DSYNC = 0x1000 ++ O_EXCL = 0x80 ++ O_FSYNC = 0x101000 ++ O_LARGEFILE = 0x0 ++ O_NDELAY = 0x800 ++ O_NOATIME = 0x40000 ++ O_NOCTTY = 0x100 ++ O_NOFOLLOW = 0x8000 ++ O_NONBLOCK = 0x800 ++ O_PATH = 0x200000 ++ O_RDONLY = 0x0 ++ O_RDWR = 0x2 ++ O_RSYNC = 0x101000 ++ O_SYNC = 0x101000 ++ O_TMPFILE = 0x410000 ++ O_TRUNC = 0x200 ++ O_WRONLY = 0x1 ++ PACKET_ADD_MEMBERSHIP = 0x1 ++ PACKET_AUXDATA = 0x8 ++ PACKET_BROADCAST = 0x1 ++ PACKET_COPY_THRESH = 0x7 ++ PACKET_DROP_MEMBERSHIP = 0x2 ++ PACKET_FANOUT = 0x12 ++ PACKET_FANOUT_CPU = 0x2 ++ PACKET_FANOUT_FLAG_DEFRAG = 0x8000 ++ PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 ++ PACKET_FANOUT_HASH = 0x0 ++ PACKET_FANOUT_LB = 0x1 ++ PACKET_FANOUT_RND = 0x4 ++ PACKET_FANOUT_ROLLOVER = 0x3 ++ PACKET_FASTROUTE = 0x6 ++ PACKET_HDRLEN = 0xb ++ PACKET_HOST = 0x0 ++ PACKET_LOOPBACK = 0x5 ++ PACKET_LOSS = 0xe ++ PACKET_MR_ALLMULTI = 0x2 ++ PACKET_MR_MULTICAST = 0x0 ++ PACKET_MR_PROMISC = 0x1 ++ PACKET_MR_UNICAST = 0x3 ++ PACKET_MULTICAST = 0x2 ++ PACKET_ORIGDEV = 0x9 ++ PACKET_OTHERHOST = 0x3 ++ PACKET_OUTGOING = 0x4 ++ PACKET_RECV_OUTPUT = 0x3 ++ PACKET_RESERVE = 0xc ++ PACKET_RX_RING = 0x5 ++ PACKET_STATISTICS = 0x6 ++ PACKET_TIMESTAMP = 0x11 ++ PACKET_TX_HAS_OFF = 0x13 ++ PACKET_TX_RING = 0xd ++ PACKET_TX_TIMESTAMP = 0x10 ++ PACKET_VERSION = 0xa ++ PACKET_VNET_HDR = 0xf ++ PARENB = 0x1000 ++ PARITY_CRC16_PR0 = 0x2 ++ PARITY_CRC16_PR0_CCITT = 0x4 ++ PARITY_CRC16_PR1 = 0x3 ++ PARITY_CRC16_PR1_CCITT = 0x5 ++ PARITY_CRC32_PR0_CCITT = 0x6 ++ PARITY_CRC32_PR1_CCITT = 0x7 ++ PARITY_DEFAULT = 0x0 ++ PARITY_NONE = 0x1 ++ PARMRK = 0x8 ++ PARODD = 0x2000 ++ PENDIN = 0x20000000 ++ PRIO_PGRP = 0x1 ++ PRIO_PROCESS = 0x0 ++ PRIO_USER = 0x2 ++ PROT_EXEC = 0x4 ++ PROT_GROWSDOWN = 0x1000000 ++ PROT_GROWSUP = 0x2000000 ++ PROT_NONE = 0x0 ++ PROT_READ = 0x1 ++ PROT_SAO = 0x10 ++ PROT_WRITE = 0x2 ++ PR_CAPBSET_DROP = 0x18 ++ PR_CAPBSET_READ = 0x17 ++ PR_ENDIAN_BIG = 0x0 ++ PR_ENDIAN_LITTLE = 0x1 ++ PR_ENDIAN_PPC_LITTLE = 0x2 ++ PR_FPEMU_NOPRINT = 0x1 ++ PR_FPEMU_SIGFPE = 0x2 ++ PR_FP_EXC_ASYNC = 0x2 ++ PR_FP_EXC_DISABLED = 0x0 ++ PR_FP_EXC_DIV = 0x10000 ++ PR_FP_EXC_INV = 0x100000 ++ PR_FP_EXC_NONRECOV = 0x1 ++ PR_FP_EXC_OVF = 0x20000 ++ PR_FP_EXC_PRECISE = 0x3 ++ PR_FP_EXC_RES = 0x80000 ++ PR_FP_EXC_SW_ENABLE = 0x80 ++ PR_FP_EXC_UND = 0x40000 ++ PR_GET_CHILD_SUBREAPER = 0x25 ++ PR_GET_DUMPABLE = 0x3 ++ PR_GET_ENDIAN = 0x13 ++ PR_GET_FPEMU = 0x9 ++ PR_GET_FPEXC = 0xb ++ PR_GET_KEEPCAPS = 0x7 ++ PR_GET_NAME = 0x10 ++ PR_GET_NO_NEW_PRIVS = 0x27 ++ PR_GET_PDEATHSIG = 0x2 ++ PR_GET_SECCOMP = 0x15 ++ PR_GET_SECUREBITS = 0x1b ++ PR_GET_TID_ADDRESS = 0x28 ++ PR_GET_TIMERSLACK = 0x1e ++ PR_GET_TIMING = 0xd ++ PR_GET_TSC = 0x19 ++ PR_GET_UNALIGN = 0x5 ++ PR_MCE_KILL = 0x21 ++ PR_MCE_KILL_CLEAR = 0x0 ++ PR_MCE_KILL_DEFAULT = 0x2 ++ PR_MCE_KILL_EARLY = 0x1 ++ PR_MCE_KILL_GET = 0x22 ++ PR_MCE_KILL_LATE = 0x0 ++ PR_MCE_KILL_SET = 0x1 ++ PR_SET_CHILD_SUBREAPER = 0x24 ++ PR_SET_DUMPABLE = 0x4 ++ PR_SET_ENDIAN = 0x14 ++ PR_SET_FPEMU = 0xa ++ PR_SET_FPEXC = 0xc ++ PR_SET_KEEPCAPS = 0x8 ++ PR_SET_MM = 0x23 ++ PR_SET_MM_ARG_END = 0x9 ++ PR_SET_MM_ARG_START = 0x8 ++ PR_SET_MM_AUXV = 0xc ++ PR_SET_MM_BRK = 0x7 ++ PR_SET_MM_END_CODE = 0x2 ++ PR_SET_MM_END_DATA = 0x4 ++ PR_SET_MM_ENV_END = 0xb ++ PR_SET_MM_ENV_START = 0xa ++ PR_SET_MM_EXE_FILE = 0xd ++ PR_SET_MM_START_BRK = 0x6 ++ PR_SET_MM_START_CODE = 0x1 ++ PR_SET_MM_START_DATA = 0x3 ++ PR_SET_MM_START_STACK = 0x5 ++ PR_SET_NAME = 0xf ++ PR_SET_NO_NEW_PRIVS = 0x26 ++ PR_SET_PDEATHSIG = 0x1 ++ PR_SET_PTRACER = 0x59616d61 ++ PR_SET_PTRACER_ANY = -0x1 ++ PR_SET_SECCOMP = 0x16 ++ PR_SET_SECUREBITS = 0x1c ++ PR_SET_TIMERSLACK = 0x1d ++ PR_SET_TIMING = 0xe ++ PR_SET_TSC = 0x1a ++ PR_SET_UNALIGN = 0x6 ++ PR_TASK_PERF_EVENTS_DISABLE = 0x1f ++ PR_TASK_PERF_EVENTS_ENABLE = 0x20 ++ PR_TIMING_STATISTICAL = 0x0 ++ PR_TIMING_TIMESTAMP = 0x1 ++ PR_TSC_ENABLE = 0x1 ++ PR_TSC_SIGSEGV = 0x2 ++ PR_UNALIGN_NOPRINT = 0x1 ++ PR_UNALIGN_SIGBUS = 0x2 ++ PTRACE_ATTACH = 0x10 ++ PTRACE_CONT = 0x7 ++ PTRACE_DETACH = 0x11 ++ PTRACE_EVENT_CLONE = 0x3 ++ PTRACE_EVENT_EXEC = 0x4 ++ PTRACE_EVENT_EXIT = 0x6 ++ PTRACE_EVENT_FORK = 0x1 ++ PTRACE_EVENT_SECCOMP = 0x7 ++ PTRACE_EVENT_STOP = 0x80 ++ PTRACE_EVENT_VFORK = 0x2 ++ PTRACE_EVENT_VFORK_DONE = 0x5 ++ PTRACE_GETEVENTMSG = 0x4201 ++ PTRACE_GETEVRREGS = 0x14 ++ PTRACE_GETFPREGS = 0xe ++ PTRACE_GETREGS = 0xc ++ PTRACE_GETREGS64 = 0x16 ++ PTRACE_GETREGSET = 0x4204 ++ PTRACE_GETSIGINFO = 0x4202 ++ PTRACE_GETSIGMASK = 0x420a ++ PTRACE_GETVRREGS = 0x12 ++ PTRACE_GETVSRREGS = 0x1b ++ PTRACE_GET_DEBUGREG = 0x19 ++ PTRACE_INTERRUPT = 0x4207 ++ PTRACE_KILL = 0x8 ++ PTRACE_LISTEN = 0x4208 ++ PTRACE_O_EXITKILL = 0x100000 ++ PTRACE_O_MASK = 0x1000ff ++ PTRACE_O_TRACECLONE = 0x8 ++ PTRACE_O_TRACEEXEC = 0x10 ++ PTRACE_O_TRACEEXIT = 0x40 ++ PTRACE_O_TRACEFORK = 0x2 ++ PTRACE_O_TRACESECCOMP = 0x80 ++ PTRACE_O_TRACESYSGOOD = 0x1 ++ PTRACE_O_TRACEVFORK = 0x4 ++ PTRACE_O_TRACEVFORKDONE = 0x20 ++ PTRACE_PEEKDATA = 0x2 ++ PTRACE_PEEKSIGINFO = 0x4209 ++ PTRACE_PEEKSIGINFO_SHARED = 0x1 ++ PTRACE_PEEKTEXT = 0x1 ++ PTRACE_PEEKUSR = 0x3 ++ PTRACE_POKEDATA = 0x5 ++ PTRACE_POKETEXT = 0x4 ++ PTRACE_POKEUSR = 0x6 ++ PTRACE_SEIZE = 0x4206 ++ PTRACE_SETEVRREGS = 0x15 ++ PTRACE_SETFPREGS = 0xf ++ PTRACE_SETOPTIONS = 0x4200 ++ PTRACE_SETREGS = 0xd ++ PTRACE_SETREGS64 = 0x17 ++ PTRACE_SETREGSET = 0x4205 ++ PTRACE_SETSIGINFO = 0x4203 ++ PTRACE_SETSIGMASK = 0x420b ++ PTRACE_SETVRREGS = 0x13 ++ PTRACE_SETVSRREGS = 0x1c ++ PTRACE_SET_DEBUGREG = 0x1a ++ PTRACE_SINGLEBLOCK = 0x100 ++ PTRACE_SINGLESTEP = 0x9 ++ PTRACE_SYSCALL = 0x18 ++ PTRACE_TRACEME = 0x0 ++ PT_CCR = 0x26 ++ PT_CTR = 0x23 ++ PT_DAR = 0x29 ++ PT_DSCR = 0x2c ++ PT_DSISR = 0x2a ++ PT_FPR0 = 0x30 ++ PT_FPSCR = 0x50 ++ PT_LNK = 0x24 ++ PT_MSR = 0x21 ++ PT_NIP = 0x20 ++ PT_ORIG_R3 = 0x22 ++ PT_R0 = 0x0 ++ PT_R1 = 0x1 ++ PT_R10 = 0xa ++ PT_R11 = 0xb ++ PT_R12 = 0xc ++ PT_R13 = 0xd ++ PT_R14 = 0xe ++ PT_R15 = 0xf ++ PT_R16 = 0x10 ++ PT_R17 = 0x11 ++ PT_R18 = 0x12 ++ PT_R19 = 0x13 ++ PT_R2 = 0x2 ++ PT_R20 = 0x14 ++ PT_R21 = 0x15 ++ PT_R22 = 0x16 ++ PT_R23 = 0x17 ++ PT_R24 = 0x18 ++ PT_R25 = 0x19 ++ PT_R26 = 0x1a ++ PT_R27 = 0x1b ++ PT_R28 = 0x1c ++ PT_R29 = 0x1d ++ PT_R3 = 0x3 ++ PT_R30 = 0x1e ++ PT_R31 = 0x1f ++ PT_R4 = 0x4 ++ PT_R5 = 0x5 ++ PT_R6 = 0x6 ++ PT_R7 = 0x7 ++ PT_R8 = 0x8 ++ PT_R9 = 0x9 ++ PT_REGS_COUNT = 0x2c ++ PT_RESULT = 0x2b ++ PT_SOFTE = 0x27 ++ PT_TRAP = 0x28 ++ PT_VR0 = 0x52 ++ PT_VRSAVE = 0x94 ++ PT_VSCR = 0x93 ++ PT_VSR0 = 0x96 ++ PT_VSR31 = 0xd4 ++ PT_XER = 0x25 ++ RLIMIT_AS = 0x9 ++ RLIMIT_CORE = 0x4 ++ RLIMIT_CPU = 0x0 ++ RLIMIT_DATA = 0x2 ++ RLIMIT_FSIZE = 0x1 ++ RLIMIT_NOFILE = 0x7 ++ RLIMIT_STACK = 0x3 ++ RLIM_INFINITY = -0x1 ++ RTAX_ADVMSS = 0x8 ++ RTAX_CWND = 0x7 ++ RTAX_FEATURES = 0xc ++ RTAX_FEATURE_ALLFRAG = 0x8 ++ RTAX_FEATURE_ECN = 0x1 ++ RTAX_FEATURE_SACK = 0x2 ++ RTAX_FEATURE_TIMESTAMP = 0x4 ++ RTAX_HOPLIMIT = 0xa ++ RTAX_INITCWND = 0xb ++ RTAX_INITRWND = 0xe ++ RTAX_LOCK = 0x1 ++ RTAX_MAX = 0xf ++ RTAX_MTU = 0x2 ++ RTAX_QUICKACK = 0xf ++ RTAX_REORDERING = 0x9 ++ RTAX_RTO_MIN = 0xd ++ RTAX_RTT = 0x4 ++ RTAX_RTTVAR = 0x5 ++ RTAX_SSTHRESH = 0x6 ++ RTAX_UNSPEC = 0x0 ++ RTAX_WINDOW = 0x3 ++ RTA_ALIGNTO = 0x4 ++ RTA_MAX = 0x11 ++ RTCF_DIRECTSRC = 0x4000000 ++ RTCF_DOREDIRECT = 0x1000000 ++ RTCF_LOG = 0x2000000 ++ RTCF_MASQ = 0x400000 ++ RTCF_NAT = 0x800000 ++ RTCF_VALVE = 0x200000 ++ RTF_ADDRCLASSMASK = 0xf8000000 ++ RTF_ADDRCONF = 0x40000 ++ RTF_ALLONLINK = 0x20000 ++ RTF_BROADCAST = 0x10000000 ++ RTF_CACHE = 0x1000000 ++ RTF_DEFAULT = 0x10000 ++ RTF_DYNAMIC = 0x10 ++ RTF_FLOW = 0x2000000 ++ RTF_GATEWAY = 0x2 ++ RTF_HOST = 0x4 ++ RTF_INTERFACE = 0x40000000 ++ RTF_IRTT = 0x100 ++ RTF_LINKRT = 0x100000 ++ RTF_LOCAL = 0x80000000 ++ RTF_MODIFIED = 0x20 ++ RTF_MSS = 0x40 ++ RTF_MTU = 0x40 ++ RTF_MULTICAST = 0x20000000 ++ RTF_NAT = 0x8000000 ++ RTF_NOFORWARD = 0x1000 ++ RTF_NONEXTHOP = 0x200000 ++ RTF_NOPMTUDISC = 0x4000 ++ RTF_POLICY = 0x4000000 ++ RTF_REINSTATE = 0x8 ++ RTF_REJECT = 0x200 ++ RTF_STATIC = 0x400 ++ RTF_THROW = 0x2000 ++ RTF_UP = 0x1 ++ RTF_WINDOW = 0x80 ++ RTF_XRESOLVE = 0x800 ++ RTM_BASE = 0x10 ++ RTM_DELACTION = 0x31 ++ RTM_DELADDR = 0x15 ++ RTM_DELADDRLABEL = 0x49 ++ RTM_DELLINK = 0x11 ++ RTM_DELMDB = 0x55 ++ RTM_DELNEIGH = 0x1d ++ RTM_DELQDISC = 0x25 ++ RTM_DELROUTE = 0x19 ++ RTM_DELRULE = 0x21 ++ RTM_DELTCLASS = 0x29 ++ RTM_DELTFILTER = 0x2d ++ RTM_F_CLONED = 0x200 ++ RTM_F_EQUALIZE = 0x400 ++ RTM_F_NOTIFY = 0x100 ++ RTM_F_PREFIX = 0x800 ++ RTM_GETACTION = 0x32 ++ RTM_GETADDR = 0x16 ++ RTM_GETADDRLABEL = 0x4a ++ RTM_GETANYCAST = 0x3e ++ RTM_GETDCB = 0x4e ++ RTM_GETLINK = 0x12 ++ RTM_GETMDB = 0x56 ++ RTM_GETMULTICAST = 0x3a ++ RTM_GETNEIGH = 0x1e ++ RTM_GETNEIGHTBL = 0x42 ++ RTM_GETNETCONF = 0x52 ++ RTM_GETQDISC = 0x26 ++ RTM_GETROUTE = 0x1a ++ RTM_GETRULE = 0x22 ++ RTM_GETTCLASS = 0x2a ++ RTM_GETTFILTER = 0x2e ++ RTM_MAX = 0x57 ++ RTM_NEWACTION = 0x30 ++ RTM_NEWADDR = 0x14 ++ RTM_NEWADDRLABEL = 0x48 ++ RTM_NEWLINK = 0x10 ++ RTM_NEWMDB = 0x54 ++ RTM_NEWNDUSEROPT = 0x44 ++ RTM_NEWNEIGH = 0x1c ++ RTM_NEWNEIGHTBL = 0x40 ++ RTM_NEWNETCONF = 0x50 ++ RTM_NEWPREFIX = 0x34 ++ RTM_NEWQDISC = 0x24 ++ RTM_NEWROUTE = 0x18 ++ RTM_NEWRULE = 0x20 ++ RTM_NEWTCLASS = 0x28 ++ RTM_NEWTFILTER = 0x2c ++ RTM_NR_FAMILIES = 0x12 ++ RTM_NR_MSGTYPES = 0x48 ++ RTM_SETDCB = 0x4f ++ RTM_SETLINK = 0x13 ++ RTM_SETNEIGHTBL = 0x43 ++ RTNH_ALIGNTO = 0x4 ++ RTNH_F_DEAD = 0x1 ++ RTNH_F_ONLINK = 0x4 ++ RTNH_F_PERVASIVE = 0x2 ++ RTN_MAX = 0xb ++ RTPROT_BIRD = 0xc ++ RTPROT_BOOT = 0x3 ++ RTPROT_DHCP = 0x10 ++ RTPROT_DNROUTED = 0xd ++ RTPROT_GATED = 0x8 ++ RTPROT_KERNEL = 0x2 ++ RTPROT_MROUTED = 0x11 ++ RTPROT_MRT = 0xa ++ RTPROT_NTK = 0xf ++ RTPROT_RA = 0x9 ++ RTPROT_REDIRECT = 0x1 ++ RTPROT_STATIC = 0x4 ++ RTPROT_UNSPEC = 0x0 ++ RTPROT_XORP = 0xe ++ RTPROT_ZEBRA = 0xb ++ RT_CLASS_DEFAULT = 0xfd ++ RT_CLASS_LOCAL = 0xff ++ RT_CLASS_MAIN = 0xfe ++ RT_CLASS_MAX = 0xff ++ RT_CLASS_UNSPEC = 0x0 ++ RUSAGE_CHILDREN = -0x1 ++ RUSAGE_SELF = 0x0 ++ RUSAGE_THREAD = 0x1 ++ SCM_CREDENTIALS = 0x2 ++ SCM_RIGHTS = 0x1 ++ SCM_TIMESTAMP = 0x1d ++ SCM_TIMESTAMPING = 0x25 ++ SCM_TIMESTAMPNS = 0x23 ++ SCM_WIFI_STATUS = 0x29 ++ SHUT_RD = 0x0 ++ SHUT_RDWR = 0x2 ++ SHUT_WR = 0x1 ++ SIOCADDDLCI = 0x8980 ++ SIOCADDMULTI = 0x8931 ++ SIOCADDRT = 0x890b ++ SIOCATMARK = 0x8905 ++ SIOCDARP = 0x8953 ++ SIOCDELDLCI = 0x8981 ++ SIOCDELMULTI = 0x8932 ++ SIOCDELRT = 0x890c ++ SIOCDEVPRIVATE = 0x89f0 ++ SIOCDIFADDR = 0x8936 ++ SIOCDRARP = 0x8960 ++ SIOCGARP = 0x8954 ++ SIOCGIFADDR = 0x8915 ++ SIOCGIFBR = 0x8940 ++ SIOCGIFBRDADDR = 0x8919 ++ SIOCGIFCONF = 0x8912 ++ SIOCGIFCOUNT = 0x8938 ++ SIOCGIFDSTADDR = 0x8917 ++ SIOCGIFENCAP = 0x8925 ++ SIOCGIFFLAGS = 0x8913 ++ SIOCGIFHWADDR = 0x8927 ++ SIOCGIFINDEX = 0x8933 ++ SIOCGIFMAP = 0x8970 ++ SIOCGIFMEM = 0x891f ++ SIOCGIFMETRIC = 0x891d ++ SIOCGIFMTU = 0x8921 ++ SIOCGIFNAME = 0x8910 ++ SIOCGIFNETMASK = 0x891b ++ SIOCGIFPFLAGS = 0x8935 ++ SIOCGIFSLAVE = 0x8929 ++ SIOCGIFTXQLEN = 0x8942 ++ SIOCGPGRP = 0x8904 ++ SIOCGRARP = 0x8961 ++ SIOCGSTAMP = 0x8906 ++ SIOCGSTAMPNS = 0x8907 ++ SIOCPROTOPRIVATE = 0x89e0 ++ SIOCRTMSG = 0x890d ++ SIOCSARP = 0x8955 ++ SIOCSIFADDR = 0x8916 ++ SIOCSIFBR = 0x8941 ++ SIOCSIFBRDADDR = 0x891a ++ SIOCSIFDSTADDR = 0x8918 ++ SIOCSIFENCAP = 0x8926 ++ SIOCSIFFLAGS = 0x8914 ++ SIOCSIFHWADDR = 0x8924 ++ SIOCSIFHWBROADCAST = 0x8937 ++ SIOCSIFLINK = 0x8911 ++ SIOCSIFMAP = 0x8971 ++ SIOCSIFMEM = 0x8920 ++ SIOCSIFMETRIC = 0x891e ++ SIOCSIFMTU = 0x8922 ++ SIOCSIFNAME = 0x8923 ++ SIOCSIFNETMASK = 0x891c ++ SIOCSIFPFLAGS = 0x8934 ++ SIOCSIFSLAVE = 0x8930 ++ SIOCSIFTXQLEN = 0x8943 ++ SIOCSPGRP = 0x8902 ++ SIOCSRARP = 0x8962 ++ SOCK_CLOEXEC = 0x80000 ++ SOCK_DCCP = 0x6 ++ SOCK_DGRAM = 0x2 ++ SOCK_NONBLOCK = 0x800 ++ SOCK_PACKET = 0xa ++ SOCK_RAW = 0x3 ++ SOCK_RDM = 0x4 ++ SOCK_SEQPACKET = 0x5 ++ SOCK_STREAM = 0x1 ++ SOL_AAL = 0x109 ++ SOL_ATM = 0x108 ++ SOL_DECNET = 0x105 ++ SOL_ICMPV6 = 0x3a ++ SOL_IP = 0x0 ++ SOL_IPV6 = 0x29 ++ SOL_IRDA = 0x10a ++ SOL_NETLINK = 0x10e ++ SOL_PACKET = 0x107 ++ SOL_RAW = 0xff ++ SOL_SOCKET = 0x1 ++ SOL_TCP = 0x6 ++ SOL_X25 = 0x106 ++ SOMAXCONN = 0x80 ++ SO_ACCEPTCONN = 0x1e ++ SO_ATTACH_FILTER = 0x1a ++ SO_BINDTODEVICE = 0x19 ++ SO_BROADCAST = 0x6 ++ SO_BSDCOMPAT = 0xe ++ SO_BUSY_POLL = 0x2e ++ SO_DEBUG = 0x1 ++ SO_DETACH_FILTER = 0x1b ++ SO_DOMAIN = 0x27 ++ SO_DONTROUTE = 0x5 ++ SO_ERROR = 0x4 ++ SO_GET_FILTER = 0x1a ++ SO_KEEPALIVE = 0x9 ++ SO_LINGER = 0xd ++ SO_LOCK_FILTER = 0x2c ++ SO_MARK = 0x24 ++ SO_MAX_PACING_RATE = 0x2f ++ SO_NOFCS = 0x2b ++ SO_NO_CHECK = 0xb ++ SO_OOBINLINE = 0xa ++ SO_PASSCRED = 0x14 ++ SO_PASSSEC = 0x22 ++ SO_PEEK_OFF = 0x2a ++ SO_PEERCRED = 0x15 ++ SO_PEERNAME = 0x1c ++ SO_PEERSEC = 0x1f ++ SO_PRIORITY = 0xc ++ SO_PROTOCOL = 0x26 ++ SO_RCVBUF = 0x8 ++ SO_RCVBUFFORCE = 0x21 ++ SO_RCVLOWAT = 0x10 ++ SO_RCVTIMEO = 0x12 ++ SO_REUSEADDR = 0x2 ++ SO_REUSEPORT = 0xf ++ SO_RXQ_OVFL = 0x28 ++ SO_SECURITY_AUTHENTICATION = 0x16 ++ SO_SECURITY_ENCRYPTION_NETWORK = 0x18 ++ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 ++ SO_SELECT_ERR_QUEUE = 0x2d ++ SO_SNDBUF = 0x7 ++ SO_SNDBUFFORCE = 0x20 ++ SO_SNDLOWAT = 0x11 ++ SO_SNDTIMEO = 0x13 ++ SO_TIMESTAMP = 0x1d ++ SO_TIMESTAMPING = 0x25 ++ SO_TIMESTAMPNS = 0x23 ++ SO_TYPE = 0x3 ++ SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 ++ SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 ++ SO_VM_SOCKETS_BUFFER_SIZE = 0x0 ++ SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 ++ SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 ++ SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 ++ SO_VM_SOCKETS_TRUSTED = 0x5 ++ SO_WIFI_STATUS = 0x29 ++ SPLICE_F_GIFT = 0x8 ++ SPLICE_F_MORE = 0x4 ++ SPLICE_F_MOVE = 0x1 ++ SPLICE_F_NONBLOCK = 0x2 ++ S_BLKSIZE = 0x200 ++ S_IEXEC = 0x40 ++ S_IFBLK = 0x6000 ++ S_IFCHR = 0x2000 ++ S_IFDIR = 0x4000 ++ S_IFIFO = 0x1000 ++ S_IFLNK = 0xa000 ++ S_IFMT = 0xf000 ++ S_IFREG = 0x8000 ++ S_IFSOCK = 0xc000 ++ S_IREAD = 0x100 ++ S_IRGRP = 0x20 ++ S_IROTH = 0x4 ++ S_IRUSR = 0x100 ++ S_IRWXG = 0x38 ++ S_IRWXO = 0x7 ++ S_IRWXU = 0x1c0 ++ S_ISGID = 0x400 ++ S_ISUID = 0x800 ++ S_ISVTX = 0x200 ++ S_IWGRP = 0x10 ++ S_IWOTH = 0x2 ++ S_IWRITE = 0x80 ++ S_IWUSR = 0x80 ++ S_IXGRP = 0x8 ++ S_IXOTH = 0x1 ++ S_IXUSR = 0x40 ++ TAB0 = 0x0 ++ TAB1 = 0x400 ++ TAB2 = 0x800 ++ TAB3 = 0xc00 ++ TABDLY = 0xc00 ++ TCFLSH = 0x2000741f ++ TCGETA = 0x40147417 ++ TCGETS = 0x402c7413 ++ TCIFLUSH = 0x0 ++ TCIOFF = 0x2 ++ TCIOFLUSH = 0x2 ++ TCION = 0x3 ++ TCOFLUSH = 0x1 ++ TCOOFF = 0x0 ++ TCOON = 0x1 ++ TCP_CONGESTION = 0xd ++ TCP_COOKIE_IN_ALWAYS = 0x1 ++ TCP_COOKIE_MAX = 0x10 ++ TCP_COOKIE_MIN = 0x8 ++ TCP_COOKIE_OUT_NEVER = 0x2 ++ TCP_COOKIE_PAIR_SIZE = 0x20 ++ TCP_COOKIE_TRANSACTIONS = 0xf ++ TCP_CORK = 0x3 ++ TCP_DEFER_ACCEPT = 0x9 ++ TCP_FASTOPEN = 0x17 ++ TCP_INFO = 0xb ++ TCP_KEEPCNT = 0x6 ++ TCP_KEEPIDLE = 0x4 ++ TCP_KEEPINTVL = 0x5 ++ TCP_LINGER2 = 0x8 ++ TCP_MAXSEG = 0x2 ++ TCP_MAXWIN = 0xffff ++ TCP_MAX_WINSHIFT = 0xe ++ TCP_MD5SIG = 0xe ++ TCP_MD5SIG_MAXKEYLEN = 0x50 ++ TCP_MSS = 0x200 ++ TCP_MSS_DEFAULT = 0x218 ++ TCP_MSS_DESIRED = 0x4c4 ++ TCP_NODELAY = 0x1 ++ TCP_QUEUE_SEQ = 0x15 ++ TCP_QUICKACK = 0xc ++ TCP_REPAIR = 0x13 ++ TCP_REPAIR_OPTIONS = 0x16 ++ TCP_REPAIR_QUEUE = 0x14 ++ TCP_SYNCNT = 0x7 ++ TCP_S_DATA_IN = 0x4 ++ TCP_S_DATA_OUT = 0x8 ++ TCP_THIN_DUPACK = 0x11 ++ TCP_THIN_LINEAR_TIMEOUTS = 0x10 ++ TCP_TIMESTAMP = 0x18 ++ TCP_USER_TIMEOUT = 0x12 ++ TCP_WINDOW_CLAMP = 0xa ++ TCSAFLUSH = 0x2 ++ TCSBRK = 0x2000741d ++ TCSBRKP = 0x5425 ++ TCSETA = 0x80147418 ++ TCSETAF = 0x8014741c ++ TCSETAW = 0x80147419 ++ TCSETS = 0x802c7414 ++ TCSETSF = 0x802c7416 ++ TCSETSW = 0x802c7415 ++ TCXONC = 0x2000741e ++ TIOCCBRK = 0x5428 ++ TIOCCONS = 0x541d ++ TIOCEXCL = 0x540c ++ TIOCGDEV = 0x40045432 ++ TIOCGETC = 0x40067412 ++ TIOCGETD = 0x5424 ++ TIOCGETP = 0x40067408 ++ TIOCGEXCL = 0x40045440 ++ TIOCGICOUNT = 0x545d ++ TIOCGLCKTRMIOS = 0x5456 ++ TIOCGLTC = 0x40067474 ++ TIOCGPGRP = 0x40047477 ++ TIOCGPKT = 0x40045438 ++ TIOCGPTLCK = 0x40045439 ++ TIOCGPTN = 0x40045430 ++ TIOCGRS485 = 0x542e ++ TIOCGSERIAL = 0x541e ++ TIOCGSID = 0x5429 ++ TIOCGSOFTCAR = 0x5419 ++ TIOCGWINSZ = 0x40087468 ++ TIOCINQ = 0x4004667f ++ TIOCLINUX = 0x541c ++ TIOCMBIC = 0x5417 ++ TIOCMBIS = 0x5416 ++ TIOCMGET = 0x5415 ++ TIOCMIWAIT = 0x545c ++ TIOCMSET = 0x5418 ++ TIOCM_CAR = 0x40 ++ TIOCM_CD = 0x40 ++ TIOCM_CTS = 0x20 ++ TIOCM_DSR = 0x100 ++ TIOCM_DTR = 0x2 ++ TIOCM_LE = 0x1 ++ TIOCM_LOOP = 0x8000 ++ TIOCM_OUT1 = 0x2000 ++ TIOCM_OUT2 = 0x4000 ++ TIOCM_RI = 0x80 ++ TIOCM_RNG = 0x80 ++ TIOCM_RTS = 0x4 ++ TIOCM_SR = 0x10 ++ TIOCM_ST = 0x8 ++ TIOCNOTTY = 0x5422 ++ TIOCNXCL = 0x540d ++ TIOCOUTQ = 0x40047473 ++ TIOCPKT = 0x5420 ++ TIOCPKT_DATA = 0x0 ++ TIOCPKT_DOSTOP = 0x20 ++ TIOCPKT_FLUSHREAD = 0x1 ++ TIOCPKT_FLUSHWRITE = 0x2 ++ TIOCPKT_IOCTL = 0x40 ++ TIOCPKT_NOSTOP = 0x10 ++ TIOCPKT_START = 0x8 ++ TIOCPKT_STOP = 0x4 ++ TIOCSBRK = 0x5427 ++ TIOCSCTTY = 0x540e ++ TIOCSERCONFIG = 0x5453 ++ TIOCSERGETLSR = 0x5459 ++ TIOCSERGETMULTI = 0x545a ++ TIOCSERGSTRUCT = 0x5458 ++ TIOCSERGWILD = 0x5454 ++ TIOCSERSETMULTI = 0x545b ++ TIOCSERSWILD = 0x5455 ++ TIOCSER_TEMT = 0x1 ++ TIOCSETC = 0x80067411 ++ TIOCSETD = 0x5423 ++ TIOCSETN = 0x8006740a ++ TIOCSETP = 0x80067409 ++ TIOCSIG = 0x80045436 ++ TIOCSLCKTRMIOS = 0x5457 ++ TIOCSLTC = 0x80067475 ++ TIOCSPGRP = 0x80047476 ++ TIOCSPTLCK = 0x80045431 ++ TIOCSRS485 = 0x542f ++ TIOCSSERIAL = 0x541f ++ TIOCSSOFTCAR = 0x541a ++ TIOCSTART = 0x2000746e ++ TIOCSTI = 0x5412 ++ TIOCSTOP = 0x2000746f ++ TIOCSWINSZ = 0x80087467 ++ TIOCVHANGUP = 0x5437 ++ TOSTOP = 0x400000 ++ TUNATTACHFILTER = 0x801054d5 ++ TUNDETACHFILTER = 0x801054d6 ++ TUNGETFEATURES = 0x400454cf ++ TUNGETFILTER = 0x401054db ++ TUNGETIFF = 0x400454d2 ++ TUNGETSNDBUF = 0x400454d3 ++ TUNGETVNETHDRSZ = 0x400454d7 ++ TUNSETDEBUG = 0x800454c9 ++ TUNSETGROUP = 0x800454ce ++ TUNSETIFF = 0x800454ca ++ TUNSETIFINDEX = 0x800454da ++ TUNSETLINK = 0x800454cd ++ TUNSETNOCSUM = 0x800454c8 ++ TUNSETOFFLOAD = 0x800454d0 ++ TUNSETOWNER = 0x800454cc ++ TUNSETPERSIST = 0x800454cb ++ TUNSETQUEUE = 0x800454d9 ++ TUNSETSNDBUF = 0x800454d4 ++ TUNSETTXFILTER = 0x800454d1 ++ TUNSETVNETHDRSZ = 0x800454d8 ++ VDISCARD = 0x10 ++ VEOF = 0x4 ++ VEOL = 0x6 ++ VEOL2 = 0x8 ++ VERASE = 0x2 ++ VINTR = 0x0 ++ VKILL = 0x3 ++ VLNEXT = 0xf ++ VMADDR_CID_ANY = 0xffffffff ++ VMADDR_CID_HOST = 0x2 ++ VMADDR_CID_HYPERVISOR = 0x0 ++ VMADDR_CID_RESERVED = 0x1 ++ VMADDR_PORT_ANY = 0xffffffff ++ VMIN = 0x5 ++ VQUIT = 0x1 ++ VREPRINT = 0xb ++ VSTART = 0xd ++ VSTOP = 0xe ++ VSUSP = 0xc ++ VSWTC = 0x9 ++ VT0 = 0x0 ++ VT1 = 0x10000 ++ VTDLY = 0x10000 ++ VTIME = 0x7 ++ VWERASE = 0xa ++ WALL = 0x40000000 ++ WCLONE = 0x80000000 ++ WCONTINUED = 0x8 ++ WEXITED = 0x4 ++ WNOHANG = 0x1 ++ WNOTHREAD = 0x20000000 ++ WNOWAIT = 0x1000000 ++ WORDSIZE = 0x40 ++ WSTOPPED = 0x2 ++ WUNTRACED = 0x2 ++ XCASE = 0x4000 ++ XTABS = 0xc00 ++) ++ ++// Errors ++const ( ++ E2BIG = syscall.Errno(0x7) ++ EACCES = syscall.Errno(0xd) ++ EADDRINUSE = syscall.Errno(0x62) ++ EADDRNOTAVAIL = syscall.Errno(0x63) ++ EADV = syscall.Errno(0x44) ++ EAFNOSUPPORT = syscall.Errno(0x61) ++ EAGAIN = syscall.Errno(0xb) ++ EALREADY = syscall.Errno(0x72) ++ EBADE = syscall.Errno(0x34) ++ EBADF = syscall.Errno(0x9) ++ EBADFD = syscall.Errno(0x4d) ++ EBADMSG = syscall.Errno(0x4a) ++ EBADR = syscall.Errno(0x35) ++ EBADRQC = syscall.Errno(0x38) ++ EBADSLT = syscall.Errno(0x39) ++ EBFONT = syscall.Errno(0x3b) ++ EBUSY = syscall.Errno(0x10) ++ ECANCELED = syscall.Errno(0x7d) ++ ECHILD = syscall.Errno(0xa) ++ ECHRNG = syscall.Errno(0x2c) ++ ECOMM = syscall.Errno(0x46) ++ ECONNABORTED = syscall.Errno(0x67) ++ ECONNREFUSED = syscall.Errno(0x6f) ++ ECONNRESET = syscall.Errno(0x68) ++ EDEADLK = syscall.Errno(0x23) ++ EDEADLOCK = syscall.Errno(0x3a) ++ EDESTADDRREQ = syscall.Errno(0x59) ++ EDOM = syscall.Errno(0x21) ++ EDOTDOT = syscall.Errno(0x49) ++ EDQUOT = syscall.Errno(0x7a) ++ EEXIST = syscall.Errno(0x11) ++ EFAULT = syscall.Errno(0xe) ++ EFBIG = syscall.Errno(0x1b) ++ EHOSTDOWN = syscall.Errno(0x70) ++ EHOSTUNREACH = syscall.Errno(0x71) ++ EHWPOISON = syscall.Errno(0x85) ++ EIDRM = syscall.Errno(0x2b) ++ EILSEQ = syscall.Errno(0x54) ++ EINPROGRESS = syscall.Errno(0x73) ++ EINTR = syscall.Errno(0x4) ++ EINVAL = syscall.Errno(0x16) ++ EIO = syscall.Errno(0x5) ++ EISCONN = syscall.Errno(0x6a) ++ EISDIR = syscall.Errno(0x15) ++ EISNAM = syscall.Errno(0x78) ++ EKEYEXPIRED = syscall.Errno(0x7f) ++ EKEYREJECTED = syscall.Errno(0x81) ++ EKEYREVOKED = syscall.Errno(0x80) ++ EL2HLT = syscall.Errno(0x33) ++ EL2NSYNC = syscall.Errno(0x2d) ++ EL3HLT = syscall.Errno(0x2e) ++ EL3RST = syscall.Errno(0x2f) ++ ELIBACC = syscall.Errno(0x4f) ++ ELIBBAD = syscall.Errno(0x50) ++ ELIBEXEC = syscall.Errno(0x53) ++ ELIBMAX = syscall.Errno(0x52) ++ ELIBSCN = syscall.Errno(0x51) ++ ELNRNG = syscall.Errno(0x30) ++ ELOOP = syscall.Errno(0x28) ++ EMEDIUMTYPE = syscall.Errno(0x7c) ++ EMFILE = syscall.Errno(0x18) ++ EMLINK = syscall.Errno(0x1f) ++ EMSGSIZE = syscall.Errno(0x5a) ++ EMULTIHOP = syscall.Errno(0x48) ++ ENAMETOOLONG = syscall.Errno(0x24) ++ ENAVAIL = syscall.Errno(0x77) ++ ENETDOWN = syscall.Errno(0x64) ++ ENETRESET = syscall.Errno(0x66) ++ ENETUNREACH = syscall.Errno(0x65) ++ ENFILE = syscall.Errno(0x17) ++ ENOANO = syscall.Errno(0x37) ++ ENOBUFS = syscall.Errno(0x69) ++ ENOCSI = syscall.Errno(0x32) ++ ENODATA = syscall.Errno(0x3d) ++ ENODEV = syscall.Errno(0x13) ++ ENOENT = syscall.Errno(0x2) ++ ENOEXEC = syscall.Errno(0x8) ++ ENOKEY = syscall.Errno(0x7e) ++ ENOLCK = syscall.Errno(0x25) ++ ENOLINK = syscall.Errno(0x43) ++ ENOMEDIUM = syscall.Errno(0x7b) ++ ENOMEM = syscall.Errno(0xc) ++ ENOMSG = syscall.Errno(0x2a) ++ ENONET = syscall.Errno(0x40) ++ ENOPKG = syscall.Errno(0x41) ++ ENOPROTOOPT = syscall.Errno(0x5c) ++ ENOSPC = syscall.Errno(0x1c) ++ ENOSR = syscall.Errno(0x3f) ++ ENOSTR = syscall.Errno(0x3c) ++ ENOSYS = syscall.Errno(0x26) ++ ENOTBLK = syscall.Errno(0xf) ++ ENOTCONN = syscall.Errno(0x6b) ++ ENOTDIR = syscall.Errno(0x14) ++ ENOTEMPTY = syscall.Errno(0x27) ++ ENOTNAM = syscall.Errno(0x76) ++ ENOTRECOVERABLE = syscall.Errno(0x83) ++ ENOTSOCK = syscall.Errno(0x58) ++ ENOTSUP = syscall.Errno(0x5f) ++ ENOTTY = syscall.Errno(0x19) ++ ENOTUNIQ = syscall.Errno(0x4c) ++ ENXIO = syscall.Errno(0x6) ++ EOPNOTSUPP = syscall.Errno(0x5f) ++ EOVERFLOW = syscall.Errno(0x4b) ++ EOWNERDEAD = syscall.Errno(0x82) ++ EPERM = syscall.Errno(0x1) ++ EPFNOSUPPORT = syscall.Errno(0x60) ++ EPIPE = syscall.Errno(0x20) ++ EPROTO = syscall.Errno(0x47) ++ EPROTONOSUPPORT = syscall.Errno(0x5d) ++ EPROTOTYPE = syscall.Errno(0x5b) ++ ERANGE = syscall.Errno(0x22) ++ EREMCHG = syscall.Errno(0x4e) ++ EREMOTE = syscall.Errno(0x42) ++ EREMOTEIO = syscall.Errno(0x79) ++ ERESTART = syscall.Errno(0x55) ++ ERFKILL = syscall.Errno(0x84) ++ EROFS = syscall.Errno(0x1e) ++ ESHUTDOWN = syscall.Errno(0x6c) ++ ESOCKTNOSUPPORT = syscall.Errno(0x5e) ++ ESPIPE = syscall.Errno(0x1d) ++ ESRCH = syscall.Errno(0x3) ++ ESRMNT = syscall.Errno(0x45) ++ ESTALE = syscall.Errno(0x74) ++ ESTRPIPE = syscall.Errno(0x56) ++ ETIME = syscall.Errno(0x3e) ++ ETIMEDOUT = syscall.Errno(0x6e) ++ ETOOMANYREFS = syscall.Errno(0x6d) ++ ETXTBSY = syscall.Errno(0x1a) ++ EUCLEAN = syscall.Errno(0x75) ++ EUNATCH = syscall.Errno(0x31) ++ EUSERS = syscall.Errno(0x57) ++ EWOULDBLOCK = syscall.Errno(0xb) ++ EXDEV = syscall.Errno(0x12) ++ EXFULL = syscall.Errno(0x36) ++) ++ ++// Signals ++const ( ++ SIGABRT = syscall.Signal(0x6) ++ SIGALRM = syscall.Signal(0xe) ++ SIGBUS = syscall.Signal(0x7) ++ SIGCHLD = syscall.Signal(0x11) ++ SIGCLD = syscall.Signal(0x11) ++ SIGCONT = syscall.Signal(0x12) ++ SIGFPE = syscall.Signal(0x8) ++ SIGHUP = syscall.Signal(0x1) ++ SIGILL = syscall.Signal(0x4) ++ SIGINT = syscall.Signal(0x2) ++ SIGIO = syscall.Signal(0x1d) ++ SIGIOT = syscall.Signal(0x6) ++ SIGKILL = syscall.Signal(0x9) ++ SIGPIPE = syscall.Signal(0xd) ++ SIGPOLL = syscall.Signal(0x1d) ++ SIGPROF = syscall.Signal(0x1b) ++ SIGPWR = syscall.Signal(0x1e) ++ SIGQUIT = syscall.Signal(0x3) ++ SIGSEGV = syscall.Signal(0xb) ++ SIGSTKFLT = syscall.Signal(0x10) ++ SIGSTOP = syscall.Signal(0x13) ++ SIGSYS = syscall.Signal(0x1f) ++ SIGTERM = syscall.Signal(0xf) ++ SIGTRAP = syscall.Signal(0x5) ++ SIGTSTP = syscall.Signal(0x14) ++ SIGTTIN = syscall.Signal(0x15) ++ SIGTTOU = syscall.Signal(0x16) ++ SIGUNUSED = syscall.Signal(0x1f) ++ SIGURG = syscall.Signal(0x17) ++ SIGUSR1 = syscall.Signal(0xa) ++ SIGUSR2 = syscall.Signal(0xc) ++ SIGVTALRM = syscall.Signal(0x1a) ++ SIGWINCH = syscall.Signal(0x1c) ++ SIGXCPU = syscall.Signal(0x18) ++ SIGXFSZ = syscall.Signal(0x19) ++) ++ ++// Error table ++var errors = [...]string{ ++ 1: "operation not permitted", ++ 2: "no such file or directory", ++ 3: "no such process", ++ 4: "interrupted system call", ++ 5: "input/output error", ++ 6: "no such device or address", ++ 7: "argument list too long", ++ 8: "exec format error", ++ 9: "bad file descriptor", ++ 10: "no child processes", ++ 11: "resource temporarily unavailable", ++ 12: "cannot allocate memory", ++ 13: "permission denied", ++ 14: "bad address", ++ 15: "block device required", ++ 16: "device or resource busy", ++ 17: "file exists", ++ 18: "invalid cross-device link", ++ 19: "no such device", ++ 20: "not a directory", ++ 21: "is a directory", ++ 22: "invalid argument", ++ 23: "too many open files in system", ++ 24: "too many open files", ++ 25: "inappropriate ioctl for device", ++ 26: "text file busy", ++ 27: "file too large", ++ 28: "no space left on device", ++ 29: "illegal seek", ++ 30: "read-only file system", ++ 31: "too many links", ++ 32: "broken pipe", ++ 33: "numerical argument out of domain", ++ 34: "numerical result out of range", ++ 35: "resource deadlock avoided", ++ 36: "file name too long", ++ 37: "no locks available", ++ 38: "function not implemented", ++ 39: "directory not empty", ++ 40: "too many levels of symbolic links", ++ 42: "no message of desired type", ++ 43: "identifier removed", ++ 44: "channel number out of range", ++ 45: "level 2 not synchronized", ++ 46: "level 3 halted", ++ 47: "level 3 reset", ++ 48: "link number out of range", ++ 49: "protocol driver not attached", ++ 50: "no CSI structure available", ++ 51: "level 2 halted", ++ 52: "invalid exchange", ++ 53: "invalid request descriptor", ++ 54: "exchange full", ++ 55: "no anode", ++ 56: "invalid request code", ++ 57: "invalid slot", ++ 58: "file locking deadlock error", ++ 59: "bad font file format", ++ 60: "device not a stream", ++ 61: "no data available", ++ 62: "timer expired", ++ 63: "out of streams resources", ++ 64: "machine is not on the network", ++ 65: "package not installed", ++ 66: "object is remote", ++ 67: "link has been severed", ++ 68: "advertise error", ++ 69: "srmount error", ++ 70: "communication error on send", ++ 71: "protocol error", ++ 72: "multihop attempted", ++ 73: "RFS specific error", ++ 74: "bad message", ++ 75: "value too large for defined data type", ++ 76: "name not unique on network", ++ 77: "file descriptor in bad state", ++ 78: "remote address changed", ++ 79: "can not access a needed shared library", ++ 80: "accessing a corrupted shared library", ++ 81: ".lib section in a.out corrupted", ++ 82: "attempting to link in too many shared libraries", ++ 83: "cannot exec a shared library directly", ++ 84: "invalid or incomplete multibyte or wide character", ++ 85: "interrupted system call should be restarted", ++ 86: "streams pipe error", ++ 87: "too many users", ++ 88: "socket operation on non-socket", ++ 89: "destination address required", ++ 90: "message too long", ++ 91: "protocol wrong type for socket", ++ 92: "protocol not available", ++ 93: "protocol not supported", ++ 94: "socket type not supported", ++ 95: "operation not supported", ++ 96: "protocol family not supported", ++ 97: "address family not supported by protocol", ++ 98: "address already in use", ++ 99: "cannot assign requested address", ++ 100: "network is down", ++ 101: "network is unreachable", ++ 102: "network dropped connection on reset", ++ 103: "software caused connection abort", ++ 104: "connection reset by peer", ++ 105: "no buffer space available", ++ 106: "transport endpoint is already connected", ++ 107: "transport endpoint is not connected", ++ 108: "cannot send after transport endpoint shutdown", ++ 109: "too many references: cannot splice", ++ 110: "connection timed out", ++ 111: "connection refused", ++ 112: "host is down", ++ 113: "no route to host", ++ 114: "operation already in progress", ++ 115: "operation now in progress", ++ 116: "stale file handle", ++ 117: "structure needs cleaning", ++ 118: "not a XENIX named type file", ++ 119: "no XENIX semaphores available", ++ 120: "is a named type file", ++ 121: "remote I/O error", ++ 122: "disk quota exceeded", ++ 123: "no medium found", ++ 124: "wrong medium type", ++ 125: "operation canceled", ++ 126: "required key not available", ++ 127: "key has expired", ++ 128: "key has been revoked", ++ 129: "key was rejected by service", ++ 130: "owner died", ++ 131: "state not recoverable", ++ 132: "operation not possible due to RF-kill", ++ 133: "memory page has hardware error", ++} ++ ++// Signal table ++var signals = [...]string{ ++ 1: "hangup", ++ 2: "interrupt", ++ 3: "quit", ++ 4: "illegal instruction", ++ 5: "trace/breakpoint trap", ++ 6: "aborted", ++ 7: "bus error", ++ 8: "floating point exception", ++ 9: "killed", ++ 10: "user defined signal 1", ++ 11: "segmentation fault", ++ 12: "user defined signal 2", ++ 13: "broken pipe", ++ 14: "alarm clock", ++ 15: "terminated", ++ 16: "stack fault", ++ 17: "child exited", ++ 18: "continued", ++ 19: "stopped (signal)", ++ 20: "stopped", ++ 21: "stopped (tty input)", ++ 22: "stopped (tty output)", ++ 23: "urgent I/O condition", ++ 24: "CPU time limit exceeded", ++ 25: "file size limit exceeded", ++ 26: "virtual timer expired", ++ 27: "profiling timer expired", ++ 28: "window changed", ++ 29: "I/O possible", ++ 30: "power failure", ++ 31: "bad system call", ++} +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +new file mode 100644 +index 0000000..81ad7a8 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +@@ -0,0 +1,2093 @@ ++// mkerrors.sh -m64 ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build s390x,linux ++ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- -m64 _const.go ++ ++package unix ++ ++import "syscall" ++ ++const ( ++ AF_ALG = 0x26 ++ AF_APPLETALK = 0x5 ++ AF_ASH = 0x12 ++ AF_ATMPVC = 0x8 ++ AF_ATMSVC = 0x14 ++ AF_AX25 = 0x3 ++ AF_BLUETOOTH = 0x1f ++ AF_BRIDGE = 0x7 ++ AF_CAIF = 0x25 ++ AF_CAN = 0x1d ++ AF_DECnet = 0xc ++ AF_ECONET = 0x13 ++ AF_FILE = 0x1 ++ AF_IB = 0x1b ++ AF_IEEE802154 = 0x24 ++ AF_INET = 0x2 ++ AF_INET6 = 0xa ++ AF_IPX = 0x4 ++ AF_IRDA = 0x17 ++ AF_ISDN = 0x22 ++ AF_IUCV = 0x20 ++ AF_KEY = 0xf ++ AF_LLC = 0x1a ++ AF_LOCAL = 0x1 ++ AF_MAX = 0x29 ++ AF_MPLS = 0x1c ++ AF_NETBEUI = 0xd ++ AF_NETLINK = 0x10 ++ AF_NETROM = 0x6 ++ AF_NFC = 0x27 ++ AF_PACKET = 0x11 ++ AF_PHONET = 0x23 ++ AF_PPPOX = 0x18 ++ AF_RDS = 0x15 ++ AF_ROSE = 0xb ++ AF_ROUTE = 0x10 ++ AF_RXRPC = 0x21 ++ AF_SECURITY = 0xe ++ AF_SNA = 0x16 ++ AF_TIPC = 0x1e ++ AF_UNIX = 0x1 ++ AF_UNSPEC = 0x0 ++ AF_VSOCK = 0x28 ++ AF_WANPIPE = 0x19 ++ AF_X25 = 0x9 ++ ALG_OP_DECRYPT = 0x0 ++ ALG_OP_ENCRYPT = 0x1 ++ ALG_SET_AEAD_ASSOCLEN = 0x4 ++ ALG_SET_AEAD_AUTHSIZE = 0x5 ++ ALG_SET_IV = 0x2 ++ ALG_SET_KEY = 0x1 ++ ALG_SET_OP = 0x3 ++ ARPHRD_6LOWPAN = 0x339 ++ ARPHRD_ADAPT = 0x108 ++ ARPHRD_APPLETLK = 0x8 ++ ARPHRD_ARCNET = 0x7 ++ ARPHRD_ASH = 0x30d ++ ARPHRD_ATM = 0x13 ++ ARPHRD_AX25 = 0x3 ++ ARPHRD_BIF = 0x307 ++ ARPHRD_CAIF = 0x336 ++ ARPHRD_CAN = 0x118 ++ ARPHRD_CHAOS = 0x5 ++ ARPHRD_CISCO = 0x201 ++ ARPHRD_CSLIP = 0x101 ++ ARPHRD_CSLIP6 = 0x103 ++ ARPHRD_DDCMP = 0x205 ++ ARPHRD_DLCI = 0xf ++ ARPHRD_ECONET = 0x30e ++ ARPHRD_EETHER = 0x2 ++ ARPHRD_ETHER = 0x1 ++ ARPHRD_EUI64 = 0x1b ++ ARPHRD_FCAL = 0x311 ++ ARPHRD_FCFABRIC = 0x313 ++ ARPHRD_FCPL = 0x312 ++ ARPHRD_FCPP = 0x310 ++ ARPHRD_FDDI = 0x306 ++ ARPHRD_FRAD = 0x302 ++ ARPHRD_HDLC = 0x201 ++ ARPHRD_HIPPI = 0x30c ++ ARPHRD_HWX25 = 0x110 ++ ARPHRD_IEEE1394 = 0x18 ++ ARPHRD_IEEE802 = 0x6 ++ ARPHRD_IEEE80211 = 0x321 ++ ARPHRD_IEEE80211_PRISM = 0x322 ++ ARPHRD_IEEE80211_RADIOTAP = 0x323 ++ ARPHRD_IEEE802154 = 0x324 ++ ARPHRD_IEEE802154_MONITOR = 0x325 ++ ARPHRD_IEEE802_TR = 0x320 ++ ARPHRD_INFINIBAND = 0x20 ++ ARPHRD_IP6GRE = 0x337 ++ ARPHRD_IPDDP = 0x309 ++ ARPHRD_IPGRE = 0x30a ++ ARPHRD_IRDA = 0x30f ++ ARPHRD_LAPB = 0x204 ++ ARPHRD_LOCALTLK = 0x305 ++ ARPHRD_LOOPBACK = 0x304 ++ ARPHRD_METRICOM = 0x17 ++ ARPHRD_NETLINK = 0x338 ++ ARPHRD_NETROM = 0x0 ++ ARPHRD_NONE = 0xfffe ++ ARPHRD_PHONET = 0x334 ++ ARPHRD_PHONET_PIPE = 0x335 ++ ARPHRD_PIMREG = 0x30b ++ ARPHRD_PPP = 0x200 ++ ARPHRD_PRONET = 0x4 ++ ARPHRD_RAWHDLC = 0x206 ++ ARPHRD_ROSE = 0x10e ++ ARPHRD_RSRVD = 0x104 ++ ARPHRD_SIT = 0x308 ++ ARPHRD_SKIP = 0x303 ++ ARPHRD_SLIP = 0x100 ++ ARPHRD_SLIP6 = 0x102 ++ ARPHRD_TUNNEL = 0x300 ++ ARPHRD_TUNNEL6 = 0x301 ++ ARPHRD_VOID = 0xffff ++ ARPHRD_X25 = 0x10f ++ B0 = 0x0 ++ B1000000 = 0x1008 ++ B110 = 0x3 ++ B115200 = 0x1002 ++ B1152000 = 0x1009 ++ B1200 = 0x9 ++ B134 = 0x4 ++ B150 = 0x5 ++ B1500000 = 0x100a ++ B1800 = 0xa ++ B19200 = 0xe ++ B200 = 0x6 ++ B2000000 = 0x100b ++ B230400 = 0x1003 ++ B2400 = 0xb ++ B2500000 = 0x100c ++ B300 = 0x7 ++ B3000000 = 0x100d ++ B3500000 = 0x100e ++ B38400 = 0xf ++ B4000000 = 0x100f ++ B460800 = 0x1004 ++ B4800 = 0xc ++ B50 = 0x1 ++ B500000 = 0x1005 ++ B57600 = 0x1001 ++ B576000 = 0x1006 ++ B600 = 0x8 ++ B75 = 0x2 ++ B921600 = 0x1007 ++ B9600 = 0xd ++ BLKBSZGET = 0x80081270 ++ BLKBSZSET = 0x40081271 ++ BLKFLSBUF = 0x1261 ++ BLKFRAGET = 0x1265 ++ BLKFRASET = 0x1264 ++ BLKGETSIZE = 0x1260 ++ BLKGETSIZE64 = 0x80081272 ++ BLKRAGET = 0x1263 ++ BLKRASET = 0x1262 ++ BLKROGET = 0x125e ++ BLKROSET = 0x125d ++ BLKRRPART = 0x125f ++ BLKSECTGET = 0x1267 ++ BLKSECTSET = 0x1266 ++ BLKSSZGET = 0x1268 ++ BOTHER = 0x1000 ++ BPF_A = 0x10 ++ BPF_ABS = 0x20 ++ BPF_ADD = 0x0 ++ BPF_ALU = 0x4 ++ BPF_AND = 0x50 ++ BPF_B = 0x10 ++ BPF_DIV = 0x30 ++ BPF_H = 0x8 ++ BPF_IMM = 0x0 ++ BPF_IND = 0x40 ++ BPF_JA = 0x0 ++ BPF_JEQ = 0x10 ++ BPF_JGE = 0x30 ++ BPF_JGT = 0x20 ++ BPF_JMP = 0x5 ++ BPF_JSET = 0x40 ++ BPF_K = 0x0 ++ BPF_LD = 0x0 ++ BPF_LDX = 0x1 ++ BPF_LEN = 0x80 ++ BPF_LL_OFF = -0x200000 ++ BPF_LSH = 0x60 ++ BPF_MAJOR_VERSION = 0x1 ++ BPF_MAXINSNS = 0x1000 ++ BPF_MEM = 0x60 ++ BPF_MEMWORDS = 0x10 ++ BPF_MINOR_VERSION = 0x1 ++ BPF_MISC = 0x7 ++ BPF_MOD = 0x90 ++ BPF_MSH = 0xa0 ++ BPF_MUL = 0x20 ++ BPF_NEG = 0x80 ++ BPF_NET_OFF = -0x100000 ++ BPF_OR = 0x40 ++ BPF_RET = 0x6 ++ BPF_RSH = 0x70 ++ BPF_ST = 0x2 ++ BPF_STX = 0x3 ++ BPF_SUB = 0x10 ++ BPF_TAX = 0x0 ++ BPF_TXA = 0x80 ++ BPF_W = 0x0 ++ BPF_X = 0x8 ++ BPF_XOR = 0xa0 ++ BRKINT = 0x2 ++ BS0 = 0x0 ++ BS1 = 0x2000 ++ BSDLY = 0x2000 ++ CAN_BCM = 0x2 ++ CAN_EFF_FLAG = 0x80000000 ++ CAN_EFF_ID_BITS = 0x1d ++ CAN_EFF_MASK = 0x1fffffff ++ CAN_ERR_FLAG = 0x20000000 ++ CAN_ERR_MASK = 0x1fffffff ++ CAN_INV_FILTER = 0x20000000 ++ CAN_ISOTP = 0x6 ++ CAN_MAX_DLC = 0x8 ++ CAN_MAX_DLEN = 0x8 ++ CAN_MCNET = 0x5 ++ CAN_MTU = 0x10 ++ CAN_NPROTO = 0x7 ++ CAN_RAW = 0x1 ++ CAN_RTR_FLAG = 0x40000000 ++ CAN_SFF_ID_BITS = 0xb ++ CAN_SFF_MASK = 0x7ff ++ CAN_TP16 = 0x3 ++ CAN_TP20 = 0x4 ++ CBAUD = 0x100f ++ CBAUDEX = 0x1000 ++ CFLUSH = 0xf ++ CIBAUD = 0x100f0000 ++ CLOCAL = 0x800 ++ CLOCK_BOOTTIME = 0x7 ++ CLOCK_BOOTTIME_ALARM = 0x9 ++ CLOCK_DEFAULT = 0x0 ++ CLOCK_EXT = 0x1 ++ CLOCK_INT = 0x2 ++ CLOCK_MONOTONIC = 0x1 ++ CLOCK_MONOTONIC_COARSE = 0x6 ++ CLOCK_MONOTONIC_RAW = 0x4 ++ CLOCK_PROCESS_CPUTIME_ID = 0x2 ++ CLOCK_REALTIME = 0x0 ++ CLOCK_REALTIME_ALARM = 0x8 ++ CLOCK_REALTIME_COARSE = 0x5 ++ CLOCK_TAI = 0xb ++ CLOCK_THREAD_CPUTIME_ID = 0x3 ++ CLOCK_TXFROMRX = 0x4 ++ CLOCK_TXINT = 0x3 ++ CLONE_CHILD_CLEARTID = 0x200000 ++ CLONE_CHILD_SETTID = 0x1000000 ++ CLONE_DETACHED = 0x400000 ++ CLONE_FILES = 0x400 ++ CLONE_FS = 0x200 ++ CLONE_IO = 0x80000000 ++ CLONE_NEWCGROUP = 0x2000000 ++ CLONE_NEWIPC = 0x8000000 ++ CLONE_NEWNET = 0x40000000 ++ CLONE_NEWNS = 0x20000 ++ CLONE_NEWPID = 0x20000000 ++ CLONE_NEWUSER = 0x10000000 ++ CLONE_NEWUTS = 0x4000000 ++ CLONE_PARENT = 0x8000 ++ CLONE_PARENT_SETTID = 0x100000 ++ CLONE_PTRACE = 0x2000 ++ CLONE_SETTLS = 0x80000 ++ CLONE_SIGHAND = 0x800 ++ CLONE_SYSVSEM = 0x40000 ++ CLONE_THREAD = 0x10000 ++ CLONE_UNTRACED = 0x800000 ++ CLONE_VFORK = 0x4000 ++ CLONE_VM = 0x100 ++ CMSPAR = 0x40000000 ++ CR0 = 0x0 ++ CR1 = 0x200 ++ CR2 = 0x400 ++ CR3 = 0x600 ++ CRDLY = 0x600 ++ CREAD = 0x80 ++ CRTSCTS = 0x80000000 ++ CS5 = 0x0 ++ CS6 = 0x10 ++ CS7 = 0x20 ++ CS8 = 0x30 ++ CSIGNAL = 0xff ++ CSIZE = 0x30 ++ CSTART = 0x11 ++ CSTATUS = 0x0 ++ CSTOP = 0x13 ++ CSTOPB = 0x40 ++ CSUSP = 0x1a ++ DT_BLK = 0x6 ++ DT_CHR = 0x2 ++ DT_DIR = 0x4 ++ DT_FIFO = 0x1 ++ DT_LNK = 0xa ++ DT_REG = 0x8 ++ DT_SOCK = 0xc ++ DT_UNKNOWN = 0x0 ++ DT_WHT = 0xe ++ ECHO = 0x8 ++ ECHOCTL = 0x200 ++ ECHOE = 0x10 ++ ECHOK = 0x20 ++ ECHOKE = 0x800 ++ ECHONL = 0x40 ++ ECHOPRT = 0x400 ++ ENCODING_DEFAULT = 0x0 ++ ENCODING_FM_MARK = 0x3 ++ ENCODING_FM_SPACE = 0x4 ++ ENCODING_MANCHESTER = 0x5 ++ ENCODING_NRZ = 0x1 ++ ENCODING_NRZI = 0x2 ++ EPOLLERR = 0x8 ++ EPOLLET = 0x80000000 ++ EPOLLHUP = 0x10 ++ EPOLLIN = 0x1 ++ EPOLLMSG = 0x400 ++ EPOLLONESHOT = 0x40000000 ++ EPOLLOUT = 0x4 ++ EPOLLPRI = 0x2 ++ EPOLLRDBAND = 0x80 ++ EPOLLRDHUP = 0x2000 ++ EPOLLRDNORM = 0x40 ++ EPOLLWAKEUP = 0x20000000 ++ EPOLLWRBAND = 0x200 ++ EPOLLWRNORM = 0x100 ++ EPOLL_CLOEXEC = 0x80000 ++ EPOLL_CTL_ADD = 0x1 ++ EPOLL_CTL_DEL = 0x2 ++ EPOLL_CTL_MOD = 0x3 ++ ETH_P_1588 = 0x88f7 ++ ETH_P_8021AD = 0x88a8 ++ ETH_P_8021AH = 0x88e7 ++ ETH_P_8021Q = 0x8100 ++ ETH_P_80221 = 0x8917 ++ ETH_P_802_2 = 0x4 ++ ETH_P_802_3 = 0x1 ++ ETH_P_802_3_MIN = 0x600 ++ ETH_P_802_EX1 = 0x88b5 ++ ETH_P_AARP = 0x80f3 ++ ETH_P_AF_IUCV = 0xfbfb ++ ETH_P_ALL = 0x3 ++ ETH_P_AOE = 0x88a2 ++ ETH_P_ARCNET = 0x1a ++ ETH_P_ARP = 0x806 ++ ETH_P_ATALK = 0x809b ++ ETH_P_ATMFATE = 0x8884 ++ ETH_P_ATMMPOA = 0x884c ++ ETH_P_AX25 = 0x2 ++ ETH_P_BATMAN = 0x4305 ++ ETH_P_BPQ = 0x8ff ++ ETH_P_CAIF = 0xf7 ++ ETH_P_CAN = 0xc ++ ETH_P_CANFD = 0xd ++ ETH_P_CONTROL = 0x16 ++ ETH_P_CUST = 0x6006 ++ ETH_P_DDCMP = 0x6 ++ ETH_P_DEC = 0x6000 ++ ETH_P_DIAG = 0x6005 ++ ETH_P_DNA_DL = 0x6001 ++ ETH_P_DNA_RC = 0x6002 ++ ETH_P_DNA_RT = 0x6003 ++ ETH_P_DSA = 0x1b ++ ETH_P_ECONET = 0x18 ++ ETH_P_EDSA = 0xdada ++ ETH_P_FCOE = 0x8906 ++ ETH_P_FIP = 0x8914 ++ ETH_P_HDLC = 0x19 ++ ETH_P_IEEE802154 = 0xf6 ++ ETH_P_IEEEPUP = 0xa00 ++ ETH_P_IEEEPUPAT = 0xa01 ++ ETH_P_IP = 0x800 ++ ETH_P_IPV6 = 0x86dd ++ ETH_P_IPX = 0x8137 ++ ETH_P_IRDA = 0x17 ++ ETH_P_LAT = 0x6004 ++ ETH_P_LINK_CTL = 0x886c ++ ETH_P_LOCALTALK = 0x9 ++ ETH_P_LOOP = 0x60 ++ ETH_P_LOOPBACK = 0x9000 ++ ETH_P_MOBITEX = 0x15 ++ ETH_P_MPLS_MC = 0x8848 ++ ETH_P_MPLS_UC = 0x8847 ++ ETH_P_MVRP = 0x88f5 ++ ETH_P_PAE = 0x888e ++ ETH_P_PAUSE = 0x8808 ++ ETH_P_PHONET = 0xf5 ++ ETH_P_PPPTALK = 0x10 ++ ETH_P_PPP_DISC = 0x8863 ++ ETH_P_PPP_MP = 0x8 ++ ETH_P_PPP_SES = 0x8864 ++ ETH_P_PRP = 0x88fb ++ ETH_P_PUP = 0x200 ++ ETH_P_PUPAT = 0x201 ++ ETH_P_QINQ1 = 0x9100 ++ ETH_P_QINQ2 = 0x9200 ++ ETH_P_QINQ3 = 0x9300 ++ ETH_P_RARP = 0x8035 ++ ETH_P_SCA = 0x6007 ++ ETH_P_SLOW = 0x8809 ++ ETH_P_SNAP = 0x5 ++ ETH_P_TDLS = 0x890d ++ ETH_P_TEB = 0x6558 ++ ETH_P_TIPC = 0x88ca ++ ETH_P_TRAILER = 0x1c ++ ETH_P_TR_802_2 = 0x11 ++ ETH_P_TSN = 0x22f0 ++ ETH_P_WAN_PPP = 0x7 ++ ETH_P_WCCP = 0x883e ++ ETH_P_X25 = 0x805 ++ ETH_P_XDSA = 0xf8 ++ EXTA = 0xe ++ EXTB = 0xf ++ EXTPROC = 0x10000 ++ FALLOC_FL_COLLAPSE_RANGE = 0x8 ++ FALLOC_FL_INSERT_RANGE = 0x20 ++ FALLOC_FL_KEEP_SIZE = 0x1 ++ FALLOC_FL_NO_HIDE_STALE = 0x4 ++ FALLOC_FL_PUNCH_HOLE = 0x2 ++ FALLOC_FL_ZERO_RANGE = 0x10 ++ FD_CLOEXEC = 0x1 ++ FD_SETSIZE = 0x400 ++ FF0 = 0x0 ++ FF1 = 0x8000 ++ FFDLY = 0x8000 ++ FLUSHO = 0x1000 ++ F_DUPFD = 0x0 ++ F_DUPFD_CLOEXEC = 0x406 ++ F_EXLCK = 0x4 ++ F_GETFD = 0x1 ++ F_GETFL = 0x3 ++ F_GETLEASE = 0x401 ++ F_GETLK = 0x5 ++ F_GETLK64 = 0x5 ++ F_GETOWN = 0x9 ++ F_GETOWN_EX = 0x10 ++ F_GETPIPE_SZ = 0x408 ++ F_GETSIG = 0xb ++ F_LOCK = 0x1 ++ F_NOTIFY = 0x402 ++ F_OFD_GETLK = 0x24 ++ F_OFD_SETLK = 0x25 ++ F_OFD_SETLKW = 0x26 ++ F_OK = 0x0 ++ F_RDLCK = 0x0 ++ F_SETFD = 0x2 ++ F_SETFL = 0x4 ++ F_SETLEASE = 0x400 ++ F_SETLK = 0x6 ++ F_SETLK64 = 0x6 ++ F_SETLKW = 0x7 ++ F_SETLKW64 = 0x7 ++ F_SETOWN = 0x8 ++ F_SETOWN_EX = 0xf ++ F_SETPIPE_SZ = 0x407 ++ F_SETSIG = 0xa ++ F_SHLCK = 0x8 ++ F_TEST = 0x3 ++ F_TLOCK = 0x2 ++ F_ULOCK = 0x0 ++ F_UNLCK = 0x2 ++ F_WRLCK = 0x1 ++ GRND_NONBLOCK = 0x1 ++ GRND_RANDOM = 0x2 ++ HUPCL = 0x400 ++ IBSHIFT = 0x10 ++ ICANON = 0x2 ++ ICMPV6_FILTER = 0x1 ++ ICRNL = 0x100 ++ IEXTEN = 0x8000 ++ IFA_F_DADFAILED = 0x8 ++ IFA_F_DEPRECATED = 0x20 ++ IFA_F_HOMEADDRESS = 0x10 ++ IFA_F_MANAGETEMPADDR = 0x100 ++ IFA_F_MCAUTOJOIN = 0x400 ++ IFA_F_NODAD = 0x2 ++ IFA_F_NOPREFIXROUTE = 0x200 ++ IFA_F_OPTIMISTIC = 0x4 ++ IFA_F_PERMANENT = 0x80 ++ IFA_F_SECONDARY = 0x1 ++ IFA_F_STABLE_PRIVACY = 0x800 ++ IFA_F_TEMPORARY = 0x1 ++ IFA_F_TENTATIVE = 0x40 ++ IFA_MAX = 0x8 ++ IFF_ALLMULTI = 0x200 ++ IFF_ATTACH_QUEUE = 0x200 ++ IFF_AUTOMEDIA = 0x4000 ++ IFF_BROADCAST = 0x2 ++ IFF_DEBUG = 0x4 ++ IFF_DETACH_QUEUE = 0x400 ++ IFF_DORMANT = 0x20000 ++ IFF_DYNAMIC = 0x8000 ++ IFF_ECHO = 0x40000 ++ IFF_LOOPBACK = 0x8 ++ IFF_LOWER_UP = 0x10000 ++ IFF_MASTER = 0x400 ++ IFF_MULTICAST = 0x1000 ++ IFF_MULTI_QUEUE = 0x100 ++ IFF_NOARP = 0x80 ++ IFF_NOFILTER = 0x1000 ++ IFF_NOTRAILERS = 0x20 ++ IFF_NO_PI = 0x1000 ++ IFF_ONE_QUEUE = 0x2000 ++ IFF_PERSIST = 0x800 ++ IFF_POINTOPOINT = 0x10 ++ IFF_PORTSEL = 0x2000 ++ IFF_PROMISC = 0x100 ++ IFF_RUNNING = 0x40 ++ IFF_SLAVE = 0x800 ++ IFF_TAP = 0x2 ++ IFF_TUN = 0x1 ++ IFF_TUN_EXCL = 0x8000 ++ IFF_UP = 0x1 ++ IFF_VNET_HDR = 0x4000 ++ IFF_VOLATILE = 0x70c5a ++ IFNAMSIZ = 0x10 ++ IGNBRK = 0x1 ++ IGNCR = 0x80 ++ IGNPAR = 0x4 ++ IMAXBEL = 0x2000 ++ INLCR = 0x40 ++ INPCK = 0x10 ++ IN_ACCESS = 0x1 ++ IN_ALL_EVENTS = 0xfff ++ IN_ATTRIB = 0x4 ++ IN_CLASSA_HOST = 0xffffff ++ IN_CLASSA_MAX = 0x80 ++ IN_CLASSA_NET = 0xff000000 ++ IN_CLASSA_NSHIFT = 0x18 ++ IN_CLASSB_HOST = 0xffff ++ IN_CLASSB_MAX = 0x10000 ++ IN_CLASSB_NET = 0xffff0000 ++ IN_CLASSB_NSHIFT = 0x10 ++ IN_CLASSC_HOST = 0xff ++ IN_CLASSC_NET = 0xffffff00 ++ IN_CLASSC_NSHIFT = 0x8 ++ IN_CLOEXEC = 0x80000 ++ IN_CLOSE = 0x18 ++ IN_CLOSE_NOWRITE = 0x10 ++ IN_CLOSE_WRITE = 0x8 ++ IN_CREATE = 0x100 ++ IN_DELETE = 0x200 ++ IN_DELETE_SELF = 0x400 ++ IN_DONT_FOLLOW = 0x2000000 ++ IN_EXCL_UNLINK = 0x4000000 ++ IN_IGNORED = 0x8000 ++ IN_ISDIR = 0x40000000 ++ IN_LOOPBACKNET = 0x7f ++ IN_MASK_ADD = 0x20000000 ++ IN_MODIFY = 0x2 ++ IN_MOVE = 0xc0 ++ IN_MOVED_FROM = 0x40 ++ IN_MOVED_TO = 0x80 ++ IN_MOVE_SELF = 0x800 ++ IN_NONBLOCK = 0x800 ++ IN_ONESHOT = 0x80000000 ++ IN_ONLYDIR = 0x1000000 ++ IN_OPEN = 0x20 ++ IN_Q_OVERFLOW = 0x4000 ++ IN_UNMOUNT = 0x2000 ++ IPPROTO_AH = 0x33 ++ IPPROTO_BEETPH = 0x5e ++ IPPROTO_COMP = 0x6c ++ IPPROTO_DCCP = 0x21 ++ IPPROTO_DSTOPTS = 0x3c ++ IPPROTO_EGP = 0x8 ++ IPPROTO_ENCAP = 0x62 ++ IPPROTO_ESP = 0x32 ++ IPPROTO_FRAGMENT = 0x2c ++ IPPROTO_GRE = 0x2f ++ IPPROTO_HOPOPTS = 0x0 ++ IPPROTO_ICMP = 0x1 ++ IPPROTO_ICMPV6 = 0x3a ++ IPPROTO_IDP = 0x16 ++ IPPROTO_IGMP = 0x2 ++ IPPROTO_IP = 0x0 ++ IPPROTO_IPIP = 0x4 ++ IPPROTO_IPV6 = 0x29 ++ IPPROTO_MH = 0x87 ++ IPPROTO_MPLS = 0x89 ++ IPPROTO_MTP = 0x5c ++ IPPROTO_NONE = 0x3b ++ IPPROTO_PIM = 0x67 ++ IPPROTO_PUP = 0xc ++ IPPROTO_RAW = 0xff ++ IPPROTO_ROUTING = 0x2b ++ IPPROTO_RSVP = 0x2e ++ IPPROTO_SCTP = 0x84 ++ IPPROTO_TCP = 0x6 ++ IPPROTO_TP = 0x1d ++ IPPROTO_UDP = 0x11 ++ IPPROTO_UDPLITE = 0x88 ++ IPV6_2292DSTOPTS = 0x4 ++ IPV6_2292HOPLIMIT = 0x8 ++ IPV6_2292HOPOPTS = 0x3 ++ IPV6_2292PKTINFO = 0x2 ++ IPV6_2292PKTOPTIONS = 0x6 ++ IPV6_2292RTHDR = 0x5 ++ IPV6_ADDRFORM = 0x1 ++ IPV6_ADD_MEMBERSHIP = 0x14 ++ IPV6_AUTHHDR = 0xa ++ IPV6_CHECKSUM = 0x7 ++ IPV6_DONTFRAG = 0x3e ++ IPV6_DROP_MEMBERSHIP = 0x15 ++ IPV6_DSTOPTS = 0x3b ++ IPV6_HOPLIMIT = 0x34 ++ IPV6_HOPOPTS = 0x36 ++ IPV6_IPSEC_POLICY = 0x22 ++ IPV6_JOIN_ANYCAST = 0x1b ++ IPV6_JOIN_GROUP = 0x14 ++ IPV6_LEAVE_ANYCAST = 0x1c ++ IPV6_LEAVE_GROUP = 0x15 ++ IPV6_MTU = 0x18 ++ IPV6_MTU_DISCOVER = 0x17 ++ IPV6_MULTICAST_HOPS = 0x12 ++ IPV6_MULTICAST_IF = 0x11 ++ IPV6_MULTICAST_LOOP = 0x13 ++ IPV6_NEXTHOP = 0x9 ++ IPV6_PATHMTU = 0x3d ++ IPV6_PKTINFO = 0x32 ++ IPV6_PMTUDISC_DO = 0x2 ++ IPV6_PMTUDISC_DONT = 0x0 ++ IPV6_PMTUDISC_INTERFACE = 0x4 ++ IPV6_PMTUDISC_OMIT = 0x5 ++ IPV6_PMTUDISC_PROBE = 0x3 ++ IPV6_PMTUDISC_WANT = 0x1 ++ IPV6_RECVDSTOPTS = 0x3a ++ IPV6_RECVERR = 0x19 ++ IPV6_RECVHOPLIMIT = 0x33 ++ IPV6_RECVHOPOPTS = 0x35 ++ IPV6_RECVPATHMTU = 0x3c ++ IPV6_RECVPKTINFO = 0x31 ++ IPV6_RECVRTHDR = 0x38 ++ IPV6_RECVTCLASS = 0x42 ++ IPV6_ROUTER_ALERT = 0x16 ++ IPV6_RTHDR = 0x39 ++ IPV6_RTHDRDSTOPTS = 0x37 ++ IPV6_RTHDR_LOOSE = 0x0 ++ IPV6_RTHDR_STRICT = 0x1 ++ IPV6_RTHDR_TYPE_0 = 0x0 ++ IPV6_RXDSTOPTS = 0x3b ++ IPV6_RXHOPOPTS = 0x36 ++ IPV6_TCLASS = 0x43 ++ IPV6_UNICAST_HOPS = 0x10 ++ IPV6_V6ONLY = 0x1a ++ IPV6_XFRM_POLICY = 0x23 ++ IP_ADD_MEMBERSHIP = 0x23 ++ IP_ADD_SOURCE_MEMBERSHIP = 0x27 ++ IP_BIND_ADDRESS_NO_PORT = 0x18 ++ IP_BLOCK_SOURCE = 0x26 ++ IP_CHECKSUM = 0x17 ++ IP_DEFAULT_MULTICAST_LOOP = 0x1 ++ IP_DEFAULT_MULTICAST_TTL = 0x1 ++ IP_DF = 0x4000 ++ IP_DROP_MEMBERSHIP = 0x24 ++ IP_DROP_SOURCE_MEMBERSHIP = 0x28 ++ IP_FREEBIND = 0xf ++ IP_HDRINCL = 0x3 ++ IP_IPSEC_POLICY = 0x10 ++ IP_MAXPACKET = 0xffff ++ IP_MAX_MEMBERSHIPS = 0x14 ++ IP_MF = 0x2000 ++ IP_MINTTL = 0x15 ++ IP_MSFILTER = 0x29 ++ IP_MSS = 0x240 ++ IP_MTU = 0xe ++ IP_MTU_DISCOVER = 0xa ++ IP_MULTICAST_ALL = 0x31 ++ IP_MULTICAST_IF = 0x20 ++ IP_MULTICAST_LOOP = 0x22 ++ IP_MULTICAST_TTL = 0x21 ++ IP_NODEFRAG = 0x16 ++ IP_OFFMASK = 0x1fff ++ IP_OPTIONS = 0x4 ++ IP_ORIGDSTADDR = 0x14 ++ IP_PASSSEC = 0x12 ++ IP_PKTINFO = 0x8 ++ IP_PKTOPTIONS = 0x9 ++ IP_PMTUDISC = 0xa ++ IP_PMTUDISC_DO = 0x2 ++ IP_PMTUDISC_DONT = 0x0 ++ IP_PMTUDISC_INTERFACE = 0x4 ++ IP_PMTUDISC_OMIT = 0x5 ++ IP_PMTUDISC_PROBE = 0x3 ++ IP_PMTUDISC_WANT = 0x1 ++ IP_RECVERR = 0xb ++ IP_RECVOPTS = 0x6 ++ IP_RECVORIGDSTADDR = 0x14 ++ IP_RECVRETOPTS = 0x7 ++ IP_RECVTOS = 0xd ++ IP_RECVTTL = 0xc ++ IP_RETOPTS = 0x7 ++ IP_RF = 0x8000 ++ IP_ROUTER_ALERT = 0x5 ++ IP_TOS = 0x1 ++ IP_TRANSPARENT = 0x13 ++ IP_TTL = 0x2 ++ IP_UNBLOCK_SOURCE = 0x25 ++ IP_UNICAST_IF = 0x32 ++ IP_XFRM_POLICY = 0x11 ++ ISIG = 0x1 ++ ISTRIP = 0x20 ++ IUCLC = 0x200 ++ IUTF8 = 0x4000 ++ IXANY = 0x800 ++ IXOFF = 0x1000 ++ IXON = 0x400 ++ LINUX_REBOOT_CMD_CAD_OFF = 0x0 ++ LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef ++ LINUX_REBOOT_CMD_HALT = 0xcdef0123 ++ LINUX_REBOOT_CMD_KEXEC = 0x45584543 ++ LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc ++ LINUX_REBOOT_CMD_RESTART = 0x1234567 ++ LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 ++ LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 ++ LINUX_REBOOT_MAGIC1 = 0xfee1dead ++ LINUX_REBOOT_MAGIC2 = 0x28121969 ++ LOCK_EX = 0x2 ++ LOCK_NB = 0x4 ++ LOCK_SH = 0x1 ++ LOCK_UN = 0x8 ++ MADV_DODUMP = 0x11 ++ MADV_DOFORK = 0xb ++ MADV_DONTDUMP = 0x10 ++ MADV_DONTFORK = 0xa ++ MADV_DONTNEED = 0x4 ++ MADV_HUGEPAGE = 0xe ++ MADV_HWPOISON = 0x64 ++ MADV_MERGEABLE = 0xc ++ MADV_NOHUGEPAGE = 0xf ++ MADV_NORMAL = 0x0 ++ MADV_RANDOM = 0x1 ++ MADV_REMOVE = 0x9 ++ MADV_SEQUENTIAL = 0x2 ++ MADV_UNMERGEABLE = 0xd ++ MADV_WILLNEED = 0x3 ++ MAP_ANON = 0x20 ++ MAP_ANONYMOUS = 0x20 ++ MAP_DENYWRITE = 0x800 ++ MAP_EXECUTABLE = 0x1000 ++ MAP_FILE = 0x0 ++ MAP_FIXED = 0x10 ++ MAP_GROWSDOWN = 0x100 ++ MAP_HUGETLB = 0x40000 ++ MAP_HUGE_MASK = 0x3f ++ MAP_HUGE_SHIFT = 0x1a ++ MAP_LOCKED = 0x2000 ++ MAP_NONBLOCK = 0x10000 ++ MAP_NORESERVE = 0x4000 ++ MAP_POPULATE = 0x8000 ++ MAP_PRIVATE = 0x2 ++ MAP_SHARED = 0x1 ++ MAP_STACK = 0x20000 ++ MAP_TYPE = 0xf ++ MCL_CURRENT = 0x1 ++ MCL_FUTURE = 0x2 ++ MCL_ONFAULT = 0x4 ++ MNT_DETACH = 0x2 ++ MNT_EXPIRE = 0x4 ++ MNT_FORCE = 0x1 ++ MSG_CMSG_CLOEXEC = 0x40000000 ++ MSG_CONFIRM = 0x800 ++ MSG_CTRUNC = 0x8 ++ MSG_DONTROUTE = 0x4 ++ MSG_DONTWAIT = 0x40 ++ MSG_EOR = 0x80 ++ MSG_ERRQUEUE = 0x2000 ++ MSG_FASTOPEN = 0x20000000 ++ MSG_FIN = 0x200 ++ MSG_MORE = 0x8000 ++ MSG_NOSIGNAL = 0x4000 ++ MSG_OOB = 0x1 ++ MSG_PEEK = 0x2 ++ MSG_PROXY = 0x10 ++ MSG_RST = 0x1000 ++ MSG_SYN = 0x400 ++ MSG_TRUNC = 0x20 ++ MSG_TRYHARD = 0x4 ++ MSG_WAITALL = 0x100 ++ MSG_WAITFORONE = 0x10000 ++ MS_ACTIVE = 0x40000000 ++ MS_ASYNC = 0x1 ++ MS_BIND = 0x1000 ++ MS_DIRSYNC = 0x80 ++ MS_INVALIDATE = 0x2 ++ MS_I_VERSION = 0x800000 ++ MS_KERNMOUNT = 0x400000 ++ MS_LAZYTIME = 0x2000000 ++ MS_MANDLOCK = 0x40 ++ MS_MGC_MSK = 0xffff0000 ++ MS_MGC_VAL = 0xc0ed0000 ++ MS_MOVE = 0x2000 ++ MS_NOATIME = 0x400 ++ MS_NODEV = 0x4 ++ MS_NODIRATIME = 0x800 ++ MS_NOEXEC = 0x8 ++ MS_NOSUID = 0x2 ++ MS_NOUSER = -0x80000000 ++ MS_POSIXACL = 0x10000 ++ MS_PRIVATE = 0x40000 ++ MS_RDONLY = 0x1 ++ MS_REC = 0x4000 ++ MS_RELATIME = 0x200000 ++ MS_REMOUNT = 0x20 ++ MS_RMT_MASK = 0x2800051 ++ MS_SHARED = 0x100000 ++ MS_SILENT = 0x8000 ++ MS_SLAVE = 0x80000 ++ MS_STRICTATIME = 0x1000000 ++ MS_SYNC = 0x4 ++ MS_SYNCHRONOUS = 0x10 ++ MS_UNBINDABLE = 0x20000 ++ NAME_MAX = 0xff ++ NETLINK_ADD_MEMBERSHIP = 0x1 ++ NETLINK_AUDIT = 0x9 ++ NETLINK_BROADCAST_ERROR = 0x4 ++ NETLINK_CAP_ACK = 0xa ++ NETLINK_CONNECTOR = 0xb ++ NETLINK_CRYPTO = 0x15 ++ NETLINK_DNRTMSG = 0xe ++ NETLINK_DROP_MEMBERSHIP = 0x2 ++ NETLINK_ECRYPTFS = 0x13 ++ NETLINK_FIB_LOOKUP = 0xa ++ NETLINK_FIREWALL = 0x3 ++ NETLINK_GENERIC = 0x10 ++ NETLINK_INET_DIAG = 0x4 ++ NETLINK_IP6_FW = 0xd ++ NETLINK_ISCSI = 0x8 ++ NETLINK_KOBJECT_UEVENT = 0xf ++ NETLINK_LISTEN_ALL_NSID = 0x8 ++ NETLINK_LIST_MEMBERSHIPS = 0x9 ++ NETLINK_NETFILTER = 0xc ++ NETLINK_NFLOG = 0x5 ++ NETLINK_NO_ENOBUFS = 0x5 ++ NETLINK_PKTINFO = 0x3 ++ NETLINK_RDMA = 0x14 ++ NETLINK_ROUTE = 0x0 ++ NETLINK_RX_RING = 0x6 ++ NETLINK_SCSITRANSPORT = 0x12 ++ NETLINK_SELINUX = 0x7 ++ NETLINK_SOCK_DIAG = 0x4 ++ NETLINK_TX_RING = 0x7 ++ NETLINK_UNUSED = 0x1 ++ NETLINK_USERSOCK = 0x2 ++ NETLINK_XFRM = 0x6 ++ NL0 = 0x0 ++ NL1 = 0x100 ++ NLA_ALIGNTO = 0x4 ++ NLA_F_NESTED = 0x8000 ++ NLA_F_NET_BYTEORDER = 0x4000 ++ NLA_HDRLEN = 0x4 ++ NLDLY = 0x100 ++ NLMSG_ALIGNTO = 0x4 ++ NLMSG_DONE = 0x3 ++ NLMSG_ERROR = 0x2 ++ NLMSG_HDRLEN = 0x10 ++ NLMSG_MIN_TYPE = 0x10 ++ NLMSG_NOOP = 0x1 ++ NLMSG_OVERRUN = 0x4 ++ NLM_F_ACK = 0x4 ++ NLM_F_APPEND = 0x800 ++ NLM_F_ATOMIC = 0x400 ++ NLM_F_CREATE = 0x400 ++ NLM_F_DUMP = 0x300 ++ NLM_F_DUMP_FILTERED = 0x20 ++ NLM_F_DUMP_INTR = 0x10 ++ NLM_F_ECHO = 0x8 ++ NLM_F_EXCL = 0x200 ++ NLM_F_MATCH = 0x200 ++ NLM_F_MULTI = 0x2 ++ NLM_F_REPLACE = 0x100 ++ NLM_F_REQUEST = 0x1 ++ NLM_F_ROOT = 0x100 ++ NOFLSH = 0x80 ++ OCRNL = 0x8 ++ OFDEL = 0x80 ++ OFILL = 0x40 ++ OLCUC = 0x2 ++ ONLCR = 0x4 ++ ONLRET = 0x20 ++ ONOCR = 0x10 ++ OPOST = 0x1 ++ O_ACCMODE = 0x3 ++ O_APPEND = 0x400 ++ O_ASYNC = 0x2000 ++ O_CLOEXEC = 0x80000 ++ O_CREAT = 0x40 ++ O_DIRECT = 0x4000 ++ O_DIRECTORY = 0x10000 ++ O_DSYNC = 0x1000 ++ O_EXCL = 0x80 ++ O_FSYNC = 0x101000 ++ O_LARGEFILE = 0x0 ++ O_NDELAY = 0x800 ++ O_NOATIME = 0x40000 ++ O_NOCTTY = 0x100 ++ O_NOFOLLOW = 0x20000 ++ O_NONBLOCK = 0x800 ++ O_PATH = 0x200000 ++ O_RDONLY = 0x0 ++ O_RDWR = 0x2 ++ O_RSYNC = 0x101000 ++ O_SYNC = 0x101000 ++ O_TMPFILE = 0x410000 ++ O_TRUNC = 0x200 ++ O_WRONLY = 0x1 ++ PACKET_ADD_MEMBERSHIP = 0x1 ++ PACKET_AUXDATA = 0x8 ++ PACKET_BROADCAST = 0x1 ++ PACKET_COPY_THRESH = 0x7 ++ PACKET_DROP_MEMBERSHIP = 0x2 ++ PACKET_FANOUT = 0x12 ++ PACKET_FANOUT_CBPF = 0x6 ++ PACKET_FANOUT_CPU = 0x2 ++ PACKET_FANOUT_DATA = 0x16 ++ PACKET_FANOUT_EBPF = 0x7 ++ PACKET_FANOUT_FLAG_DEFRAG = 0x8000 ++ PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 ++ PACKET_FANOUT_HASH = 0x0 ++ PACKET_FANOUT_LB = 0x1 ++ PACKET_FANOUT_QM = 0x5 ++ PACKET_FANOUT_RND = 0x4 ++ PACKET_FANOUT_ROLLOVER = 0x3 ++ PACKET_FASTROUTE = 0x6 ++ PACKET_HDRLEN = 0xb ++ PACKET_HOST = 0x0 ++ PACKET_KERNEL = 0x7 ++ PACKET_LOOPBACK = 0x5 ++ PACKET_LOSS = 0xe ++ PACKET_MR_ALLMULTI = 0x2 ++ PACKET_MR_MULTICAST = 0x0 ++ PACKET_MR_PROMISC = 0x1 ++ PACKET_MR_UNICAST = 0x3 ++ PACKET_MULTICAST = 0x2 ++ PACKET_ORIGDEV = 0x9 ++ PACKET_OTHERHOST = 0x3 ++ PACKET_OUTGOING = 0x4 ++ PACKET_QDISC_BYPASS = 0x14 ++ PACKET_RECV_OUTPUT = 0x3 ++ PACKET_RESERVE = 0xc ++ PACKET_ROLLOVER_STATS = 0x15 ++ PACKET_RX_RING = 0x5 ++ PACKET_STATISTICS = 0x6 ++ PACKET_TIMESTAMP = 0x11 ++ PACKET_TX_HAS_OFF = 0x13 ++ PACKET_TX_RING = 0xd ++ PACKET_TX_TIMESTAMP = 0x10 ++ PACKET_USER = 0x6 ++ PACKET_VERSION = 0xa ++ PACKET_VNET_HDR = 0xf ++ PARENB = 0x100 ++ PARITY_CRC16_PR0 = 0x2 ++ PARITY_CRC16_PR0_CCITT = 0x4 ++ PARITY_CRC16_PR1 = 0x3 ++ PARITY_CRC16_PR1_CCITT = 0x5 ++ PARITY_CRC32_PR0_CCITT = 0x6 ++ PARITY_CRC32_PR1_CCITT = 0x7 ++ PARITY_DEFAULT = 0x0 ++ PARITY_NONE = 0x1 ++ PARMRK = 0x8 ++ PARODD = 0x200 ++ PENDIN = 0x4000 ++ PRIO_PGRP = 0x1 ++ PRIO_PROCESS = 0x0 ++ PRIO_USER = 0x2 ++ PROT_EXEC = 0x4 ++ PROT_GROWSDOWN = 0x1000000 ++ PROT_GROWSUP = 0x2000000 ++ PROT_NONE = 0x0 ++ PROT_READ = 0x1 ++ PROT_WRITE = 0x2 ++ PR_CAPBSET_DROP = 0x18 ++ PR_CAPBSET_READ = 0x17 ++ PR_CAP_AMBIENT = 0x2f ++ PR_CAP_AMBIENT_CLEAR_ALL = 0x4 ++ PR_CAP_AMBIENT_IS_SET = 0x1 ++ PR_CAP_AMBIENT_LOWER = 0x3 ++ PR_CAP_AMBIENT_RAISE = 0x2 ++ PR_ENDIAN_BIG = 0x0 ++ PR_ENDIAN_LITTLE = 0x1 ++ PR_ENDIAN_PPC_LITTLE = 0x2 ++ PR_FPEMU_NOPRINT = 0x1 ++ PR_FPEMU_SIGFPE = 0x2 ++ PR_FP_EXC_ASYNC = 0x2 ++ PR_FP_EXC_DISABLED = 0x0 ++ PR_FP_EXC_DIV = 0x10000 ++ PR_FP_EXC_INV = 0x100000 ++ PR_FP_EXC_NONRECOV = 0x1 ++ PR_FP_EXC_OVF = 0x20000 ++ PR_FP_EXC_PRECISE = 0x3 ++ PR_FP_EXC_RES = 0x80000 ++ PR_FP_EXC_SW_ENABLE = 0x80 ++ PR_FP_EXC_UND = 0x40000 ++ PR_FP_MODE_FR = 0x1 ++ PR_FP_MODE_FRE = 0x2 ++ PR_GET_CHILD_SUBREAPER = 0x25 ++ PR_GET_DUMPABLE = 0x3 ++ PR_GET_ENDIAN = 0x13 ++ PR_GET_FPEMU = 0x9 ++ PR_GET_FPEXC = 0xb ++ PR_GET_FP_MODE = 0x2e ++ PR_GET_KEEPCAPS = 0x7 ++ PR_GET_NAME = 0x10 ++ PR_GET_NO_NEW_PRIVS = 0x27 ++ PR_GET_PDEATHSIG = 0x2 ++ PR_GET_SECCOMP = 0x15 ++ PR_GET_SECUREBITS = 0x1b ++ PR_GET_THP_DISABLE = 0x2a ++ PR_GET_TID_ADDRESS = 0x28 ++ PR_GET_TIMERSLACK = 0x1e ++ PR_GET_TIMING = 0xd ++ PR_GET_TSC = 0x19 ++ PR_GET_UNALIGN = 0x5 ++ PR_MCE_KILL = 0x21 ++ PR_MCE_KILL_CLEAR = 0x0 ++ PR_MCE_KILL_DEFAULT = 0x2 ++ PR_MCE_KILL_EARLY = 0x1 ++ PR_MCE_KILL_GET = 0x22 ++ PR_MCE_KILL_LATE = 0x0 ++ PR_MCE_KILL_SET = 0x1 ++ PR_MPX_DISABLE_MANAGEMENT = 0x2c ++ PR_MPX_ENABLE_MANAGEMENT = 0x2b ++ PR_SET_CHILD_SUBREAPER = 0x24 ++ PR_SET_DUMPABLE = 0x4 ++ PR_SET_ENDIAN = 0x14 ++ PR_SET_FPEMU = 0xa ++ PR_SET_FPEXC = 0xc ++ PR_SET_FP_MODE = 0x2d ++ PR_SET_KEEPCAPS = 0x8 ++ PR_SET_MM = 0x23 ++ PR_SET_MM_ARG_END = 0x9 ++ PR_SET_MM_ARG_START = 0x8 ++ PR_SET_MM_AUXV = 0xc ++ PR_SET_MM_BRK = 0x7 ++ PR_SET_MM_END_CODE = 0x2 ++ PR_SET_MM_END_DATA = 0x4 ++ PR_SET_MM_ENV_END = 0xb ++ PR_SET_MM_ENV_START = 0xa ++ PR_SET_MM_EXE_FILE = 0xd ++ PR_SET_MM_MAP = 0xe ++ PR_SET_MM_MAP_SIZE = 0xf ++ PR_SET_MM_START_BRK = 0x6 ++ PR_SET_MM_START_CODE = 0x1 ++ PR_SET_MM_START_DATA = 0x3 ++ PR_SET_MM_START_STACK = 0x5 ++ PR_SET_NAME = 0xf ++ PR_SET_NO_NEW_PRIVS = 0x26 ++ PR_SET_PDEATHSIG = 0x1 ++ PR_SET_PTRACER = 0x59616d61 ++ PR_SET_PTRACER_ANY = -0x1 ++ PR_SET_SECCOMP = 0x16 ++ PR_SET_SECUREBITS = 0x1c ++ PR_SET_THP_DISABLE = 0x29 ++ PR_SET_TIMERSLACK = 0x1d ++ PR_SET_TIMING = 0xe ++ PR_SET_TSC = 0x1a ++ PR_SET_UNALIGN = 0x6 ++ PR_TASK_PERF_EVENTS_DISABLE = 0x1f ++ PR_TASK_PERF_EVENTS_ENABLE = 0x20 ++ PR_TIMING_STATISTICAL = 0x0 ++ PR_TIMING_TIMESTAMP = 0x1 ++ PR_TSC_ENABLE = 0x1 ++ PR_TSC_SIGSEGV = 0x2 ++ PR_UNALIGN_NOPRINT = 0x1 ++ PR_UNALIGN_SIGBUS = 0x2 ++ PTRACE_ATTACH = 0x10 ++ PTRACE_CONT = 0x7 ++ PTRACE_DETACH = 0x11 ++ PTRACE_DISABLE_TE = 0x5010 ++ PTRACE_ENABLE_TE = 0x5009 ++ PTRACE_EVENT_CLONE = 0x3 ++ PTRACE_EVENT_EXEC = 0x4 ++ PTRACE_EVENT_EXIT = 0x6 ++ PTRACE_EVENT_FORK = 0x1 ++ PTRACE_EVENT_SECCOMP = 0x7 ++ PTRACE_EVENT_STOP = 0x80 ++ PTRACE_EVENT_VFORK = 0x2 ++ PTRACE_EVENT_VFORK_DONE = 0x5 ++ PTRACE_GETEVENTMSG = 0x4201 ++ PTRACE_GETREGS = 0xc ++ PTRACE_GETREGSET = 0x4204 ++ PTRACE_GETSIGINFO = 0x4202 ++ PTRACE_GETSIGMASK = 0x420a ++ PTRACE_GET_LAST_BREAK = 0x5006 ++ PTRACE_INTERRUPT = 0x4207 ++ PTRACE_KILL = 0x8 ++ PTRACE_LISTEN = 0x4208 ++ PTRACE_OLDSETOPTIONS = 0x15 ++ PTRACE_O_EXITKILL = 0x100000 ++ PTRACE_O_MASK = 0x3000ff ++ PTRACE_O_SUSPEND_SECCOMP = 0x200000 ++ PTRACE_O_TRACECLONE = 0x8 ++ PTRACE_O_TRACEEXEC = 0x10 ++ PTRACE_O_TRACEEXIT = 0x40 ++ PTRACE_O_TRACEFORK = 0x2 ++ PTRACE_O_TRACESECCOMP = 0x80 ++ PTRACE_O_TRACESYSGOOD = 0x1 ++ PTRACE_O_TRACEVFORK = 0x4 ++ PTRACE_O_TRACEVFORKDONE = 0x20 ++ PTRACE_PEEKDATA = 0x2 ++ PTRACE_PEEKDATA_AREA = 0x5003 ++ PTRACE_PEEKSIGINFO = 0x4209 ++ PTRACE_PEEKSIGINFO_SHARED = 0x1 ++ PTRACE_PEEKTEXT = 0x1 ++ PTRACE_PEEKTEXT_AREA = 0x5002 ++ PTRACE_PEEKUSR = 0x3 ++ PTRACE_PEEKUSR_AREA = 0x5000 ++ PTRACE_PEEK_SYSTEM_CALL = 0x5007 ++ PTRACE_POKEDATA = 0x5 ++ PTRACE_POKEDATA_AREA = 0x5005 ++ PTRACE_POKETEXT = 0x4 ++ PTRACE_POKETEXT_AREA = 0x5004 ++ PTRACE_POKEUSR = 0x6 ++ PTRACE_POKEUSR_AREA = 0x5001 ++ PTRACE_POKE_SYSTEM_CALL = 0x5008 ++ PTRACE_PROT = 0x15 ++ PTRACE_SECCOMP_GET_FILTER = 0x420c ++ PTRACE_SEIZE = 0x4206 ++ PTRACE_SETOPTIONS = 0x4200 ++ PTRACE_SETREGS = 0xd ++ PTRACE_SETREGSET = 0x4205 ++ PTRACE_SETSIGINFO = 0x4203 ++ PTRACE_SETSIGMASK = 0x420b ++ PTRACE_SINGLEBLOCK = 0xc ++ PTRACE_SINGLESTEP = 0x9 ++ PTRACE_SYSCALL = 0x18 ++ PTRACE_TE_ABORT_RAND = 0x5011 ++ PTRACE_TRACEME = 0x0 ++ PT_ACR0 = 0x90 ++ PT_ACR1 = 0x94 ++ PT_ACR10 = 0xb8 ++ PT_ACR11 = 0xbc ++ PT_ACR12 = 0xc0 ++ PT_ACR13 = 0xc4 ++ PT_ACR14 = 0xc8 ++ PT_ACR15 = 0xcc ++ PT_ACR2 = 0x98 ++ PT_ACR3 = 0x9c ++ PT_ACR4 = 0xa0 ++ PT_ACR5 = 0xa4 ++ PT_ACR6 = 0xa8 ++ PT_ACR7 = 0xac ++ PT_ACR8 = 0xb0 ++ PT_ACR9 = 0xb4 ++ PT_CR_10 = 0x168 ++ PT_CR_11 = 0x170 ++ PT_CR_9 = 0x160 ++ PT_ENDREGS = 0x1af ++ PT_FPC = 0xd8 ++ PT_FPR0 = 0xe0 ++ PT_FPR1 = 0xe8 ++ PT_FPR10 = 0x130 ++ PT_FPR11 = 0x138 ++ PT_FPR12 = 0x140 ++ PT_FPR13 = 0x148 ++ PT_FPR14 = 0x150 ++ PT_FPR15 = 0x158 ++ PT_FPR2 = 0xf0 ++ PT_FPR3 = 0xf8 ++ PT_FPR4 = 0x100 ++ PT_FPR5 = 0x108 ++ PT_FPR6 = 0x110 ++ PT_FPR7 = 0x118 ++ PT_FPR8 = 0x120 ++ PT_FPR9 = 0x128 ++ PT_GPR0 = 0x10 ++ PT_GPR1 = 0x18 ++ PT_GPR10 = 0x60 ++ PT_GPR11 = 0x68 ++ PT_GPR12 = 0x70 ++ PT_GPR13 = 0x78 ++ PT_GPR14 = 0x80 ++ PT_GPR15 = 0x88 ++ PT_GPR2 = 0x20 ++ PT_GPR3 = 0x28 ++ PT_GPR4 = 0x30 ++ PT_GPR5 = 0x38 ++ PT_GPR6 = 0x40 ++ PT_GPR7 = 0x48 ++ PT_GPR8 = 0x50 ++ PT_GPR9 = 0x58 ++ PT_IEEE_IP = 0x1a8 ++ PT_LASTOFF = 0x1a8 ++ PT_ORIGGPR2 = 0xd0 ++ PT_PSWADDR = 0x8 ++ PT_PSWMASK = 0x0 ++ RLIMIT_AS = 0x9 ++ RLIMIT_CORE = 0x4 ++ RLIMIT_CPU = 0x0 ++ RLIMIT_DATA = 0x2 ++ RLIMIT_FSIZE = 0x1 ++ RLIMIT_NOFILE = 0x7 ++ RLIMIT_STACK = 0x3 ++ RLIM_INFINITY = -0x1 ++ RTAX_ADVMSS = 0x8 ++ RTAX_CC_ALGO = 0x10 ++ RTAX_CWND = 0x7 ++ RTAX_FEATURES = 0xc ++ RTAX_FEATURE_ALLFRAG = 0x8 ++ RTAX_FEATURE_ECN = 0x1 ++ RTAX_FEATURE_MASK = 0xf ++ RTAX_FEATURE_SACK = 0x2 ++ RTAX_FEATURE_TIMESTAMP = 0x4 ++ RTAX_HOPLIMIT = 0xa ++ RTAX_INITCWND = 0xb ++ RTAX_INITRWND = 0xe ++ RTAX_LOCK = 0x1 ++ RTAX_MAX = 0x10 ++ RTAX_MTU = 0x2 ++ RTAX_QUICKACK = 0xf ++ RTAX_REORDERING = 0x9 ++ RTAX_RTO_MIN = 0xd ++ RTAX_RTT = 0x4 ++ RTAX_RTTVAR = 0x5 ++ RTAX_SSTHRESH = 0x6 ++ RTAX_UNSPEC = 0x0 ++ RTAX_WINDOW = 0x3 ++ RTA_ALIGNTO = 0x4 ++ RTA_MAX = 0x16 ++ RTCF_DIRECTSRC = 0x4000000 ++ RTCF_DOREDIRECT = 0x1000000 ++ RTCF_LOG = 0x2000000 ++ RTCF_MASQ = 0x400000 ++ RTCF_NAT = 0x800000 ++ RTCF_VALVE = 0x200000 ++ RTF_ADDRCLASSMASK = 0xf8000000 ++ RTF_ADDRCONF = 0x40000 ++ RTF_ALLONLINK = 0x20000 ++ RTF_BROADCAST = 0x10000000 ++ RTF_CACHE = 0x1000000 ++ RTF_DEFAULT = 0x10000 ++ RTF_DYNAMIC = 0x10 ++ RTF_FLOW = 0x2000000 ++ RTF_GATEWAY = 0x2 ++ RTF_HOST = 0x4 ++ RTF_INTERFACE = 0x40000000 ++ RTF_IRTT = 0x100 ++ RTF_LINKRT = 0x100000 ++ RTF_LOCAL = 0x80000000 ++ RTF_MODIFIED = 0x20 ++ RTF_MSS = 0x40 ++ RTF_MTU = 0x40 ++ RTF_MULTICAST = 0x20000000 ++ RTF_NAT = 0x8000000 ++ RTF_NOFORWARD = 0x1000 ++ RTF_NONEXTHOP = 0x200000 ++ RTF_NOPMTUDISC = 0x4000 ++ RTF_POLICY = 0x4000000 ++ RTF_REINSTATE = 0x8 ++ RTF_REJECT = 0x200 ++ RTF_STATIC = 0x400 ++ RTF_THROW = 0x2000 ++ RTF_UP = 0x1 ++ RTF_WINDOW = 0x80 ++ RTF_XRESOLVE = 0x800 ++ RTM_BASE = 0x10 ++ RTM_DELACTION = 0x31 ++ RTM_DELADDR = 0x15 ++ RTM_DELADDRLABEL = 0x49 ++ RTM_DELLINK = 0x11 ++ RTM_DELMDB = 0x55 ++ RTM_DELNEIGH = 0x1d ++ RTM_DELNSID = 0x59 ++ RTM_DELQDISC = 0x25 ++ RTM_DELROUTE = 0x19 ++ RTM_DELRULE = 0x21 ++ RTM_DELTCLASS = 0x29 ++ RTM_DELTFILTER = 0x2d ++ RTM_F_CLONED = 0x200 ++ RTM_F_EQUALIZE = 0x400 ++ RTM_F_LOOKUP_TABLE = 0x1000 ++ RTM_F_NOTIFY = 0x100 ++ RTM_F_PREFIX = 0x800 ++ RTM_GETACTION = 0x32 ++ RTM_GETADDR = 0x16 ++ RTM_GETADDRLABEL = 0x4a ++ RTM_GETANYCAST = 0x3e ++ RTM_GETDCB = 0x4e ++ RTM_GETLINK = 0x12 ++ RTM_GETMDB = 0x56 ++ RTM_GETMULTICAST = 0x3a ++ RTM_GETNEIGH = 0x1e ++ RTM_GETNEIGHTBL = 0x42 ++ RTM_GETNETCONF = 0x52 ++ RTM_GETNSID = 0x5a ++ RTM_GETQDISC = 0x26 ++ RTM_GETROUTE = 0x1a ++ RTM_GETRULE = 0x22 ++ RTM_GETTCLASS = 0x2a ++ RTM_GETTFILTER = 0x2e ++ RTM_MAX = 0x5b ++ RTM_NEWACTION = 0x30 ++ RTM_NEWADDR = 0x14 ++ RTM_NEWADDRLABEL = 0x48 ++ RTM_NEWLINK = 0x10 ++ RTM_NEWMDB = 0x54 ++ RTM_NEWNDUSEROPT = 0x44 ++ RTM_NEWNEIGH = 0x1c ++ RTM_NEWNEIGHTBL = 0x40 ++ RTM_NEWNETCONF = 0x50 ++ RTM_NEWNSID = 0x58 ++ RTM_NEWPREFIX = 0x34 ++ RTM_NEWQDISC = 0x24 ++ RTM_NEWROUTE = 0x18 ++ RTM_NEWRULE = 0x20 ++ RTM_NEWTCLASS = 0x28 ++ RTM_NEWTFILTER = 0x2c ++ RTM_NR_FAMILIES = 0x13 ++ RTM_NR_MSGTYPES = 0x4c ++ RTM_SETDCB = 0x4f ++ RTM_SETLINK = 0x13 ++ RTM_SETNEIGHTBL = 0x43 ++ RTNH_ALIGNTO = 0x4 ++ RTNH_COMPARE_MASK = 0x11 ++ RTNH_F_DEAD = 0x1 ++ RTNH_F_LINKDOWN = 0x10 ++ RTNH_F_OFFLOAD = 0x8 ++ RTNH_F_ONLINK = 0x4 ++ RTNH_F_PERVASIVE = 0x2 ++ RTN_MAX = 0xb ++ RTPROT_BABEL = 0x2a ++ RTPROT_BIRD = 0xc ++ RTPROT_BOOT = 0x3 ++ RTPROT_DHCP = 0x10 ++ RTPROT_DNROUTED = 0xd ++ RTPROT_GATED = 0x8 ++ RTPROT_KERNEL = 0x2 ++ RTPROT_MROUTED = 0x11 ++ RTPROT_MRT = 0xa ++ RTPROT_NTK = 0xf ++ RTPROT_RA = 0x9 ++ RTPROT_REDIRECT = 0x1 ++ RTPROT_STATIC = 0x4 ++ RTPROT_UNSPEC = 0x0 ++ RTPROT_XORP = 0xe ++ RTPROT_ZEBRA = 0xb ++ RT_CLASS_DEFAULT = 0xfd ++ RT_CLASS_LOCAL = 0xff ++ RT_CLASS_MAIN = 0xfe ++ RT_CLASS_MAX = 0xff ++ RT_CLASS_UNSPEC = 0x0 ++ RUSAGE_CHILDREN = -0x1 ++ RUSAGE_SELF = 0x0 ++ RUSAGE_THREAD = 0x1 ++ SCM_CREDENTIALS = 0x2 ++ SCM_RIGHTS = 0x1 ++ SCM_TIMESTAMP = 0x1d ++ SCM_TIMESTAMPING = 0x25 ++ SCM_TIMESTAMPNS = 0x23 ++ SCM_WIFI_STATUS = 0x29 ++ SHUT_RD = 0x0 ++ SHUT_RDWR = 0x2 ++ SHUT_WR = 0x1 ++ SIOCADDDLCI = 0x8980 ++ SIOCADDMULTI = 0x8931 ++ SIOCADDRT = 0x890b ++ SIOCATMARK = 0x8905 ++ SIOCDARP = 0x8953 ++ SIOCDELDLCI = 0x8981 ++ SIOCDELMULTI = 0x8932 ++ SIOCDELRT = 0x890c ++ SIOCDEVPRIVATE = 0x89f0 ++ SIOCDIFADDR = 0x8936 ++ SIOCDRARP = 0x8960 ++ SIOCGARP = 0x8954 ++ SIOCGIFADDR = 0x8915 ++ SIOCGIFBR = 0x8940 ++ SIOCGIFBRDADDR = 0x8919 ++ SIOCGIFCONF = 0x8912 ++ SIOCGIFCOUNT = 0x8938 ++ SIOCGIFDSTADDR = 0x8917 ++ SIOCGIFENCAP = 0x8925 ++ SIOCGIFFLAGS = 0x8913 ++ SIOCGIFHWADDR = 0x8927 ++ SIOCGIFINDEX = 0x8933 ++ SIOCGIFMAP = 0x8970 ++ SIOCGIFMEM = 0x891f ++ SIOCGIFMETRIC = 0x891d ++ SIOCGIFMTU = 0x8921 ++ SIOCGIFNAME = 0x8910 ++ SIOCGIFNETMASK = 0x891b ++ SIOCGIFPFLAGS = 0x8935 ++ SIOCGIFSLAVE = 0x8929 ++ SIOCGIFTXQLEN = 0x8942 ++ SIOCGPGRP = 0x8904 ++ SIOCGRARP = 0x8961 ++ SIOCGSTAMP = 0x8906 ++ SIOCGSTAMPNS = 0x8907 ++ SIOCPROTOPRIVATE = 0x89e0 ++ SIOCRTMSG = 0x890d ++ SIOCSARP = 0x8955 ++ SIOCSIFADDR = 0x8916 ++ SIOCSIFBR = 0x8941 ++ SIOCSIFBRDADDR = 0x891a ++ SIOCSIFDSTADDR = 0x8918 ++ SIOCSIFENCAP = 0x8926 ++ SIOCSIFFLAGS = 0x8914 ++ SIOCSIFHWADDR = 0x8924 ++ SIOCSIFHWBROADCAST = 0x8937 ++ SIOCSIFLINK = 0x8911 ++ SIOCSIFMAP = 0x8971 ++ SIOCSIFMEM = 0x8920 ++ SIOCSIFMETRIC = 0x891e ++ SIOCSIFMTU = 0x8922 ++ SIOCSIFNAME = 0x8923 ++ SIOCSIFNETMASK = 0x891c ++ SIOCSIFPFLAGS = 0x8934 ++ SIOCSIFSLAVE = 0x8930 ++ SIOCSIFTXQLEN = 0x8943 ++ SIOCSPGRP = 0x8902 ++ SIOCSRARP = 0x8962 ++ SOCK_CLOEXEC = 0x80000 ++ SOCK_DCCP = 0x6 ++ SOCK_DGRAM = 0x2 ++ SOCK_NONBLOCK = 0x800 ++ SOCK_PACKET = 0xa ++ SOCK_RAW = 0x3 ++ SOCK_RDM = 0x4 ++ SOCK_SEQPACKET = 0x5 ++ SOCK_STREAM = 0x1 ++ SOL_AAL = 0x109 ++ SOL_ATM = 0x108 ++ SOL_DECNET = 0x105 ++ SOL_ICMPV6 = 0x3a ++ SOL_IP = 0x0 ++ SOL_IPV6 = 0x29 ++ SOL_IRDA = 0x10a ++ SOL_NETLINK = 0x10e ++ SOL_PACKET = 0x107 ++ SOL_RAW = 0xff ++ SOL_SOCKET = 0x1 ++ SOL_TCP = 0x6 ++ SOL_X25 = 0x106 ++ SOMAXCONN = 0x80 ++ SO_ACCEPTCONN = 0x1e ++ SO_ATTACH_BPF = 0x32 ++ SO_ATTACH_FILTER = 0x1a ++ SO_BINDTODEVICE = 0x19 ++ SO_BPF_EXTENSIONS = 0x30 ++ SO_BROADCAST = 0x6 ++ SO_BSDCOMPAT = 0xe ++ SO_BUSY_POLL = 0x2e ++ SO_DEBUG = 0x1 ++ SO_DETACH_BPF = 0x1b ++ SO_DETACH_FILTER = 0x1b ++ SO_DOMAIN = 0x27 ++ SO_DONTROUTE = 0x5 ++ SO_ERROR = 0x4 ++ SO_GET_FILTER = 0x1a ++ SO_INCOMING_CPU = 0x31 ++ SO_KEEPALIVE = 0x9 ++ SO_LINGER = 0xd ++ SO_LOCK_FILTER = 0x2c ++ SO_MARK = 0x24 ++ SO_MAX_PACING_RATE = 0x2f ++ SO_NOFCS = 0x2b ++ SO_NO_CHECK = 0xb ++ SO_OOBINLINE = 0xa ++ SO_PASSCRED = 0x10 ++ SO_PASSSEC = 0x22 ++ SO_PEEK_OFF = 0x2a ++ SO_PEERCRED = 0x11 ++ SO_PEERNAME = 0x1c ++ SO_PEERSEC = 0x1f ++ SO_PRIORITY = 0xc ++ SO_PROTOCOL = 0x26 ++ SO_RCVBUF = 0x8 ++ SO_RCVBUFFORCE = 0x21 ++ SO_RCVLOWAT = 0x12 ++ SO_RCVTIMEO = 0x14 ++ SO_REUSEADDR = 0x2 ++ SO_REUSEPORT = 0xf ++ SO_RXQ_OVFL = 0x28 ++ SO_SECURITY_AUTHENTICATION = 0x16 ++ SO_SECURITY_ENCRYPTION_NETWORK = 0x18 ++ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 ++ SO_SELECT_ERR_QUEUE = 0x2d ++ SO_SNDBUF = 0x7 ++ SO_SNDBUFFORCE = 0x20 ++ SO_SNDLOWAT = 0x13 ++ SO_SNDTIMEO = 0x15 ++ SO_TIMESTAMP = 0x1d ++ SO_TIMESTAMPING = 0x25 ++ SO_TIMESTAMPNS = 0x23 ++ SO_TYPE = 0x3 ++ SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 ++ SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 ++ SO_VM_SOCKETS_BUFFER_SIZE = 0x0 ++ SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 ++ SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 ++ SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 ++ SO_VM_SOCKETS_TRUSTED = 0x5 ++ SO_WIFI_STATUS = 0x29 ++ SPLICE_F_GIFT = 0x8 ++ SPLICE_F_MORE = 0x4 ++ SPLICE_F_MOVE = 0x1 ++ SPLICE_F_NONBLOCK = 0x2 ++ S_BLKSIZE = 0x200 ++ S_IEXEC = 0x40 ++ S_IFBLK = 0x6000 ++ S_IFCHR = 0x2000 ++ S_IFDIR = 0x4000 ++ S_IFIFO = 0x1000 ++ S_IFLNK = 0xa000 ++ S_IFMT = 0xf000 ++ S_IFREG = 0x8000 ++ S_IFSOCK = 0xc000 ++ S_IREAD = 0x100 ++ S_IRGRP = 0x20 ++ S_IROTH = 0x4 ++ S_IRUSR = 0x100 ++ S_IRWXG = 0x38 ++ S_IRWXO = 0x7 ++ S_IRWXU = 0x1c0 ++ S_ISGID = 0x400 ++ S_ISUID = 0x800 ++ S_ISVTX = 0x200 ++ S_IWGRP = 0x10 ++ S_IWOTH = 0x2 ++ S_IWRITE = 0x80 ++ S_IWUSR = 0x80 ++ S_IXGRP = 0x8 ++ S_IXOTH = 0x1 ++ S_IXUSR = 0x40 ++ TAB0 = 0x0 ++ TAB1 = 0x800 ++ TAB2 = 0x1000 ++ TAB3 = 0x1800 ++ TABDLY = 0x1800 ++ TCFLSH = 0x540b ++ TCGETA = 0x5405 ++ TCGETS = 0x5401 ++ TCGETS2 = 0x802c542a ++ TCGETX = 0x5432 ++ TCIFLUSH = 0x0 ++ TCIOFF = 0x2 ++ TCIOFLUSH = 0x2 ++ TCION = 0x3 ++ TCOFLUSH = 0x1 ++ TCOOFF = 0x0 ++ TCOON = 0x1 ++ TCP_CC_INFO = 0x1a ++ TCP_CONGESTION = 0xd ++ TCP_COOKIE_IN_ALWAYS = 0x1 ++ TCP_COOKIE_MAX = 0x10 ++ TCP_COOKIE_MIN = 0x8 ++ TCP_COOKIE_OUT_NEVER = 0x2 ++ TCP_COOKIE_PAIR_SIZE = 0x20 ++ TCP_COOKIE_TRANSACTIONS = 0xf ++ TCP_CORK = 0x3 ++ TCP_DEFER_ACCEPT = 0x9 ++ TCP_FASTOPEN = 0x17 ++ TCP_INFO = 0xb ++ TCP_KEEPCNT = 0x6 ++ TCP_KEEPIDLE = 0x4 ++ TCP_KEEPINTVL = 0x5 ++ TCP_LINGER2 = 0x8 ++ TCP_MAXSEG = 0x2 ++ TCP_MAXWIN = 0xffff ++ TCP_MAX_WINSHIFT = 0xe ++ TCP_MD5SIG = 0xe ++ TCP_MD5SIG_MAXKEYLEN = 0x50 ++ TCP_MSS = 0x200 ++ TCP_MSS_DEFAULT = 0x218 ++ TCP_MSS_DESIRED = 0x4c4 ++ TCP_NODELAY = 0x1 ++ TCP_NOTSENT_LOWAT = 0x19 ++ TCP_QUEUE_SEQ = 0x15 ++ TCP_QUICKACK = 0xc ++ TCP_REPAIR = 0x13 ++ TCP_REPAIR_OPTIONS = 0x16 ++ TCP_REPAIR_QUEUE = 0x14 ++ TCP_SAVED_SYN = 0x1c ++ TCP_SAVE_SYN = 0x1b ++ TCP_SYNCNT = 0x7 ++ TCP_S_DATA_IN = 0x4 ++ TCP_S_DATA_OUT = 0x8 ++ TCP_THIN_DUPACK = 0x11 ++ TCP_THIN_LINEAR_TIMEOUTS = 0x10 ++ TCP_TIMESTAMP = 0x18 ++ TCP_USER_TIMEOUT = 0x12 ++ TCP_WINDOW_CLAMP = 0xa ++ TCSAFLUSH = 0x2 ++ TCSBRK = 0x5409 ++ TCSBRKP = 0x5425 ++ TCSETA = 0x5406 ++ TCSETAF = 0x5408 ++ TCSETAW = 0x5407 ++ TCSETS = 0x5402 ++ TCSETS2 = 0x402c542b ++ TCSETSF = 0x5404 ++ TCSETSF2 = 0x402c542d ++ TCSETSW = 0x5403 ++ TCSETSW2 = 0x402c542c ++ TCSETX = 0x5433 ++ TCSETXF = 0x5434 ++ TCSETXW = 0x5435 ++ TCXONC = 0x540a ++ TIOCCBRK = 0x5428 ++ TIOCCONS = 0x541d ++ TIOCEXCL = 0x540c ++ TIOCGDEV = 0x80045432 ++ TIOCGETD = 0x5424 ++ TIOCGEXCL = 0x80045440 ++ TIOCGICOUNT = 0x545d ++ TIOCGLCKTRMIOS = 0x5456 ++ TIOCGPGRP = 0x540f ++ TIOCGPKT = 0x80045438 ++ TIOCGPTLCK = 0x80045439 ++ TIOCGPTN = 0x80045430 ++ TIOCGRS485 = 0x542e ++ TIOCGSERIAL = 0x541e ++ TIOCGSID = 0x5429 ++ TIOCGSOFTCAR = 0x5419 ++ TIOCGWINSZ = 0x5413 ++ TIOCINQ = 0x541b ++ TIOCLINUX = 0x541c ++ TIOCMBIC = 0x5417 ++ TIOCMBIS = 0x5416 ++ TIOCMGET = 0x5415 ++ TIOCMIWAIT = 0x545c ++ TIOCMSET = 0x5418 ++ TIOCM_CAR = 0x40 ++ TIOCM_CD = 0x40 ++ TIOCM_CTS = 0x20 ++ TIOCM_DSR = 0x100 ++ TIOCM_DTR = 0x2 ++ TIOCM_LE = 0x1 ++ TIOCM_RI = 0x80 ++ TIOCM_RNG = 0x80 ++ TIOCM_RTS = 0x4 ++ TIOCM_SR = 0x10 ++ TIOCM_ST = 0x8 ++ TIOCNOTTY = 0x5422 ++ TIOCNXCL = 0x540d ++ TIOCOUTQ = 0x5411 ++ TIOCPKT = 0x5420 ++ TIOCPKT_DATA = 0x0 ++ TIOCPKT_DOSTOP = 0x20 ++ TIOCPKT_FLUSHREAD = 0x1 ++ TIOCPKT_FLUSHWRITE = 0x2 ++ TIOCPKT_IOCTL = 0x40 ++ TIOCPKT_NOSTOP = 0x10 ++ TIOCPKT_START = 0x8 ++ TIOCPKT_STOP = 0x4 ++ TIOCSBRK = 0x5427 ++ TIOCSCTTY = 0x540e ++ TIOCSERCONFIG = 0x5453 ++ TIOCSERGETLSR = 0x5459 ++ TIOCSERGETMULTI = 0x545a ++ TIOCSERGSTRUCT = 0x5458 ++ TIOCSERGWILD = 0x5454 ++ TIOCSERSETMULTI = 0x545b ++ TIOCSERSWILD = 0x5455 ++ TIOCSER_TEMT = 0x1 ++ TIOCSETD = 0x5423 ++ TIOCSIG = 0x40045436 ++ TIOCSLCKTRMIOS = 0x5457 ++ TIOCSPGRP = 0x5410 ++ TIOCSPTLCK = 0x40045431 ++ TIOCSRS485 = 0x542f ++ TIOCSSERIAL = 0x541f ++ TIOCSSOFTCAR = 0x541a ++ TIOCSTI = 0x5412 ++ TIOCSWINSZ = 0x5414 ++ TIOCVHANGUP = 0x5437 ++ TOSTOP = 0x100 ++ TUNATTACHFILTER = 0x401054d5 ++ TUNDETACHFILTER = 0x401054d6 ++ TUNGETFEATURES = 0x800454cf ++ TUNGETFILTER = 0x801054db ++ TUNGETIFF = 0x800454d2 ++ TUNGETSNDBUF = 0x800454d3 ++ TUNGETVNETBE = 0x800454df ++ TUNGETVNETHDRSZ = 0x800454d7 ++ TUNGETVNETLE = 0x800454dd ++ TUNSETDEBUG = 0x400454c9 ++ TUNSETGROUP = 0x400454ce ++ TUNSETIFF = 0x400454ca ++ TUNSETIFINDEX = 0x400454da ++ TUNSETLINK = 0x400454cd ++ TUNSETNOCSUM = 0x400454c8 ++ TUNSETOFFLOAD = 0x400454d0 ++ TUNSETOWNER = 0x400454cc ++ TUNSETPERSIST = 0x400454cb ++ TUNSETQUEUE = 0x400454d9 ++ TUNSETSNDBUF = 0x400454d4 ++ TUNSETTXFILTER = 0x400454d1 ++ TUNSETVNETBE = 0x400454de ++ TUNSETVNETHDRSZ = 0x400454d8 ++ TUNSETVNETLE = 0x400454dc ++ VDISCARD = 0xd ++ VEOF = 0x4 ++ VEOL = 0xb ++ VEOL2 = 0x10 ++ VERASE = 0x2 ++ VINTR = 0x0 ++ VKILL = 0x3 ++ VLNEXT = 0xf ++ VMADDR_CID_ANY = 0xffffffff ++ VMADDR_CID_HOST = 0x2 ++ VMADDR_CID_HYPERVISOR = 0x0 ++ VMADDR_CID_RESERVED = 0x1 ++ VMADDR_PORT_ANY = 0xffffffff ++ VMIN = 0x6 ++ VQUIT = 0x1 ++ VREPRINT = 0xc ++ VSTART = 0x8 ++ VSTOP = 0x9 ++ VSUSP = 0xa ++ VSWTC = 0x7 ++ VT0 = 0x0 ++ VT1 = 0x4000 ++ VTDLY = 0x4000 ++ VTIME = 0x5 ++ VWERASE = 0xe ++ WALL = 0x40000000 ++ WCLONE = 0x80000000 ++ WCONTINUED = 0x8 ++ WEXITED = 0x4 ++ WNOHANG = 0x1 ++ WNOTHREAD = 0x20000000 ++ WNOWAIT = 0x1000000 ++ WORDSIZE = 0x40 ++ WSTOPPED = 0x2 ++ WUNTRACED = 0x2 ++ XCASE = 0x4 ++ XTABS = 0x1800 ++) ++ ++// Errors ++const ( ++ E2BIG = syscall.Errno(0x7) ++ EACCES = syscall.Errno(0xd) ++ EADDRINUSE = syscall.Errno(0x62) ++ EADDRNOTAVAIL = syscall.Errno(0x63) ++ EADV = syscall.Errno(0x44) ++ EAFNOSUPPORT = syscall.Errno(0x61) ++ EAGAIN = syscall.Errno(0xb) ++ EALREADY = syscall.Errno(0x72) ++ EBADE = syscall.Errno(0x34) ++ EBADF = syscall.Errno(0x9) ++ EBADFD = syscall.Errno(0x4d) ++ EBADMSG = syscall.Errno(0x4a) ++ EBADR = syscall.Errno(0x35) ++ EBADRQC = syscall.Errno(0x38) ++ EBADSLT = syscall.Errno(0x39) ++ EBFONT = syscall.Errno(0x3b) ++ EBUSY = syscall.Errno(0x10) ++ ECANCELED = syscall.Errno(0x7d) ++ ECHILD = syscall.Errno(0xa) ++ ECHRNG = syscall.Errno(0x2c) ++ ECOMM = syscall.Errno(0x46) ++ ECONNABORTED = syscall.Errno(0x67) ++ ECONNREFUSED = syscall.Errno(0x6f) ++ ECONNRESET = syscall.Errno(0x68) ++ EDEADLK = syscall.Errno(0x23) ++ EDEADLOCK = syscall.Errno(0x23) ++ EDESTADDRREQ = syscall.Errno(0x59) ++ EDOM = syscall.Errno(0x21) ++ EDOTDOT = syscall.Errno(0x49) ++ EDQUOT = syscall.Errno(0x7a) ++ EEXIST = syscall.Errno(0x11) ++ EFAULT = syscall.Errno(0xe) ++ EFBIG = syscall.Errno(0x1b) ++ EHOSTDOWN = syscall.Errno(0x70) ++ EHOSTUNREACH = syscall.Errno(0x71) ++ EHWPOISON = syscall.Errno(0x85) ++ EIDRM = syscall.Errno(0x2b) ++ EILSEQ = syscall.Errno(0x54) ++ EINPROGRESS = syscall.Errno(0x73) ++ EINTR = syscall.Errno(0x4) ++ EINVAL = syscall.Errno(0x16) ++ EIO = syscall.Errno(0x5) ++ EISCONN = syscall.Errno(0x6a) ++ EISDIR = syscall.Errno(0x15) ++ EISNAM = syscall.Errno(0x78) ++ EKEYEXPIRED = syscall.Errno(0x7f) ++ EKEYREJECTED = syscall.Errno(0x81) ++ EKEYREVOKED = syscall.Errno(0x80) ++ EL2HLT = syscall.Errno(0x33) ++ EL2NSYNC = syscall.Errno(0x2d) ++ EL3HLT = syscall.Errno(0x2e) ++ EL3RST = syscall.Errno(0x2f) ++ ELIBACC = syscall.Errno(0x4f) ++ ELIBBAD = syscall.Errno(0x50) ++ ELIBEXEC = syscall.Errno(0x53) ++ ELIBMAX = syscall.Errno(0x52) ++ ELIBSCN = syscall.Errno(0x51) ++ ELNRNG = syscall.Errno(0x30) ++ ELOOP = syscall.Errno(0x28) ++ EMEDIUMTYPE = syscall.Errno(0x7c) ++ EMFILE = syscall.Errno(0x18) ++ EMLINK = syscall.Errno(0x1f) ++ EMSGSIZE = syscall.Errno(0x5a) ++ EMULTIHOP = syscall.Errno(0x48) ++ ENAMETOOLONG = syscall.Errno(0x24) ++ ENAVAIL = syscall.Errno(0x77) ++ ENETDOWN = syscall.Errno(0x64) ++ ENETRESET = syscall.Errno(0x66) ++ ENETUNREACH = syscall.Errno(0x65) ++ ENFILE = syscall.Errno(0x17) ++ ENOANO = syscall.Errno(0x37) ++ ENOBUFS = syscall.Errno(0x69) ++ ENOCSI = syscall.Errno(0x32) ++ ENODATA = syscall.Errno(0x3d) ++ ENODEV = syscall.Errno(0x13) ++ ENOENT = syscall.Errno(0x2) ++ ENOEXEC = syscall.Errno(0x8) ++ ENOKEY = syscall.Errno(0x7e) ++ ENOLCK = syscall.Errno(0x25) ++ ENOLINK = syscall.Errno(0x43) ++ ENOMEDIUM = syscall.Errno(0x7b) ++ ENOMEM = syscall.Errno(0xc) ++ ENOMSG = syscall.Errno(0x2a) ++ ENONET = syscall.Errno(0x40) ++ ENOPKG = syscall.Errno(0x41) ++ ENOPROTOOPT = syscall.Errno(0x5c) ++ ENOSPC = syscall.Errno(0x1c) ++ ENOSR = syscall.Errno(0x3f) ++ ENOSTR = syscall.Errno(0x3c) ++ ENOSYS = syscall.Errno(0x26) ++ ENOTBLK = syscall.Errno(0xf) ++ ENOTCONN = syscall.Errno(0x6b) ++ ENOTDIR = syscall.Errno(0x14) ++ ENOTEMPTY = syscall.Errno(0x27) ++ ENOTNAM = syscall.Errno(0x76) ++ ENOTRECOVERABLE = syscall.Errno(0x83) ++ ENOTSOCK = syscall.Errno(0x58) ++ ENOTSUP = syscall.Errno(0x5f) ++ ENOTTY = syscall.Errno(0x19) ++ ENOTUNIQ = syscall.Errno(0x4c) ++ ENXIO = syscall.Errno(0x6) ++ EOPNOTSUPP = syscall.Errno(0x5f) ++ EOVERFLOW = syscall.Errno(0x4b) ++ EOWNERDEAD = syscall.Errno(0x82) ++ EPERM = syscall.Errno(0x1) ++ EPFNOSUPPORT = syscall.Errno(0x60) ++ EPIPE = syscall.Errno(0x20) ++ EPROTO = syscall.Errno(0x47) ++ EPROTONOSUPPORT = syscall.Errno(0x5d) ++ EPROTOTYPE = syscall.Errno(0x5b) ++ ERANGE = syscall.Errno(0x22) ++ EREMCHG = syscall.Errno(0x4e) ++ EREMOTE = syscall.Errno(0x42) ++ EREMOTEIO = syscall.Errno(0x79) ++ ERESTART = syscall.Errno(0x55) ++ ERFKILL = syscall.Errno(0x84) ++ EROFS = syscall.Errno(0x1e) ++ ESHUTDOWN = syscall.Errno(0x6c) ++ ESOCKTNOSUPPORT = syscall.Errno(0x5e) ++ ESPIPE = syscall.Errno(0x1d) ++ ESRCH = syscall.Errno(0x3) ++ ESRMNT = syscall.Errno(0x45) ++ ESTALE = syscall.Errno(0x74) ++ ESTRPIPE = syscall.Errno(0x56) ++ ETIME = syscall.Errno(0x3e) ++ ETIMEDOUT = syscall.Errno(0x6e) ++ ETOOMANYREFS = syscall.Errno(0x6d) ++ ETXTBSY = syscall.Errno(0x1a) ++ EUCLEAN = syscall.Errno(0x75) ++ EUNATCH = syscall.Errno(0x31) ++ EUSERS = syscall.Errno(0x57) ++ EWOULDBLOCK = syscall.Errno(0xb) ++ EXDEV = syscall.Errno(0x12) ++ EXFULL = syscall.Errno(0x36) ++) ++ ++// Signals ++const ( ++ SIGABRT = syscall.Signal(0x6) ++ SIGALRM = syscall.Signal(0xe) ++ SIGBUS = syscall.Signal(0x7) ++ SIGCHLD = syscall.Signal(0x11) ++ SIGCLD = syscall.Signal(0x11) ++ SIGCONT = syscall.Signal(0x12) ++ SIGFPE = syscall.Signal(0x8) ++ SIGHUP = syscall.Signal(0x1) ++ SIGILL = syscall.Signal(0x4) ++ SIGINT = syscall.Signal(0x2) ++ SIGIO = syscall.Signal(0x1d) ++ SIGIOT = syscall.Signal(0x6) ++ SIGKILL = syscall.Signal(0x9) ++ SIGPIPE = syscall.Signal(0xd) ++ SIGPOLL = syscall.Signal(0x1d) ++ SIGPROF = syscall.Signal(0x1b) ++ SIGPWR = syscall.Signal(0x1e) ++ SIGQUIT = syscall.Signal(0x3) ++ SIGSEGV = syscall.Signal(0xb) ++ SIGSTKFLT = syscall.Signal(0x10) ++ SIGSTOP = syscall.Signal(0x13) ++ SIGSYS = syscall.Signal(0x1f) ++ SIGTERM = syscall.Signal(0xf) ++ SIGTRAP = syscall.Signal(0x5) ++ SIGTSTP = syscall.Signal(0x14) ++ SIGTTIN = syscall.Signal(0x15) ++ SIGTTOU = syscall.Signal(0x16) ++ SIGUNUSED = syscall.Signal(0x1f) ++ SIGURG = syscall.Signal(0x17) ++ SIGUSR1 = syscall.Signal(0xa) ++ SIGUSR2 = syscall.Signal(0xc) ++ SIGVTALRM = syscall.Signal(0x1a) ++ SIGWINCH = syscall.Signal(0x1c) ++ SIGXCPU = syscall.Signal(0x18) ++ SIGXFSZ = syscall.Signal(0x19) ++) ++ ++// Error table ++var errors = [...]string{ ++ 1: "operation not permitted", ++ 2: "no such file or directory", ++ 3: "no such process", ++ 4: "interrupted system call", ++ 5: "input/output error", ++ 6: "no such device or address", ++ 7: "argument list too long", ++ 8: "exec format error", ++ 9: "bad file descriptor", ++ 10: "no child processes", ++ 11: "resource temporarily unavailable", ++ 12: "cannot allocate memory", ++ 13: "permission denied", ++ 14: "bad address", ++ 15: "block device required", ++ 16: "device or resource busy", ++ 17: "file exists", ++ 18: "invalid cross-device link", ++ 19: "no such device", ++ 20: "not a directory", ++ 21: "is a directory", ++ 22: "invalid argument", ++ 23: "too many open files in system", ++ 24: "too many open files", ++ 25: "inappropriate ioctl for device", ++ 26: "text file busy", ++ 27: "file too large", ++ 28: "no space left on device", ++ 29: "illegal seek", ++ 30: "read-only file system", ++ 31: "too many links", ++ 32: "broken pipe", ++ 33: "numerical argument out of domain", ++ 34: "numerical result out of range", ++ 35: "resource deadlock avoided", ++ 36: "file name too long", ++ 37: "no locks available", ++ 38: "function not implemented", ++ 39: "directory not empty", ++ 40: "too many levels of symbolic links", ++ 42: "no message of desired type", ++ 43: "identifier removed", ++ 44: "channel number out of range", ++ 45: "level 2 not synchronized", ++ 46: "level 3 halted", ++ 47: "level 3 reset", ++ 48: "link number out of range", ++ 49: "protocol driver not attached", ++ 50: "no CSI structure available", ++ 51: "level 2 halted", ++ 52: "invalid exchange", ++ 53: "invalid request descriptor", ++ 54: "exchange full", ++ 55: "no anode", ++ 56: "invalid request code", ++ 57: "invalid slot", ++ 59: "bad font file format", ++ 60: "device not a stream", ++ 61: "no data available", ++ 62: "timer expired", ++ 63: "out of streams resources", ++ 64: "machine is not on the network", ++ 65: "package not installed", ++ 66: "object is remote", ++ 67: "link has been severed", ++ 68: "advertise error", ++ 69: "srmount error", ++ 70: "communication error on send", ++ 71: "protocol error", ++ 72: "multihop attempted", ++ 73: "RFS specific error", ++ 74: "bad message", ++ 75: "value too large for defined data type", ++ 76: "name not unique on network", ++ 77: "file descriptor in bad state", ++ 78: "remote address changed", ++ 79: "can not access a needed shared library", ++ 80: "accessing a corrupted shared library", ++ 81: ".lib section in a.out corrupted", ++ 82: "attempting to link in too many shared libraries", ++ 83: "cannot exec a shared library directly", ++ 84: "invalid or incomplete multibyte or wide character", ++ 85: "interrupted system call should be restarted", ++ 86: "streams pipe error", ++ 87: "too many users", ++ 88: "socket operation on non-socket", ++ 89: "destination address required", ++ 90: "message too long", ++ 91: "protocol wrong type for socket", ++ 92: "protocol not available", ++ 93: "protocol not supported", ++ 94: "socket type not supported", ++ 95: "operation not supported", ++ 96: "protocol family not supported", ++ 97: "address family not supported by protocol", ++ 98: "address already in use", ++ 99: "cannot assign requested address", ++ 100: "network is down", ++ 101: "network is unreachable", ++ 102: "network dropped connection on reset", ++ 103: "software caused connection abort", ++ 104: "connection reset by peer", ++ 105: "no buffer space available", ++ 106: "transport endpoint is already connected", ++ 107: "transport endpoint is not connected", ++ 108: "cannot send after transport endpoint shutdown", ++ 109: "too many references: cannot splice", ++ 110: "connection timed out", ++ 111: "connection refused", ++ 112: "host is down", ++ 113: "no route to host", ++ 114: "operation already in progress", ++ 115: "operation now in progress", ++ 116: "stale file handle", ++ 117: "structure needs cleaning", ++ 118: "not a XENIX named type file", ++ 119: "no XENIX semaphores available", ++ 120: "is a named type file", ++ 121: "remote I/O error", ++ 122: "disk quota exceeded", ++ 123: "no medium found", ++ 124: "wrong medium type", ++ 125: "operation canceled", ++ 126: "required key not available", ++ 127: "key has expired", ++ 128: "key has been revoked", ++ 129: "key was rejected by service", ++ 130: "owner died", ++ 131: "state not recoverable", ++ 132: "operation not possible due to RF-kill", ++ 133: "memory page has hardware error", ++} ++ ++// Signal table ++var signals = [...]string{ ++ 1: "hangup", ++ 2: "interrupt", ++ 3: "quit", ++ 4: "illegal instruction", ++ 5: "trace/breakpoint trap", ++ 6: "aborted", ++ 7: "bus error", ++ 8: "floating point exception", ++ 9: "killed", ++ 10: "user defined signal 1", ++ 11: "segmentation fault", ++ 12: "user defined signal 2", ++ 13: "broken pipe", ++ 14: "alarm clock", ++ 15: "terminated", ++ 16: "stack fault", ++ 17: "child exited", ++ 18: "continued", ++ 19: "stopped (signal)", ++ 20: "stopped", ++ 21: "stopped (tty input)", ++ 22: "stopped (tty output)", ++ 23: "urgent I/O condition", ++ 24: "CPU time limit exceeded", ++ 25: "file size limit exceeded", ++ 26: "virtual timer expired", ++ 27: "profiling timer expired", ++ 28: "window changed", ++ 29: "I/O possible", ++ 30: "power failure", ++ 31: "bad system call", ++} +diff --git a/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +new file mode 100644 +index 0000000..95de199 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +@@ -0,0 +1,2142 @@ ++// mkerrors.sh -m64 ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build sparc64,linux ++ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- -m64 _const.go ++ ++package unix ++ ++import "syscall" ++ ++const ( ++ AF_ALG = 0x26 ++ AF_APPLETALK = 0x5 ++ AF_ASH = 0x12 ++ AF_ATMPVC = 0x8 ++ AF_ATMSVC = 0x14 ++ AF_AX25 = 0x3 ++ AF_BLUETOOTH = 0x1f ++ AF_BRIDGE = 0x7 ++ AF_CAIF = 0x25 ++ AF_CAN = 0x1d ++ AF_DECnet = 0xc ++ AF_ECONET = 0x13 ++ AF_FILE = 0x1 ++ AF_IB = 0x1b ++ AF_IEEE802154 = 0x24 ++ AF_INET = 0x2 ++ AF_INET6 = 0xa ++ AF_IPX = 0x4 ++ AF_IRDA = 0x17 ++ AF_ISDN = 0x22 ++ AF_IUCV = 0x20 ++ AF_KCM = 0x29 ++ AF_KEY = 0xf ++ AF_LLC = 0x1a ++ AF_LOCAL = 0x1 ++ AF_MAX = 0x2a ++ AF_MPLS = 0x1c ++ AF_NETBEUI = 0xd ++ AF_NETLINK = 0x10 ++ AF_NETROM = 0x6 ++ AF_NFC = 0x27 ++ AF_PACKET = 0x11 ++ AF_PHONET = 0x23 ++ AF_PPPOX = 0x18 ++ AF_RDS = 0x15 ++ AF_ROSE = 0xb ++ AF_ROUTE = 0x10 ++ AF_RXRPC = 0x21 ++ AF_SECURITY = 0xe ++ AF_SNA = 0x16 ++ AF_TIPC = 0x1e ++ AF_UNIX = 0x1 ++ AF_UNSPEC = 0x0 ++ AF_VSOCK = 0x28 ++ AF_WANPIPE = 0x19 ++ AF_X25 = 0x9 ++ ALG_OP_DECRYPT = 0x0 ++ ALG_OP_ENCRYPT = 0x1 ++ ALG_SET_AEAD_ASSOCLEN = 0x4 ++ ALG_SET_AEAD_AUTHSIZE = 0x5 ++ ALG_SET_IV = 0x2 ++ ALG_SET_KEY = 0x1 ++ ALG_SET_OP = 0x3 ++ ARPHRD_6LOWPAN = 0x339 ++ ARPHRD_ADAPT = 0x108 ++ ARPHRD_APPLETLK = 0x8 ++ ARPHRD_ARCNET = 0x7 ++ ARPHRD_ASH = 0x30d ++ ARPHRD_ATM = 0x13 ++ ARPHRD_AX25 = 0x3 ++ ARPHRD_BIF = 0x307 ++ ARPHRD_CAIF = 0x336 ++ ARPHRD_CAN = 0x118 ++ ARPHRD_CHAOS = 0x5 ++ ARPHRD_CISCO = 0x201 ++ ARPHRD_CSLIP = 0x101 ++ ARPHRD_CSLIP6 = 0x103 ++ ARPHRD_DDCMP = 0x205 ++ ARPHRD_DLCI = 0xf ++ ARPHRD_ECONET = 0x30e ++ ARPHRD_EETHER = 0x2 ++ ARPHRD_ETHER = 0x1 ++ ARPHRD_EUI64 = 0x1b ++ ARPHRD_FCAL = 0x311 ++ ARPHRD_FCFABRIC = 0x313 ++ ARPHRD_FCPL = 0x312 ++ ARPHRD_FCPP = 0x310 ++ ARPHRD_FDDI = 0x306 ++ ARPHRD_FRAD = 0x302 ++ ARPHRD_HDLC = 0x201 ++ ARPHRD_HIPPI = 0x30c ++ ARPHRD_HWX25 = 0x110 ++ ARPHRD_IEEE1394 = 0x18 ++ ARPHRD_IEEE802 = 0x6 ++ ARPHRD_IEEE80211 = 0x321 ++ ARPHRD_IEEE80211_PRISM = 0x322 ++ ARPHRD_IEEE80211_RADIOTAP = 0x323 ++ ARPHRD_IEEE802154 = 0x324 ++ ARPHRD_IEEE802154_MONITOR = 0x325 ++ ARPHRD_IEEE802_TR = 0x320 ++ ARPHRD_INFINIBAND = 0x20 ++ ARPHRD_IP6GRE = 0x337 ++ ARPHRD_IPDDP = 0x309 ++ ARPHRD_IPGRE = 0x30a ++ ARPHRD_IRDA = 0x30f ++ ARPHRD_LAPB = 0x204 ++ ARPHRD_LOCALTLK = 0x305 ++ ARPHRD_LOOPBACK = 0x304 ++ ARPHRD_METRICOM = 0x17 ++ ARPHRD_NETLINK = 0x338 ++ ARPHRD_NETROM = 0x0 ++ ARPHRD_NONE = 0xfffe ++ ARPHRD_PHONET = 0x334 ++ ARPHRD_PHONET_PIPE = 0x335 ++ ARPHRD_PIMREG = 0x30b ++ ARPHRD_PPP = 0x200 ++ ARPHRD_PRONET = 0x4 ++ ARPHRD_RAWHDLC = 0x206 ++ ARPHRD_ROSE = 0x10e ++ ARPHRD_RSRVD = 0x104 ++ ARPHRD_SIT = 0x308 ++ ARPHRD_SKIP = 0x303 ++ ARPHRD_SLIP = 0x100 ++ ARPHRD_SLIP6 = 0x102 ++ ARPHRD_TUNNEL = 0x300 ++ ARPHRD_TUNNEL6 = 0x301 ++ ARPHRD_VOID = 0xffff ++ ARPHRD_X25 = 0x10f ++ ASI_LEON_DFLUSH = 0x11 ++ ASI_LEON_IFLUSH = 0x10 ++ ASI_LEON_MMUFLUSH = 0x18 ++ B0 = 0x0 ++ B1000000 = 0x100c ++ B110 = 0x3 ++ B115200 = 0x1002 ++ B1152000 = 0x100d ++ B1200 = 0x9 ++ B134 = 0x4 ++ B150 = 0x5 ++ B1500000 = 0x100e ++ B153600 = 0x1006 ++ B1800 = 0xa ++ B19200 = 0xe ++ B200 = 0x6 ++ B2000000 = 0x100f ++ B230400 = 0x1003 ++ B2400 = 0xb ++ B300 = 0x7 ++ B307200 = 0x1007 ++ B38400 = 0xf ++ B460800 = 0x1004 ++ B4800 = 0xc ++ B50 = 0x1 ++ B500000 = 0x100a ++ B57600 = 0x1001 ++ B576000 = 0x100b ++ B600 = 0x8 ++ B614400 = 0x1008 ++ B75 = 0x2 ++ B76800 = 0x1005 ++ B921600 = 0x1009 ++ B9600 = 0xd ++ BLKBSZGET = 0x80081270 ++ BLKBSZSET = 0x40081271 ++ BLKFLSBUF = 0x1261 ++ BLKFRAGET = 0x1265 ++ BLKFRASET = 0x1264 ++ BLKGETSIZE = 0x1260 ++ BLKGETSIZE64 = 0x80081272 ++ BLKRAGET = 0x1263 ++ BLKRASET = 0x1262 ++ BLKROGET = 0x125e ++ BLKROSET = 0x125d ++ BLKRRPART = 0x125f ++ BLKSECTGET = 0x1267 ++ BLKSECTSET = 0x1266 ++ BLKSSZGET = 0x1268 ++ BOTHER = 0x1000 ++ BPF_A = 0x10 ++ BPF_ABS = 0x20 ++ BPF_ADD = 0x0 ++ BPF_ALU = 0x4 ++ BPF_AND = 0x50 ++ BPF_B = 0x10 ++ BPF_DIV = 0x30 ++ BPF_H = 0x8 ++ BPF_IMM = 0x0 ++ BPF_IND = 0x40 ++ BPF_JA = 0x0 ++ BPF_JEQ = 0x10 ++ BPF_JGE = 0x30 ++ BPF_JGT = 0x20 ++ BPF_JMP = 0x5 ++ BPF_JSET = 0x40 ++ BPF_K = 0x0 ++ BPF_LD = 0x0 ++ BPF_LDX = 0x1 ++ BPF_LEN = 0x80 ++ BPF_LL_OFF = -0x200000 ++ BPF_LSH = 0x60 ++ BPF_MAJOR_VERSION = 0x1 ++ BPF_MAXINSNS = 0x1000 ++ BPF_MEM = 0x60 ++ BPF_MEMWORDS = 0x10 ++ BPF_MINOR_VERSION = 0x1 ++ BPF_MISC = 0x7 ++ BPF_MOD = 0x90 ++ BPF_MSH = 0xa0 ++ BPF_MUL = 0x20 ++ BPF_NEG = 0x80 ++ BPF_NET_OFF = -0x100000 ++ BPF_OR = 0x40 ++ BPF_RET = 0x6 ++ BPF_RSH = 0x70 ++ BPF_ST = 0x2 ++ BPF_STX = 0x3 ++ BPF_SUB = 0x10 ++ BPF_TAX = 0x0 ++ BPF_TXA = 0x80 ++ BPF_W = 0x0 ++ BPF_X = 0x8 ++ BPF_XOR = 0xa0 ++ BRKINT = 0x2 ++ BS0 = 0x0 ++ BS1 = 0x2000 ++ BSDLY = 0x2000 ++ CAN_BCM = 0x2 ++ CAN_EFF_FLAG = 0x80000000 ++ CAN_EFF_ID_BITS = 0x1d ++ CAN_EFF_MASK = 0x1fffffff ++ CAN_ERR_FLAG = 0x20000000 ++ CAN_ERR_MASK = 0x1fffffff ++ CAN_INV_FILTER = 0x20000000 ++ CAN_ISOTP = 0x6 ++ CAN_MAX_DLC = 0x8 ++ CAN_MAX_DLEN = 0x8 ++ CAN_MCNET = 0x5 ++ CAN_MTU = 0x10 ++ CAN_NPROTO = 0x7 ++ CAN_RAW = 0x1 ++ CAN_RTR_FLAG = 0x40000000 ++ CAN_SFF_ID_BITS = 0xb ++ CAN_SFF_MASK = 0x7ff ++ CAN_TP16 = 0x3 ++ CAN_TP20 = 0x4 ++ CBAUD = 0x100f ++ CBAUDEX = 0x1000 ++ CFLUSH = 0xf ++ CIBAUD = 0x100f0000 ++ CLOCAL = 0x800 ++ CLOCK_BOOTTIME = 0x7 ++ CLOCK_BOOTTIME_ALARM = 0x9 ++ CLOCK_DEFAULT = 0x0 ++ CLOCK_EXT = 0x1 ++ CLOCK_INT = 0x2 ++ CLOCK_MONOTONIC = 0x1 ++ CLOCK_MONOTONIC_COARSE = 0x6 ++ CLOCK_MONOTONIC_RAW = 0x4 ++ CLOCK_PROCESS_CPUTIME_ID = 0x2 ++ CLOCK_REALTIME = 0x0 ++ CLOCK_REALTIME_ALARM = 0x8 ++ CLOCK_REALTIME_COARSE = 0x5 ++ CLOCK_TAI = 0xb ++ CLOCK_THREAD_CPUTIME_ID = 0x3 ++ CLOCK_TXFROMRX = 0x4 ++ CLOCK_TXINT = 0x3 ++ CLONE_CHILD_CLEARTID = 0x200000 ++ CLONE_CHILD_SETTID = 0x1000000 ++ CLONE_DETACHED = 0x400000 ++ CLONE_FILES = 0x400 ++ CLONE_FS = 0x200 ++ CLONE_IO = 0x80000000 ++ CLONE_NEWCGROUP = 0x2000000 ++ CLONE_NEWIPC = 0x8000000 ++ CLONE_NEWNET = 0x40000000 ++ CLONE_NEWNS = 0x20000 ++ CLONE_NEWPID = 0x20000000 ++ CLONE_NEWUSER = 0x10000000 ++ CLONE_NEWUTS = 0x4000000 ++ CLONE_PARENT = 0x8000 ++ CLONE_PARENT_SETTID = 0x100000 ++ CLONE_PTRACE = 0x2000 ++ CLONE_SETTLS = 0x80000 ++ CLONE_SIGHAND = 0x800 ++ CLONE_SYSVSEM = 0x40000 ++ CLONE_THREAD = 0x10000 ++ CLONE_UNTRACED = 0x800000 ++ CLONE_VFORK = 0x4000 ++ CLONE_VM = 0x100 ++ CMSPAR = 0x40000000 ++ CR0 = 0x0 ++ CR1 = 0x200 ++ CR2 = 0x400 ++ CR3 = 0x600 ++ CRDLY = 0x600 ++ CREAD = 0x80 ++ CRTSCTS = 0x80000000 ++ CS5 = 0x0 ++ CS6 = 0x10 ++ CS7 = 0x20 ++ CS8 = 0x30 ++ CSIGNAL = 0xff ++ CSIZE = 0x30 ++ CSTART = 0x11 ++ CSTATUS = 0x0 ++ CSTOP = 0x13 ++ CSTOPB = 0x40 ++ CSUSP = 0x1a ++ DT_BLK = 0x6 ++ DT_CHR = 0x2 ++ DT_DIR = 0x4 ++ DT_FIFO = 0x1 ++ DT_LNK = 0xa ++ DT_REG = 0x8 ++ DT_SOCK = 0xc ++ DT_UNKNOWN = 0x0 ++ DT_WHT = 0xe ++ ECHO = 0x8 ++ ECHOCTL = 0x200 ++ ECHOE = 0x10 ++ ECHOK = 0x20 ++ ECHOKE = 0x800 ++ ECHONL = 0x40 ++ ECHOPRT = 0x400 ++ EMT_TAGOVF = 0x1 ++ ENCODING_DEFAULT = 0x0 ++ ENCODING_FM_MARK = 0x3 ++ ENCODING_FM_SPACE = 0x4 ++ ENCODING_MANCHESTER = 0x5 ++ ENCODING_NRZ = 0x1 ++ ENCODING_NRZI = 0x2 ++ EPOLLERR = 0x8 ++ EPOLLET = 0x80000000 ++ EPOLLEXCLUSIVE = 0x10000000 ++ EPOLLHUP = 0x10 ++ EPOLLIN = 0x1 ++ EPOLLMSG = 0x400 ++ EPOLLONESHOT = 0x40000000 ++ EPOLLOUT = 0x4 ++ EPOLLPRI = 0x2 ++ EPOLLRDBAND = 0x80 ++ EPOLLRDHUP = 0x2000 ++ EPOLLRDNORM = 0x40 ++ EPOLLWAKEUP = 0x20000000 ++ EPOLLWRBAND = 0x200 ++ EPOLLWRNORM = 0x100 ++ EPOLL_CLOEXEC = 0x400000 ++ EPOLL_CTL_ADD = 0x1 ++ EPOLL_CTL_DEL = 0x2 ++ EPOLL_CTL_MOD = 0x3 ++ ETH_P_1588 = 0x88f7 ++ ETH_P_8021AD = 0x88a8 ++ ETH_P_8021AH = 0x88e7 ++ ETH_P_8021Q = 0x8100 ++ ETH_P_80221 = 0x8917 ++ ETH_P_802_2 = 0x4 ++ ETH_P_802_3 = 0x1 ++ ETH_P_802_3_MIN = 0x600 ++ ETH_P_802_EX1 = 0x88b5 ++ ETH_P_AARP = 0x80f3 ++ ETH_P_AF_IUCV = 0xfbfb ++ ETH_P_ALL = 0x3 ++ ETH_P_AOE = 0x88a2 ++ ETH_P_ARCNET = 0x1a ++ ETH_P_ARP = 0x806 ++ ETH_P_ATALK = 0x809b ++ ETH_P_ATMFATE = 0x8884 ++ ETH_P_ATMMPOA = 0x884c ++ ETH_P_AX25 = 0x2 ++ ETH_P_BATMAN = 0x4305 ++ ETH_P_BPQ = 0x8ff ++ ETH_P_CAIF = 0xf7 ++ ETH_P_CAN = 0xc ++ ETH_P_CANFD = 0xd ++ ETH_P_CONTROL = 0x16 ++ ETH_P_CUST = 0x6006 ++ ETH_P_DDCMP = 0x6 ++ ETH_P_DEC = 0x6000 ++ ETH_P_DIAG = 0x6005 ++ ETH_P_DNA_DL = 0x6001 ++ ETH_P_DNA_RC = 0x6002 ++ ETH_P_DNA_RT = 0x6003 ++ ETH_P_DSA = 0x1b ++ ETH_P_ECONET = 0x18 ++ ETH_P_EDSA = 0xdada ++ ETH_P_FCOE = 0x8906 ++ ETH_P_FIP = 0x8914 ++ ETH_P_HDLC = 0x19 ++ ETH_P_HSR = 0x892f ++ ETH_P_IEEE802154 = 0xf6 ++ ETH_P_IEEEPUP = 0xa00 ++ ETH_P_IEEEPUPAT = 0xa01 ++ ETH_P_IP = 0x800 ++ ETH_P_IPV6 = 0x86dd ++ ETH_P_IPX = 0x8137 ++ ETH_P_IRDA = 0x17 ++ ETH_P_LAT = 0x6004 ++ ETH_P_LINK_CTL = 0x886c ++ ETH_P_LOCALTALK = 0x9 ++ ETH_P_LOOP = 0x60 ++ ETH_P_LOOPBACK = 0x9000 ++ ETH_P_MACSEC = 0x88e5 ++ ETH_P_MOBITEX = 0x15 ++ ETH_P_MPLS_MC = 0x8848 ++ ETH_P_MPLS_UC = 0x8847 ++ ETH_P_MVRP = 0x88f5 ++ ETH_P_PAE = 0x888e ++ ETH_P_PAUSE = 0x8808 ++ ETH_P_PHONET = 0xf5 ++ ETH_P_PPPTALK = 0x10 ++ ETH_P_PPP_DISC = 0x8863 ++ ETH_P_PPP_MP = 0x8 ++ ETH_P_PPP_SES = 0x8864 ++ ETH_P_PRP = 0x88fb ++ ETH_P_PUP = 0x200 ++ ETH_P_PUPAT = 0x201 ++ ETH_P_QINQ1 = 0x9100 ++ ETH_P_QINQ2 = 0x9200 ++ ETH_P_QINQ3 = 0x9300 ++ ETH_P_RARP = 0x8035 ++ ETH_P_SCA = 0x6007 ++ ETH_P_SLOW = 0x8809 ++ ETH_P_SNAP = 0x5 ++ ETH_P_TDLS = 0x890d ++ ETH_P_TEB = 0x6558 ++ ETH_P_TIPC = 0x88ca ++ ETH_P_TRAILER = 0x1c ++ ETH_P_TR_802_2 = 0x11 ++ ETH_P_TSN = 0x22f0 ++ ETH_P_WAN_PPP = 0x7 ++ ETH_P_WCCP = 0x883e ++ ETH_P_X25 = 0x805 ++ ETH_P_XDSA = 0xf8 ++ EXTA = 0xe ++ EXTB = 0xf ++ EXTPROC = 0x10000 ++ FALLOC_FL_COLLAPSE_RANGE = 0x8 ++ FALLOC_FL_INSERT_RANGE = 0x20 ++ FALLOC_FL_KEEP_SIZE = 0x1 ++ FALLOC_FL_NO_HIDE_STALE = 0x4 ++ FALLOC_FL_PUNCH_HOLE = 0x2 ++ FALLOC_FL_ZERO_RANGE = 0x10 ++ FD_CLOEXEC = 0x1 ++ FD_SETSIZE = 0x400 ++ FF0 = 0x0 ++ FF1 = 0x8000 ++ FFDLY = 0x8000 ++ FLUSHO = 0x2000 ++ F_DUPFD = 0x0 ++ F_DUPFD_CLOEXEC = 0x406 ++ F_EXLCK = 0x4 ++ F_GETFD = 0x1 ++ F_GETFL = 0x3 ++ F_GETLEASE = 0x401 ++ F_GETLK = 0x7 ++ F_GETLK64 = 0x7 ++ F_GETOWN = 0x5 ++ F_GETOWN_EX = 0x10 ++ F_GETPIPE_SZ = 0x408 ++ F_GETSIG = 0xb ++ F_LOCK = 0x1 ++ F_NOTIFY = 0x402 ++ F_OFD_GETLK = 0x24 ++ F_OFD_SETLK = 0x25 ++ F_OFD_SETLKW = 0x26 ++ F_OK = 0x0 ++ F_RDLCK = 0x1 ++ F_SETFD = 0x2 ++ F_SETFL = 0x4 ++ F_SETLEASE = 0x400 ++ F_SETLK = 0x8 ++ F_SETLK64 = 0x8 ++ F_SETLKW = 0x9 ++ F_SETLKW64 = 0x9 ++ F_SETOWN = 0x6 ++ F_SETOWN_EX = 0xf ++ F_SETPIPE_SZ = 0x407 ++ F_SETSIG = 0xa ++ F_SHLCK = 0x8 ++ F_TEST = 0x3 ++ F_TLOCK = 0x2 ++ F_ULOCK = 0x0 ++ F_UNLCK = 0x3 ++ F_WRLCK = 0x2 ++ GRND_NONBLOCK = 0x1 ++ GRND_RANDOM = 0x2 ++ HUPCL = 0x400 ++ IBSHIFT = 0x10 ++ ICANON = 0x2 ++ ICMPV6_FILTER = 0x1 ++ ICRNL = 0x100 ++ IEXTEN = 0x8000 ++ IFA_F_DADFAILED = 0x8 ++ IFA_F_DEPRECATED = 0x20 ++ IFA_F_HOMEADDRESS = 0x10 ++ IFA_F_MANAGETEMPADDR = 0x100 ++ IFA_F_MCAUTOJOIN = 0x400 ++ IFA_F_NODAD = 0x2 ++ IFA_F_NOPREFIXROUTE = 0x200 ++ IFA_F_OPTIMISTIC = 0x4 ++ IFA_F_PERMANENT = 0x80 ++ IFA_F_SECONDARY = 0x1 ++ IFA_F_STABLE_PRIVACY = 0x800 ++ IFA_F_TEMPORARY = 0x1 ++ IFA_F_TENTATIVE = 0x40 ++ IFA_MAX = 0x8 ++ IFF_ALLMULTI = 0x200 ++ IFF_ATTACH_QUEUE = 0x200 ++ IFF_AUTOMEDIA = 0x4000 ++ IFF_BROADCAST = 0x2 ++ IFF_DEBUG = 0x4 ++ IFF_DETACH_QUEUE = 0x400 ++ IFF_DORMANT = 0x20000 ++ IFF_DYNAMIC = 0x8000 ++ IFF_ECHO = 0x40000 ++ IFF_LOOPBACK = 0x8 ++ IFF_LOWER_UP = 0x10000 ++ IFF_MASTER = 0x400 ++ IFF_MULTICAST = 0x1000 ++ IFF_MULTI_QUEUE = 0x100 ++ IFF_NOARP = 0x80 ++ IFF_NOFILTER = 0x1000 ++ IFF_NOTRAILERS = 0x20 ++ IFF_NO_PI = 0x1000 ++ IFF_ONE_QUEUE = 0x2000 ++ IFF_PERSIST = 0x800 ++ IFF_POINTOPOINT = 0x10 ++ IFF_PORTSEL = 0x2000 ++ IFF_PROMISC = 0x100 ++ IFF_RUNNING = 0x40 ++ IFF_SLAVE = 0x800 ++ IFF_TAP = 0x2 ++ IFF_TUN = 0x1 ++ IFF_TUN_EXCL = 0x8000 ++ IFF_UP = 0x1 ++ IFF_VNET_HDR = 0x4000 ++ IFF_VOLATILE = 0x70c5a ++ IFNAMSIZ = 0x10 ++ IGNBRK = 0x1 ++ IGNCR = 0x80 ++ IGNPAR = 0x4 ++ IMAXBEL = 0x2000 ++ INLCR = 0x40 ++ INPCK = 0x10 ++ IN_ACCESS = 0x1 ++ IN_ALL_EVENTS = 0xfff ++ IN_ATTRIB = 0x4 ++ IN_CLASSA_HOST = 0xffffff ++ IN_CLASSA_MAX = 0x80 ++ IN_CLASSA_NET = 0xff000000 ++ IN_CLASSA_NSHIFT = 0x18 ++ IN_CLASSB_HOST = 0xffff ++ IN_CLASSB_MAX = 0x10000 ++ IN_CLASSB_NET = 0xffff0000 ++ IN_CLASSB_NSHIFT = 0x10 ++ IN_CLASSC_HOST = 0xff ++ IN_CLASSC_NET = 0xffffff00 ++ IN_CLASSC_NSHIFT = 0x8 ++ IN_CLOEXEC = 0x400000 ++ IN_CLOSE = 0x18 ++ IN_CLOSE_NOWRITE = 0x10 ++ IN_CLOSE_WRITE = 0x8 ++ IN_CREATE = 0x100 ++ IN_DELETE = 0x200 ++ IN_DELETE_SELF = 0x400 ++ IN_DONT_FOLLOW = 0x2000000 ++ IN_EXCL_UNLINK = 0x4000000 ++ IN_IGNORED = 0x8000 ++ IN_ISDIR = 0x40000000 ++ IN_LOOPBACKNET = 0x7f ++ IN_MASK_ADD = 0x20000000 ++ IN_MODIFY = 0x2 ++ IN_MOVE = 0xc0 ++ IN_MOVED_FROM = 0x40 ++ IN_MOVED_TO = 0x80 ++ IN_MOVE_SELF = 0x800 ++ IN_NONBLOCK = 0x4000 ++ IN_ONESHOT = 0x80000000 ++ IN_ONLYDIR = 0x1000000 ++ IN_OPEN = 0x20 ++ IN_Q_OVERFLOW = 0x4000 ++ IN_UNMOUNT = 0x2000 ++ IPPROTO_AH = 0x33 ++ IPPROTO_BEETPH = 0x5e ++ IPPROTO_COMP = 0x6c ++ IPPROTO_DCCP = 0x21 ++ IPPROTO_DSTOPTS = 0x3c ++ IPPROTO_EGP = 0x8 ++ IPPROTO_ENCAP = 0x62 ++ IPPROTO_ESP = 0x32 ++ IPPROTO_FRAGMENT = 0x2c ++ IPPROTO_GRE = 0x2f ++ IPPROTO_HOPOPTS = 0x0 ++ IPPROTO_ICMP = 0x1 ++ IPPROTO_ICMPV6 = 0x3a ++ IPPROTO_IDP = 0x16 ++ IPPROTO_IGMP = 0x2 ++ IPPROTO_IP = 0x0 ++ IPPROTO_IPIP = 0x4 ++ IPPROTO_IPV6 = 0x29 ++ IPPROTO_MH = 0x87 ++ IPPROTO_MPLS = 0x89 ++ IPPROTO_MTP = 0x5c ++ IPPROTO_NONE = 0x3b ++ IPPROTO_PIM = 0x67 ++ IPPROTO_PUP = 0xc ++ IPPROTO_RAW = 0xff ++ IPPROTO_ROUTING = 0x2b ++ IPPROTO_RSVP = 0x2e ++ IPPROTO_SCTP = 0x84 ++ IPPROTO_TCP = 0x6 ++ IPPROTO_TP = 0x1d ++ IPPROTO_UDP = 0x11 ++ IPPROTO_UDPLITE = 0x88 ++ IPV6_2292DSTOPTS = 0x4 ++ IPV6_2292HOPLIMIT = 0x8 ++ IPV6_2292HOPOPTS = 0x3 ++ IPV6_2292PKTINFO = 0x2 ++ IPV6_2292PKTOPTIONS = 0x6 ++ IPV6_2292RTHDR = 0x5 ++ IPV6_ADDRFORM = 0x1 ++ IPV6_ADD_MEMBERSHIP = 0x14 ++ IPV6_AUTHHDR = 0xa ++ IPV6_CHECKSUM = 0x7 ++ IPV6_DONTFRAG = 0x3e ++ IPV6_DROP_MEMBERSHIP = 0x15 ++ IPV6_DSTOPTS = 0x3b ++ IPV6_HDRINCL = 0x24 ++ IPV6_HOPLIMIT = 0x34 ++ IPV6_HOPOPTS = 0x36 ++ IPV6_IPSEC_POLICY = 0x22 ++ IPV6_JOIN_ANYCAST = 0x1b ++ IPV6_JOIN_GROUP = 0x14 ++ IPV6_LEAVE_ANYCAST = 0x1c ++ IPV6_LEAVE_GROUP = 0x15 ++ IPV6_MTU = 0x18 ++ IPV6_MTU_DISCOVER = 0x17 ++ IPV6_MULTICAST_HOPS = 0x12 ++ IPV6_MULTICAST_IF = 0x11 ++ IPV6_MULTICAST_LOOP = 0x13 ++ IPV6_NEXTHOP = 0x9 ++ IPV6_PATHMTU = 0x3d ++ IPV6_PKTINFO = 0x32 ++ IPV6_PMTUDISC_DO = 0x2 ++ IPV6_PMTUDISC_DONT = 0x0 ++ IPV6_PMTUDISC_INTERFACE = 0x4 ++ IPV6_PMTUDISC_OMIT = 0x5 ++ IPV6_PMTUDISC_PROBE = 0x3 ++ IPV6_PMTUDISC_WANT = 0x1 ++ IPV6_RECVDSTOPTS = 0x3a ++ IPV6_RECVERR = 0x19 ++ IPV6_RECVHOPLIMIT = 0x33 ++ IPV6_RECVHOPOPTS = 0x35 ++ IPV6_RECVPATHMTU = 0x3c ++ IPV6_RECVPKTINFO = 0x31 ++ IPV6_RECVRTHDR = 0x38 ++ IPV6_RECVTCLASS = 0x42 ++ IPV6_ROUTER_ALERT = 0x16 ++ IPV6_RTHDR = 0x39 ++ IPV6_RTHDRDSTOPTS = 0x37 ++ IPV6_RTHDR_LOOSE = 0x0 ++ IPV6_RTHDR_STRICT = 0x1 ++ IPV6_RTHDR_TYPE_0 = 0x0 ++ IPV6_RXDSTOPTS = 0x3b ++ IPV6_RXHOPOPTS = 0x36 ++ IPV6_TCLASS = 0x43 ++ IPV6_UNICAST_HOPS = 0x10 ++ IPV6_V6ONLY = 0x1a ++ IPV6_XFRM_POLICY = 0x23 ++ IP_ADD_MEMBERSHIP = 0x23 ++ IP_ADD_SOURCE_MEMBERSHIP = 0x27 ++ IP_BIND_ADDRESS_NO_PORT = 0x18 ++ IP_BLOCK_SOURCE = 0x26 ++ IP_CHECKSUM = 0x17 ++ IP_DEFAULT_MULTICAST_LOOP = 0x1 ++ IP_DEFAULT_MULTICAST_TTL = 0x1 ++ IP_DF = 0x4000 ++ IP_DROP_MEMBERSHIP = 0x24 ++ IP_DROP_SOURCE_MEMBERSHIP = 0x28 ++ IP_FREEBIND = 0xf ++ IP_HDRINCL = 0x3 ++ IP_IPSEC_POLICY = 0x10 ++ IP_MAXPACKET = 0xffff ++ IP_MAX_MEMBERSHIPS = 0x14 ++ IP_MF = 0x2000 ++ IP_MINTTL = 0x15 ++ IP_MSFILTER = 0x29 ++ IP_MSS = 0x240 ++ IP_MTU = 0xe ++ IP_MTU_DISCOVER = 0xa ++ IP_MULTICAST_ALL = 0x31 ++ IP_MULTICAST_IF = 0x20 ++ IP_MULTICAST_LOOP = 0x22 ++ IP_MULTICAST_TTL = 0x21 ++ IP_NODEFRAG = 0x16 ++ IP_OFFMASK = 0x1fff ++ IP_OPTIONS = 0x4 ++ IP_ORIGDSTADDR = 0x14 ++ IP_PASSSEC = 0x12 ++ IP_PKTINFO = 0x8 ++ IP_PKTOPTIONS = 0x9 ++ IP_PMTUDISC = 0xa ++ IP_PMTUDISC_DO = 0x2 ++ IP_PMTUDISC_DONT = 0x0 ++ IP_PMTUDISC_INTERFACE = 0x4 ++ IP_PMTUDISC_OMIT = 0x5 ++ IP_PMTUDISC_PROBE = 0x3 ++ IP_PMTUDISC_WANT = 0x1 ++ IP_RECVERR = 0xb ++ IP_RECVOPTS = 0x6 ++ IP_RECVORIGDSTADDR = 0x14 ++ IP_RECVRETOPTS = 0x7 ++ IP_RECVTOS = 0xd ++ IP_RECVTTL = 0xc ++ IP_RETOPTS = 0x7 ++ IP_RF = 0x8000 ++ IP_ROUTER_ALERT = 0x5 ++ IP_TOS = 0x1 ++ IP_TRANSPARENT = 0x13 ++ IP_TTL = 0x2 ++ IP_UNBLOCK_SOURCE = 0x25 ++ IP_UNICAST_IF = 0x32 ++ IP_XFRM_POLICY = 0x11 ++ ISIG = 0x1 ++ ISTRIP = 0x20 ++ IUCLC = 0x200 ++ IUTF8 = 0x4000 ++ IXANY = 0x800 ++ IXOFF = 0x1000 ++ IXON = 0x400 ++ LINUX_REBOOT_CMD_CAD_OFF = 0x0 ++ LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef ++ LINUX_REBOOT_CMD_HALT = 0xcdef0123 ++ LINUX_REBOOT_CMD_KEXEC = 0x45584543 ++ LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc ++ LINUX_REBOOT_CMD_RESTART = 0x1234567 ++ LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 ++ LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 ++ LINUX_REBOOT_MAGIC1 = 0xfee1dead ++ LINUX_REBOOT_MAGIC2 = 0x28121969 ++ LOCK_EX = 0x2 ++ LOCK_NB = 0x4 ++ LOCK_SH = 0x1 ++ LOCK_UN = 0x8 ++ MADV_DODUMP = 0x11 ++ MADV_DOFORK = 0xb ++ MADV_DONTDUMP = 0x10 ++ MADV_DONTFORK = 0xa ++ MADV_DONTNEED = 0x4 ++ MADV_FREE = 0x8 ++ MADV_HUGEPAGE = 0xe ++ MADV_HWPOISON = 0x64 ++ MADV_MERGEABLE = 0xc ++ MADV_NOHUGEPAGE = 0xf ++ MADV_NORMAL = 0x0 ++ MADV_RANDOM = 0x1 ++ MADV_REMOVE = 0x9 ++ MADV_SEQUENTIAL = 0x2 ++ MADV_UNMERGEABLE = 0xd ++ MADV_WILLNEED = 0x3 ++ MAP_ANON = 0x20 ++ MAP_ANONYMOUS = 0x20 ++ MAP_DENYWRITE = 0x800 ++ MAP_EXECUTABLE = 0x1000 ++ MAP_FILE = 0x0 ++ MAP_FIXED = 0x10 ++ MAP_GROWSDOWN = 0x200 ++ MAP_HUGETLB = 0x40000 ++ MAP_HUGE_MASK = 0x3f ++ MAP_HUGE_SHIFT = 0x1a ++ MAP_LOCKED = 0x100 ++ MAP_NONBLOCK = 0x10000 ++ MAP_NORESERVE = 0x40 ++ MAP_POPULATE = 0x8000 ++ MAP_PRIVATE = 0x2 ++ MAP_RENAME = 0x20 ++ MAP_SHARED = 0x1 ++ MAP_STACK = 0x20000 ++ MAP_TYPE = 0xf ++ MCL_CURRENT = 0x2000 ++ MCL_FUTURE = 0x4000 ++ MCL_ONFAULT = 0x8000 ++ MNT_DETACH = 0x2 ++ MNT_EXPIRE = 0x4 ++ MNT_FORCE = 0x1 ++ MSG_BATCH = 0x40000 ++ MSG_CMSG_CLOEXEC = 0x40000000 ++ MSG_CONFIRM = 0x800 ++ MSG_CTRUNC = 0x8 ++ MSG_DONTROUTE = 0x4 ++ MSG_DONTWAIT = 0x40 ++ MSG_EOR = 0x80 ++ MSG_ERRQUEUE = 0x2000 ++ MSG_FASTOPEN = 0x20000000 ++ MSG_FIN = 0x200 ++ MSG_MORE = 0x8000 ++ MSG_NOSIGNAL = 0x4000 ++ MSG_OOB = 0x1 ++ MSG_PEEK = 0x2 ++ MSG_PROXY = 0x10 ++ MSG_RST = 0x1000 ++ MSG_SYN = 0x400 ++ MSG_TRUNC = 0x20 ++ MSG_TRYHARD = 0x4 ++ MSG_WAITALL = 0x100 ++ MSG_WAITFORONE = 0x10000 ++ MS_ACTIVE = 0x40000000 ++ MS_ASYNC = 0x1 ++ MS_BIND = 0x1000 ++ MS_DIRSYNC = 0x80 ++ MS_INVALIDATE = 0x2 ++ MS_I_VERSION = 0x800000 ++ MS_KERNMOUNT = 0x400000 ++ MS_LAZYTIME = 0x2000000 ++ MS_MANDLOCK = 0x40 ++ MS_MGC_MSK = 0xffff0000 ++ MS_MGC_VAL = 0xc0ed0000 ++ MS_MOVE = 0x2000 ++ MS_NOATIME = 0x400 ++ MS_NODEV = 0x4 ++ MS_NODIRATIME = 0x800 ++ MS_NOEXEC = 0x8 ++ MS_NOSUID = 0x2 ++ MS_NOUSER = -0x80000000 ++ MS_POSIXACL = 0x10000 ++ MS_PRIVATE = 0x40000 ++ MS_RDONLY = 0x1 ++ MS_REC = 0x4000 ++ MS_RELATIME = 0x200000 ++ MS_REMOUNT = 0x20 ++ MS_RMT_MASK = 0x2800051 ++ MS_SHARED = 0x100000 ++ MS_SILENT = 0x8000 ++ MS_SLAVE = 0x80000 ++ MS_STRICTATIME = 0x1000000 ++ MS_SYNC = 0x4 ++ MS_SYNCHRONOUS = 0x10 ++ MS_UNBINDABLE = 0x20000 ++ NAME_MAX = 0xff ++ NETLINK_ADD_MEMBERSHIP = 0x1 ++ NETLINK_AUDIT = 0x9 ++ NETLINK_BROADCAST_ERROR = 0x4 ++ NETLINK_CAP_ACK = 0xa ++ NETLINK_CONNECTOR = 0xb ++ NETLINK_CRYPTO = 0x15 ++ NETLINK_DNRTMSG = 0xe ++ NETLINK_DROP_MEMBERSHIP = 0x2 ++ NETLINK_ECRYPTFS = 0x13 ++ NETLINK_FIB_LOOKUP = 0xa ++ NETLINK_FIREWALL = 0x3 ++ NETLINK_GENERIC = 0x10 ++ NETLINK_INET_DIAG = 0x4 ++ NETLINK_IP6_FW = 0xd ++ NETLINK_ISCSI = 0x8 ++ NETLINK_KOBJECT_UEVENT = 0xf ++ NETLINK_LISTEN_ALL_NSID = 0x8 ++ NETLINK_LIST_MEMBERSHIPS = 0x9 ++ NETLINK_NETFILTER = 0xc ++ NETLINK_NFLOG = 0x5 ++ NETLINK_NO_ENOBUFS = 0x5 ++ NETLINK_PKTINFO = 0x3 ++ NETLINK_RDMA = 0x14 ++ NETLINK_ROUTE = 0x0 ++ NETLINK_RX_RING = 0x6 ++ NETLINK_SCSITRANSPORT = 0x12 ++ NETLINK_SELINUX = 0x7 ++ NETLINK_SOCK_DIAG = 0x4 ++ NETLINK_TX_RING = 0x7 ++ NETLINK_UNUSED = 0x1 ++ NETLINK_USERSOCK = 0x2 ++ NETLINK_XFRM = 0x6 ++ NL0 = 0x0 ++ NL1 = 0x100 ++ NLA_ALIGNTO = 0x4 ++ NLA_F_NESTED = 0x8000 ++ NLA_F_NET_BYTEORDER = 0x4000 ++ NLA_HDRLEN = 0x4 ++ NLDLY = 0x100 ++ NLMSG_ALIGNTO = 0x4 ++ NLMSG_DONE = 0x3 ++ NLMSG_ERROR = 0x2 ++ NLMSG_HDRLEN = 0x10 ++ NLMSG_MIN_TYPE = 0x10 ++ NLMSG_NOOP = 0x1 ++ NLMSG_OVERRUN = 0x4 ++ NLM_F_ACK = 0x4 ++ NLM_F_APPEND = 0x800 ++ NLM_F_ATOMIC = 0x400 ++ NLM_F_CREATE = 0x400 ++ NLM_F_DUMP = 0x300 ++ NLM_F_DUMP_FILTERED = 0x20 ++ NLM_F_DUMP_INTR = 0x10 ++ NLM_F_ECHO = 0x8 ++ NLM_F_EXCL = 0x200 ++ NLM_F_MATCH = 0x200 ++ NLM_F_MULTI = 0x2 ++ NLM_F_REPLACE = 0x100 ++ NLM_F_REQUEST = 0x1 ++ NLM_F_ROOT = 0x100 ++ NOFLSH = 0x80 ++ OCRNL = 0x8 ++ OFDEL = 0x80 ++ OFILL = 0x40 ++ OLCUC = 0x2 ++ ONLCR = 0x4 ++ ONLRET = 0x20 ++ ONOCR = 0x10 ++ OPOST = 0x1 ++ O_ACCMODE = 0x3 ++ O_APPEND = 0x8 ++ O_ASYNC = 0x40 ++ O_CLOEXEC = 0x400000 ++ O_CREAT = 0x200 ++ O_DIRECT = 0x100000 ++ O_DIRECTORY = 0x10000 ++ O_DSYNC = 0x2000 ++ O_EXCL = 0x800 ++ O_FSYNC = 0x802000 ++ O_LARGEFILE = 0x0 ++ O_NDELAY = 0x4004 ++ O_NOATIME = 0x200000 ++ O_NOCTTY = 0x8000 ++ O_NOFOLLOW = 0x20000 ++ O_NONBLOCK = 0x4000 ++ O_PATH = 0x1000000 ++ O_RDONLY = 0x0 ++ O_RDWR = 0x2 ++ O_RSYNC = 0x802000 ++ O_SYNC = 0x802000 ++ O_TMPFILE = 0x2010000 ++ O_TRUNC = 0x400 ++ O_WRONLY = 0x1 ++ PACKET_ADD_MEMBERSHIP = 0x1 ++ PACKET_AUXDATA = 0x8 ++ PACKET_BROADCAST = 0x1 ++ PACKET_COPY_THRESH = 0x7 ++ PACKET_DROP_MEMBERSHIP = 0x2 ++ PACKET_FANOUT = 0x12 ++ PACKET_FANOUT_CBPF = 0x6 ++ PACKET_FANOUT_CPU = 0x2 ++ PACKET_FANOUT_DATA = 0x16 ++ PACKET_FANOUT_EBPF = 0x7 ++ PACKET_FANOUT_FLAG_DEFRAG = 0x8000 ++ PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 ++ PACKET_FANOUT_HASH = 0x0 ++ PACKET_FANOUT_LB = 0x1 ++ PACKET_FANOUT_QM = 0x5 ++ PACKET_FANOUT_RND = 0x4 ++ PACKET_FANOUT_ROLLOVER = 0x3 ++ PACKET_FASTROUTE = 0x6 ++ PACKET_HDRLEN = 0xb ++ PACKET_HOST = 0x0 ++ PACKET_KERNEL = 0x7 ++ PACKET_LOOPBACK = 0x5 ++ PACKET_LOSS = 0xe ++ PACKET_MR_ALLMULTI = 0x2 ++ PACKET_MR_MULTICAST = 0x0 ++ PACKET_MR_PROMISC = 0x1 ++ PACKET_MR_UNICAST = 0x3 ++ PACKET_MULTICAST = 0x2 ++ PACKET_ORIGDEV = 0x9 ++ PACKET_OTHERHOST = 0x3 ++ PACKET_OUTGOING = 0x4 ++ PACKET_QDISC_BYPASS = 0x14 ++ PACKET_RECV_OUTPUT = 0x3 ++ PACKET_RESERVE = 0xc ++ PACKET_ROLLOVER_STATS = 0x15 ++ PACKET_RX_RING = 0x5 ++ PACKET_STATISTICS = 0x6 ++ PACKET_TIMESTAMP = 0x11 ++ PACKET_TX_HAS_OFF = 0x13 ++ PACKET_TX_RING = 0xd ++ PACKET_TX_TIMESTAMP = 0x10 ++ PACKET_USER = 0x6 ++ PACKET_VERSION = 0xa ++ PACKET_VNET_HDR = 0xf ++ PARENB = 0x100 ++ PARITY_CRC16_PR0 = 0x2 ++ PARITY_CRC16_PR0_CCITT = 0x4 ++ PARITY_CRC16_PR1 = 0x3 ++ PARITY_CRC16_PR1_CCITT = 0x5 ++ PARITY_CRC32_PR0_CCITT = 0x6 ++ PARITY_CRC32_PR1_CCITT = 0x7 ++ PARITY_DEFAULT = 0x0 ++ PARITY_NONE = 0x1 ++ PARMRK = 0x8 ++ PARODD = 0x200 ++ PENDIN = 0x4000 ++ PRIO_PGRP = 0x1 ++ PRIO_PROCESS = 0x0 ++ PRIO_USER = 0x2 ++ PROT_EXEC = 0x4 ++ PROT_GROWSDOWN = 0x1000000 ++ PROT_GROWSUP = 0x2000000 ++ PROT_NONE = 0x0 ++ PROT_READ = 0x1 ++ PROT_WRITE = 0x2 ++ PR_CAPBSET_DROP = 0x18 ++ PR_CAPBSET_READ = 0x17 ++ PR_CAP_AMBIENT = 0x2f ++ PR_CAP_AMBIENT_CLEAR_ALL = 0x4 ++ PR_CAP_AMBIENT_IS_SET = 0x1 ++ PR_CAP_AMBIENT_LOWER = 0x3 ++ PR_CAP_AMBIENT_RAISE = 0x2 ++ PR_ENDIAN_BIG = 0x0 ++ PR_ENDIAN_LITTLE = 0x1 ++ PR_ENDIAN_PPC_LITTLE = 0x2 ++ PR_FPEMU_NOPRINT = 0x1 ++ PR_FPEMU_SIGFPE = 0x2 ++ PR_FP_EXC_ASYNC = 0x2 ++ PR_FP_EXC_DISABLED = 0x0 ++ PR_FP_EXC_DIV = 0x10000 ++ PR_FP_EXC_INV = 0x100000 ++ PR_FP_EXC_NONRECOV = 0x1 ++ PR_FP_EXC_OVF = 0x20000 ++ PR_FP_EXC_PRECISE = 0x3 ++ PR_FP_EXC_RES = 0x80000 ++ PR_FP_EXC_SW_ENABLE = 0x80 ++ PR_FP_EXC_UND = 0x40000 ++ PR_FP_MODE_FR = 0x1 ++ PR_FP_MODE_FRE = 0x2 ++ PR_GET_CHILD_SUBREAPER = 0x25 ++ PR_GET_DUMPABLE = 0x3 ++ PR_GET_ENDIAN = 0x13 ++ PR_GET_FPEMU = 0x9 ++ PR_GET_FPEXC = 0xb ++ PR_GET_FP_MODE = 0x2e ++ PR_GET_KEEPCAPS = 0x7 ++ PR_GET_NAME = 0x10 ++ PR_GET_NO_NEW_PRIVS = 0x27 ++ PR_GET_PDEATHSIG = 0x2 ++ PR_GET_SECCOMP = 0x15 ++ PR_GET_SECUREBITS = 0x1b ++ PR_GET_THP_DISABLE = 0x2a ++ PR_GET_TID_ADDRESS = 0x28 ++ PR_GET_TIMERSLACK = 0x1e ++ PR_GET_TIMING = 0xd ++ PR_GET_TSC = 0x19 ++ PR_GET_UNALIGN = 0x5 ++ PR_MCE_KILL = 0x21 ++ PR_MCE_KILL_CLEAR = 0x0 ++ PR_MCE_KILL_DEFAULT = 0x2 ++ PR_MCE_KILL_EARLY = 0x1 ++ PR_MCE_KILL_GET = 0x22 ++ PR_MCE_KILL_LATE = 0x0 ++ PR_MCE_KILL_SET = 0x1 ++ PR_MPX_DISABLE_MANAGEMENT = 0x2c ++ PR_MPX_ENABLE_MANAGEMENT = 0x2b ++ PR_SET_CHILD_SUBREAPER = 0x24 ++ PR_SET_DUMPABLE = 0x4 ++ PR_SET_ENDIAN = 0x14 ++ PR_SET_FPEMU = 0xa ++ PR_SET_FPEXC = 0xc ++ PR_SET_FP_MODE = 0x2d ++ PR_SET_KEEPCAPS = 0x8 ++ PR_SET_MM = 0x23 ++ PR_SET_MM_ARG_END = 0x9 ++ PR_SET_MM_ARG_START = 0x8 ++ PR_SET_MM_AUXV = 0xc ++ PR_SET_MM_BRK = 0x7 ++ PR_SET_MM_END_CODE = 0x2 ++ PR_SET_MM_END_DATA = 0x4 ++ PR_SET_MM_ENV_END = 0xb ++ PR_SET_MM_ENV_START = 0xa ++ PR_SET_MM_EXE_FILE = 0xd ++ PR_SET_MM_MAP = 0xe ++ PR_SET_MM_MAP_SIZE = 0xf ++ PR_SET_MM_START_BRK = 0x6 ++ PR_SET_MM_START_CODE = 0x1 ++ PR_SET_MM_START_DATA = 0x3 ++ PR_SET_MM_START_STACK = 0x5 ++ PR_SET_NAME = 0xf ++ PR_SET_NO_NEW_PRIVS = 0x26 ++ PR_SET_PDEATHSIG = 0x1 ++ PR_SET_PTRACER = 0x59616d61 ++ PR_SET_PTRACER_ANY = -0x1 ++ PR_SET_SECCOMP = 0x16 ++ PR_SET_SECUREBITS = 0x1c ++ PR_SET_THP_DISABLE = 0x29 ++ PR_SET_TIMERSLACK = 0x1d ++ PR_SET_TIMING = 0xe ++ PR_SET_TSC = 0x1a ++ PR_SET_UNALIGN = 0x6 ++ PR_TASK_PERF_EVENTS_DISABLE = 0x1f ++ PR_TASK_PERF_EVENTS_ENABLE = 0x20 ++ PR_TIMING_STATISTICAL = 0x0 ++ PR_TIMING_TIMESTAMP = 0x1 ++ PR_TSC_ENABLE = 0x1 ++ PR_TSC_SIGSEGV = 0x2 ++ PR_UNALIGN_NOPRINT = 0x1 ++ PR_UNALIGN_SIGBUS = 0x2 ++ PTRACE_ATTACH = 0x10 ++ PTRACE_CONT = 0x7 ++ PTRACE_DETACH = 0x11 ++ PTRACE_EVENT_CLONE = 0x3 ++ PTRACE_EVENT_EXEC = 0x4 ++ PTRACE_EVENT_EXIT = 0x6 ++ PTRACE_EVENT_FORK = 0x1 ++ PTRACE_EVENT_SECCOMP = 0x7 ++ PTRACE_EVENT_STOP = 0x80 ++ PTRACE_EVENT_VFORK = 0x2 ++ PTRACE_EVENT_VFORK_DONE = 0x5 ++ PTRACE_GETEVENTMSG = 0x4201 ++ PTRACE_GETFPAREGS = 0x14 ++ PTRACE_GETFPREGS = 0xe ++ PTRACE_GETFPREGS64 = 0x19 ++ PTRACE_GETREGS = 0xc ++ PTRACE_GETREGS64 = 0x16 ++ PTRACE_GETREGSET = 0x4204 ++ PTRACE_GETSIGINFO = 0x4202 ++ PTRACE_GETSIGMASK = 0x420a ++ PTRACE_INTERRUPT = 0x4207 ++ PTRACE_KILL = 0x8 ++ PTRACE_LISTEN = 0x4208 ++ PTRACE_O_EXITKILL = 0x100000 ++ PTRACE_O_MASK = 0x3000ff ++ PTRACE_O_SUSPEND_SECCOMP = 0x200000 ++ PTRACE_O_TRACECLONE = 0x8 ++ PTRACE_O_TRACEEXEC = 0x10 ++ PTRACE_O_TRACEEXIT = 0x40 ++ PTRACE_O_TRACEFORK = 0x2 ++ PTRACE_O_TRACESECCOMP = 0x80 ++ PTRACE_O_TRACESYSGOOD = 0x1 ++ PTRACE_O_TRACEVFORK = 0x4 ++ PTRACE_O_TRACEVFORKDONE = 0x20 ++ PTRACE_PEEKDATA = 0x2 ++ PTRACE_PEEKSIGINFO = 0x4209 ++ PTRACE_PEEKSIGINFO_SHARED = 0x1 ++ PTRACE_PEEKTEXT = 0x1 ++ PTRACE_PEEKUSR = 0x3 ++ PTRACE_POKEDATA = 0x5 ++ PTRACE_POKETEXT = 0x4 ++ PTRACE_POKEUSR = 0x6 ++ PTRACE_READDATA = 0x10 ++ PTRACE_READTEXT = 0x12 ++ PTRACE_SECCOMP_GET_FILTER = 0x420c ++ PTRACE_SEIZE = 0x4206 ++ PTRACE_SETFPAREGS = 0x15 ++ PTRACE_SETFPREGS = 0xf ++ PTRACE_SETFPREGS64 = 0x1a ++ PTRACE_SETOPTIONS = 0x4200 ++ PTRACE_SETREGS = 0xd ++ PTRACE_SETREGS64 = 0x17 ++ PTRACE_SETREGSET = 0x4205 ++ PTRACE_SETSIGINFO = 0x4203 ++ PTRACE_SETSIGMASK = 0x420b ++ PTRACE_SINGLESTEP = 0x9 ++ PTRACE_SPARC_DETACH = 0xb ++ PTRACE_SYSCALL = 0x18 ++ PTRACE_TRACEME = 0x0 ++ PTRACE_WRITEDATA = 0x11 ++ PTRACE_WRITETEXT = 0x13 ++ PT_FP = 0x48 ++ PT_G0 = 0x10 ++ PT_G1 = 0x14 ++ PT_G2 = 0x18 ++ PT_G3 = 0x1c ++ PT_G4 = 0x20 ++ PT_G5 = 0x24 ++ PT_G6 = 0x28 ++ PT_G7 = 0x2c ++ PT_I0 = 0x30 ++ PT_I1 = 0x34 ++ PT_I2 = 0x38 ++ PT_I3 = 0x3c ++ PT_I4 = 0x40 ++ PT_I5 = 0x44 ++ PT_I6 = 0x48 ++ PT_I7 = 0x4c ++ PT_NPC = 0x8 ++ PT_PC = 0x4 ++ PT_PSR = 0x0 ++ PT_REGS_MAGIC = 0x57ac6c00 ++ PT_TNPC = 0x90 ++ PT_TPC = 0x88 ++ PT_TSTATE = 0x80 ++ PT_V9_FP = 0x70 ++ PT_V9_G0 = 0x0 ++ PT_V9_G1 = 0x8 ++ PT_V9_G2 = 0x10 ++ PT_V9_G3 = 0x18 ++ PT_V9_G4 = 0x20 ++ PT_V9_G5 = 0x28 ++ PT_V9_G6 = 0x30 ++ PT_V9_G7 = 0x38 ++ PT_V9_I0 = 0x40 ++ PT_V9_I1 = 0x48 ++ PT_V9_I2 = 0x50 ++ PT_V9_I3 = 0x58 ++ PT_V9_I4 = 0x60 ++ PT_V9_I5 = 0x68 ++ PT_V9_I6 = 0x70 ++ PT_V9_I7 = 0x78 ++ PT_V9_MAGIC = 0x9c ++ PT_V9_TNPC = 0x90 ++ PT_V9_TPC = 0x88 ++ PT_V9_TSTATE = 0x80 ++ PT_V9_Y = 0x98 ++ PT_WIM = 0x10 ++ PT_Y = 0xc ++ RLIMIT_AS = 0x9 ++ RLIMIT_CORE = 0x4 ++ RLIMIT_CPU = 0x0 ++ RLIMIT_DATA = 0x2 ++ RLIMIT_FSIZE = 0x1 ++ RLIMIT_NOFILE = 0x6 ++ RLIMIT_STACK = 0x3 ++ RLIM_INFINITY = -0x1 ++ RTAX_ADVMSS = 0x8 ++ RTAX_CC_ALGO = 0x10 ++ RTAX_CWND = 0x7 ++ RTAX_FEATURES = 0xc ++ RTAX_FEATURE_ALLFRAG = 0x8 ++ RTAX_FEATURE_ECN = 0x1 ++ RTAX_FEATURE_MASK = 0xf ++ RTAX_FEATURE_SACK = 0x2 ++ RTAX_FEATURE_TIMESTAMP = 0x4 ++ RTAX_HOPLIMIT = 0xa ++ RTAX_INITCWND = 0xb ++ RTAX_INITRWND = 0xe ++ RTAX_LOCK = 0x1 ++ RTAX_MAX = 0x10 ++ RTAX_MTU = 0x2 ++ RTAX_QUICKACK = 0xf ++ RTAX_REORDERING = 0x9 ++ RTAX_RTO_MIN = 0xd ++ RTAX_RTT = 0x4 ++ RTAX_RTTVAR = 0x5 ++ RTAX_SSTHRESH = 0x6 ++ RTAX_UNSPEC = 0x0 ++ RTAX_WINDOW = 0x3 ++ RTA_ALIGNTO = 0x4 ++ RTA_MAX = 0x18 ++ RTCF_DIRECTSRC = 0x4000000 ++ RTCF_DOREDIRECT = 0x1000000 ++ RTCF_LOG = 0x2000000 ++ RTCF_MASQ = 0x400000 ++ RTCF_NAT = 0x800000 ++ RTCF_VALVE = 0x200000 ++ RTF_ADDRCLASSMASK = 0xf8000000 ++ RTF_ADDRCONF = 0x40000 ++ RTF_ALLONLINK = 0x20000 ++ RTF_BROADCAST = 0x10000000 ++ RTF_CACHE = 0x1000000 ++ RTF_DEFAULT = 0x10000 ++ RTF_DYNAMIC = 0x10 ++ RTF_FLOW = 0x2000000 ++ RTF_GATEWAY = 0x2 ++ RTF_HOST = 0x4 ++ RTF_INTERFACE = 0x40000000 ++ RTF_IRTT = 0x100 ++ RTF_LINKRT = 0x100000 ++ RTF_LOCAL = 0x80000000 ++ RTF_MODIFIED = 0x20 ++ RTF_MSS = 0x40 ++ RTF_MTU = 0x40 ++ RTF_MULTICAST = 0x20000000 ++ RTF_NAT = 0x8000000 ++ RTF_NOFORWARD = 0x1000 ++ RTF_NONEXTHOP = 0x200000 ++ RTF_NOPMTUDISC = 0x4000 ++ RTF_POLICY = 0x4000000 ++ RTF_REINSTATE = 0x8 ++ RTF_REJECT = 0x200 ++ RTF_STATIC = 0x400 ++ RTF_THROW = 0x2000 ++ RTF_UP = 0x1 ++ RTF_WINDOW = 0x80 ++ RTF_XRESOLVE = 0x800 ++ RTM_BASE = 0x10 ++ RTM_DELACTION = 0x31 ++ RTM_DELADDR = 0x15 ++ RTM_DELADDRLABEL = 0x49 ++ RTM_DELLINK = 0x11 ++ RTM_DELMDB = 0x55 ++ RTM_DELNEIGH = 0x1d ++ RTM_DELNSID = 0x59 ++ RTM_DELQDISC = 0x25 ++ RTM_DELROUTE = 0x19 ++ RTM_DELRULE = 0x21 ++ RTM_DELTCLASS = 0x29 ++ RTM_DELTFILTER = 0x2d ++ RTM_F_CLONED = 0x200 ++ RTM_F_EQUALIZE = 0x400 ++ RTM_F_LOOKUP_TABLE = 0x1000 ++ RTM_F_NOTIFY = 0x100 ++ RTM_F_PREFIX = 0x800 ++ RTM_GETACTION = 0x32 ++ RTM_GETADDR = 0x16 ++ RTM_GETADDRLABEL = 0x4a ++ RTM_GETANYCAST = 0x3e ++ RTM_GETDCB = 0x4e ++ RTM_GETLINK = 0x12 ++ RTM_GETMDB = 0x56 ++ RTM_GETMULTICAST = 0x3a ++ RTM_GETNEIGH = 0x1e ++ RTM_GETNEIGHTBL = 0x42 ++ RTM_GETNETCONF = 0x52 ++ RTM_GETNSID = 0x5a ++ RTM_GETQDISC = 0x26 ++ RTM_GETROUTE = 0x1a ++ RTM_GETRULE = 0x22 ++ RTM_GETSTATS = 0x5e ++ RTM_GETTCLASS = 0x2a ++ RTM_GETTFILTER = 0x2e ++ RTM_MAX = 0x5f ++ RTM_NEWACTION = 0x30 ++ RTM_NEWADDR = 0x14 ++ RTM_NEWADDRLABEL = 0x48 ++ RTM_NEWLINK = 0x10 ++ RTM_NEWMDB = 0x54 ++ RTM_NEWNDUSEROPT = 0x44 ++ RTM_NEWNEIGH = 0x1c ++ RTM_NEWNEIGHTBL = 0x40 ++ RTM_NEWNETCONF = 0x50 ++ RTM_NEWNSID = 0x58 ++ RTM_NEWPREFIX = 0x34 ++ RTM_NEWQDISC = 0x24 ++ RTM_NEWROUTE = 0x18 ++ RTM_NEWRULE = 0x20 ++ RTM_NEWSTATS = 0x5c ++ RTM_NEWTCLASS = 0x28 ++ RTM_NEWTFILTER = 0x2c ++ RTM_NR_FAMILIES = 0x14 ++ RTM_NR_MSGTYPES = 0x50 ++ RTM_SETDCB = 0x4f ++ RTM_SETLINK = 0x13 ++ RTM_SETNEIGHTBL = 0x43 ++ RTNH_ALIGNTO = 0x4 ++ RTNH_COMPARE_MASK = 0x11 ++ RTNH_F_DEAD = 0x1 ++ RTNH_F_LINKDOWN = 0x10 ++ RTNH_F_OFFLOAD = 0x8 ++ RTNH_F_ONLINK = 0x4 ++ RTNH_F_PERVASIVE = 0x2 ++ RTN_MAX = 0xb ++ RTPROT_BABEL = 0x2a ++ RTPROT_BIRD = 0xc ++ RTPROT_BOOT = 0x3 ++ RTPROT_DHCP = 0x10 ++ RTPROT_DNROUTED = 0xd ++ RTPROT_GATED = 0x8 ++ RTPROT_KERNEL = 0x2 ++ RTPROT_MROUTED = 0x11 ++ RTPROT_MRT = 0xa ++ RTPROT_NTK = 0xf ++ RTPROT_RA = 0x9 ++ RTPROT_REDIRECT = 0x1 ++ RTPROT_STATIC = 0x4 ++ RTPROT_UNSPEC = 0x0 ++ RTPROT_XORP = 0xe ++ RTPROT_ZEBRA = 0xb ++ RT_CLASS_DEFAULT = 0xfd ++ RT_CLASS_LOCAL = 0xff ++ RT_CLASS_MAIN = 0xfe ++ RT_CLASS_MAX = 0xff ++ RT_CLASS_UNSPEC = 0x0 ++ RUSAGE_CHILDREN = -0x1 ++ RUSAGE_SELF = 0x0 ++ RUSAGE_THREAD = 0x1 ++ SCM_CREDENTIALS = 0x2 ++ SCM_RIGHTS = 0x1 ++ SCM_TIMESTAMP = 0x1d ++ SCM_TIMESTAMPING = 0x23 ++ SCM_TIMESTAMPNS = 0x21 ++ SCM_WIFI_STATUS = 0x25 ++ SHUT_RD = 0x0 ++ SHUT_RDWR = 0x2 ++ SHUT_WR = 0x1 ++ SIOCADDDLCI = 0x8980 ++ SIOCADDMULTI = 0x8931 ++ SIOCADDRT = 0x890b ++ SIOCATMARK = 0x8905 ++ SIOCBONDCHANGEACTIVE = 0x8995 ++ SIOCBONDENSLAVE = 0x8990 ++ SIOCBONDINFOQUERY = 0x8994 ++ SIOCBONDRELEASE = 0x8991 ++ SIOCBONDSETHWADDR = 0x8992 ++ SIOCBONDSLAVEINFOQUERY = 0x8993 ++ SIOCBRADDBR = 0x89a0 ++ SIOCBRADDIF = 0x89a2 ++ SIOCBRDELBR = 0x89a1 ++ SIOCBRDELIF = 0x89a3 ++ SIOCDARP = 0x8953 ++ SIOCDELDLCI = 0x8981 ++ SIOCDELMULTI = 0x8932 ++ SIOCDELRT = 0x890c ++ SIOCDEVPRIVATE = 0x89f0 ++ SIOCDIFADDR = 0x8936 ++ SIOCDRARP = 0x8960 ++ SIOCETHTOOL = 0x8946 ++ SIOCGARP = 0x8954 ++ SIOCGHWTSTAMP = 0x89b1 ++ SIOCGIFADDR = 0x8915 ++ SIOCGIFBR = 0x8940 ++ SIOCGIFBRDADDR = 0x8919 ++ SIOCGIFCONF = 0x8912 ++ SIOCGIFCOUNT = 0x8938 ++ SIOCGIFDSTADDR = 0x8917 ++ SIOCGIFENCAP = 0x8925 ++ SIOCGIFFLAGS = 0x8913 ++ SIOCGIFHWADDR = 0x8927 ++ SIOCGIFINDEX = 0x8933 ++ SIOCGIFMAP = 0x8970 ++ SIOCGIFMEM = 0x891f ++ SIOCGIFMETRIC = 0x891d ++ SIOCGIFMTU = 0x8921 ++ SIOCGIFNAME = 0x8910 ++ SIOCGIFNETMASK = 0x891b ++ SIOCGIFPFLAGS = 0x8935 ++ SIOCGIFSLAVE = 0x8929 ++ SIOCGIFTXQLEN = 0x8942 ++ SIOCGIFVLAN = 0x8982 ++ SIOCGMIIPHY = 0x8947 ++ SIOCGMIIREG = 0x8948 ++ SIOCGPGRP = 0x8904 ++ SIOCGRARP = 0x8961 ++ SIOCGSTAMP = 0x8906 ++ SIOCGSTAMPNS = 0x8907 ++ SIOCINQ = 0x4004667f ++ SIOCOUTQ = 0x40047473 ++ SIOCOUTQNSD = 0x894b ++ SIOCPROTOPRIVATE = 0x89e0 ++ SIOCRTMSG = 0x890d ++ SIOCSARP = 0x8955 ++ SIOCSHWTSTAMP = 0x89b0 ++ SIOCSIFADDR = 0x8916 ++ SIOCSIFBR = 0x8941 ++ SIOCSIFBRDADDR = 0x891a ++ SIOCSIFDSTADDR = 0x8918 ++ SIOCSIFENCAP = 0x8926 ++ SIOCSIFFLAGS = 0x8914 ++ SIOCSIFHWADDR = 0x8924 ++ SIOCSIFHWBROADCAST = 0x8937 ++ SIOCSIFLINK = 0x8911 ++ SIOCSIFMAP = 0x8971 ++ SIOCSIFMEM = 0x8920 ++ SIOCSIFMETRIC = 0x891e ++ SIOCSIFMTU = 0x8922 ++ SIOCSIFNAME = 0x8923 ++ SIOCSIFNETMASK = 0x891c ++ SIOCSIFPFLAGS = 0x8934 ++ SIOCSIFSLAVE = 0x8930 ++ SIOCSIFTXQLEN = 0x8943 ++ SIOCSIFVLAN = 0x8983 ++ SIOCSMIIREG = 0x8949 ++ SIOCSPGRP = 0x8902 ++ SIOCSRARP = 0x8962 ++ SIOCWANDEV = 0x894a ++ SOCK_CLOEXEC = 0x400000 ++ SOCK_DCCP = 0x6 ++ SOCK_DGRAM = 0x2 ++ SOCK_NONBLOCK = 0x4000 ++ SOCK_PACKET = 0xa ++ SOCK_RAW = 0x3 ++ SOCK_RDM = 0x4 ++ SOCK_SEQPACKET = 0x5 ++ SOCK_STREAM = 0x1 ++ SOL_AAL = 0x109 ++ SOL_ALG = 0x117 ++ SOL_ATM = 0x108 ++ SOL_CAIF = 0x116 ++ SOL_DCCP = 0x10d ++ SOL_DECNET = 0x105 ++ SOL_ICMPV6 = 0x3a ++ SOL_IP = 0x0 ++ SOL_IPV6 = 0x29 ++ SOL_IRDA = 0x10a ++ SOL_IUCV = 0x115 ++ SOL_KCM = 0x119 ++ SOL_LLC = 0x10c ++ SOL_NETBEUI = 0x10b ++ SOL_NETLINK = 0x10e ++ SOL_NFC = 0x118 ++ SOL_PACKET = 0x107 ++ SOL_PNPIPE = 0x113 ++ SOL_PPPOL2TP = 0x111 ++ SOL_RAW = 0xff ++ SOL_RDS = 0x114 ++ SOL_RXRPC = 0x110 ++ SOL_SOCKET = 0xffff ++ SOL_TCP = 0x6 ++ SOL_TIPC = 0x10f ++ SOL_X25 = 0x106 ++ SOMAXCONN = 0x80 ++ SO_ACCEPTCONN = 0x8000 ++ SO_ATTACH_BPF = 0x34 ++ SO_ATTACH_FILTER = 0x1a ++ SO_ATTACH_REUSEPORT_CBPF = 0x35 ++ SO_ATTACH_REUSEPORT_EBPF = 0x36 ++ SO_BINDTODEVICE = 0xd ++ SO_BPF_EXTENSIONS = 0x32 ++ SO_BROADCAST = 0x20 ++ SO_BSDCOMPAT = 0x400 ++ SO_BUSY_POLL = 0x30 ++ SO_CNX_ADVICE = 0x37 ++ SO_DEBUG = 0x1 ++ SO_DETACH_BPF = 0x1b ++ SO_DETACH_FILTER = 0x1b ++ SO_DOMAIN = 0x1029 ++ SO_DONTROUTE = 0x10 ++ SO_ERROR = 0x1007 ++ SO_GET_FILTER = 0x1a ++ SO_INCOMING_CPU = 0x33 ++ SO_KEEPALIVE = 0x8 ++ SO_LINGER = 0x80 ++ SO_LOCK_FILTER = 0x28 ++ SO_MARK = 0x22 ++ SO_MAX_PACING_RATE = 0x31 ++ SO_NOFCS = 0x27 ++ SO_NO_CHECK = 0xb ++ SO_OOBINLINE = 0x100 ++ SO_PASSCRED = 0x2 ++ SO_PASSSEC = 0x1f ++ SO_PEEK_OFF = 0x26 ++ SO_PEERCRED = 0x40 ++ SO_PEERNAME = 0x1c ++ SO_PEERSEC = 0x1e ++ SO_PRIORITY = 0xc ++ SO_PROTOCOL = 0x1028 ++ SO_RCVBUF = 0x1002 ++ SO_RCVBUFFORCE = 0x100b ++ SO_RCVLOWAT = 0x800 ++ SO_RCVTIMEO = 0x2000 ++ SO_REUSEADDR = 0x4 ++ SO_REUSEPORT = 0x200 ++ SO_RXQ_OVFL = 0x24 ++ SO_SECURITY_AUTHENTICATION = 0x5001 ++ SO_SECURITY_ENCRYPTION_NETWORK = 0x5004 ++ SO_SECURITY_ENCRYPTION_TRANSPORT = 0x5002 ++ SO_SELECT_ERR_QUEUE = 0x29 ++ SO_SNDBUF = 0x1001 ++ SO_SNDBUFFORCE = 0x100a ++ SO_SNDLOWAT = 0x1000 ++ SO_SNDTIMEO = 0x4000 ++ SO_TIMESTAMP = 0x1d ++ SO_TIMESTAMPING = 0x23 ++ SO_TIMESTAMPNS = 0x21 ++ SO_TYPE = 0x1008 ++ SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 ++ SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 ++ SO_VM_SOCKETS_BUFFER_SIZE = 0x0 ++ SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 ++ SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 ++ SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 ++ SO_VM_SOCKETS_TRUSTED = 0x5 ++ SO_WIFI_STATUS = 0x25 ++ SPLICE_F_GIFT = 0x8 ++ SPLICE_F_MORE = 0x4 ++ SPLICE_F_MOVE = 0x1 ++ SPLICE_F_NONBLOCK = 0x2 ++ S_BLKSIZE = 0x200 ++ S_IEXEC = 0x40 ++ S_IFBLK = 0x6000 ++ S_IFCHR = 0x2000 ++ S_IFDIR = 0x4000 ++ S_IFIFO = 0x1000 ++ S_IFLNK = 0xa000 ++ S_IFMT = 0xf000 ++ S_IFREG = 0x8000 ++ S_IFSOCK = 0xc000 ++ S_IREAD = 0x100 ++ S_IRGRP = 0x20 ++ S_IROTH = 0x4 ++ S_IRUSR = 0x100 ++ S_IRWXG = 0x38 ++ S_IRWXO = 0x7 ++ S_IRWXU = 0x1c0 ++ S_ISGID = 0x400 ++ S_ISUID = 0x800 ++ S_ISVTX = 0x200 ++ S_IWGRP = 0x10 ++ S_IWOTH = 0x2 ++ S_IWRITE = 0x80 ++ S_IWUSR = 0x80 ++ S_IXGRP = 0x8 ++ S_IXOTH = 0x1 ++ S_IXUSR = 0x40 ++ TAB0 = 0x0 ++ TAB1 = 0x800 ++ TAB2 = 0x1000 ++ TAB3 = 0x1800 ++ TABDLY = 0x1800 ++ TCFLSH = 0x20005407 ++ TCGETA = 0x40125401 ++ TCGETS = 0x40245408 ++ TCGETS2 = 0x402c540c ++ TCIFLUSH = 0x0 ++ TCIOFF = 0x2 ++ TCIOFLUSH = 0x2 ++ TCION = 0x3 ++ TCOFLUSH = 0x1 ++ TCOOFF = 0x0 ++ TCOON = 0x1 ++ TCP_CC_INFO = 0x1a ++ TCP_CONGESTION = 0xd ++ TCP_COOKIE_IN_ALWAYS = 0x1 ++ TCP_COOKIE_MAX = 0x10 ++ TCP_COOKIE_MIN = 0x8 ++ TCP_COOKIE_OUT_NEVER = 0x2 ++ TCP_COOKIE_PAIR_SIZE = 0x20 ++ TCP_COOKIE_TRANSACTIONS = 0xf ++ TCP_CORK = 0x3 ++ TCP_DEFER_ACCEPT = 0x9 ++ TCP_FASTOPEN = 0x17 ++ TCP_INFO = 0xb ++ TCP_KEEPCNT = 0x6 ++ TCP_KEEPIDLE = 0x4 ++ TCP_KEEPINTVL = 0x5 ++ TCP_LINGER2 = 0x8 ++ TCP_MAXSEG = 0x2 ++ TCP_MAXWIN = 0xffff ++ TCP_MAX_WINSHIFT = 0xe ++ TCP_MD5SIG = 0xe ++ TCP_MD5SIG_MAXKEYLEN = 0x50 ++ TCP_MSS = 0x200 ++ TCP_MSS_DEFAULT = 0x218 ++ TCP_MSS_DESIRED = 0x4c4 ++ TCP_NODELAY = 0x1 ++ TCP_NOTSENT_LOWAT = 0x19 ++ TCP_QUEUE_SEQ = 0x15 ++ TCP_QUICKACK = 0xc ++ TCP_REPAIR = 0x13 ++ TCP_REPAIR_OPTIONS = 0x16 ++ TCP_REPAIR_QUEUE = 0x14 ++ TCP_SAVED_SYN = 0x1c ++ TCP_SAVE_SYN = 0x1b ++ TCP_SYNCNT = 0x7 ++ TCP_S_DATA_IN = 0x4 ++ TCP_S_DATA_OUT = 0x8 ++ TCP_THIN_DUPACK = 0x11 ++ TCP_THIN_LINEAR_TIMEOUTS = 0x10 ++ TCP_TIMESTAMP = 0x18 ++ TCP_USER_TIMEOUT = 0x12 ++ TCP_WINDOW_CLAMP = 0xa ++ TCSAFLUSH = 0x2 ++ TCSBRK = 0x20005405 ++ TCSBRKP = 0x5425 ++ TCSETA = 0x80125402 ++ TCSETAF = 0x80125404 ++ TCSETAW = 0x80125403 ++ TCSETS = 0x80245409 ++ TCSETS2 = 0x802c540d ++ TCSETSF = 0x8024540b ++ TCSETSF2 = 0x802c540f ++ TCSETSW = 0x8024540a ++ TCSETSW2 = 0x802c540e ++ TCXONC = 0x20005406 ++ TIOCCBRK = 0x2000747a ++ TIOCCONS = 0x20007424 ++ TIOCEXCL = 0x2000740d ++ TIOCGDEV = 0x40045432 ++ TIOCGETD = 0x40047400 ++ TIOCGEXCL = 0x40045440 ++ TIOCGICOUNT = 0x545d ++ TIOCGLCKTRMIOS = 0x5456 ++ TIOCGPGRP = 0x40047483 ++ TIOCGPKT = 0x40045438 ++ TIOCGPTLCK = 0x40045439 ++ TIOCGPTN = 0x40047486 ++ TIOCGRS485 = 0x40205441 ++ TIOCGSERIAL = 0x541e ++ TIOCGSID = 0x40047485 ++ TIOCGSOFTCAR = 0x40047464 ++ TIOCGWINSZ = 0x40087468 ++ TIOCINQ = 0x4004667f ++ TIOCLINUX = 0x541c ++ TIOCMBIC = 0x8004746b ++ TIOCMBIS = 0x8004746c ++ TIOCMGET = 0x4004746a ++ TIOCMIWAIT = 0x545c ++ TIOCMSET = 0x8004746d ++ TIOCM_CAR = 0x40 ++ TIOCM_CD = 0x40 ++ TIOCM_CTS = 0x20 ++ TIOCM_DSR = 0x100 ++ TIOCM_DTR = 0x2 ++ TIOCM_LE = 0x1 ++ TIOCM_LOOP = 0x8000 ++ TIOCM_OUT1 = 0x2000 ++ TIOCM_OUT2 = 0x4000 ++ TIOCM_RI = 0x80 ++ TIOCM_RNG = 0x80 ++ TIOCM_RTS = 0x4 ++ TIOCM_SR = 0x10 ++ TIOCM_ST = 0x8 ++ TIOCNOTTY = 0x20007471 ++ TIOCNXCL = 0x2000740e ++ TIOCOUTQ = 0x40047473 ++ TIOCPKT = 0x80047470 ++ TIOCPKT_DATA = 0x0 ++ TIOCPKT_DOSTOP = 0x20 ++ TIOCPKT_FLUSHREAD = 0x1 ++ TIOCPKT_FLUSHWRITE = 0x2 ++ TIOCPKT_IOCTL = 0x40 ++ TIOCPKT_NOSTOP = 0x10 ++ TIOCPKT_START = 0x8 ++ TIOCPKT_STOP = 0x4 ++ TIOCSBRK = 0x2000747b ++ TIOCSCTTY = 0x20007484 ++ TIOCSERCONFIG = 0x5453 ++ TIOCSERGETLSR = 0x5459 ++ TIOCSERGETMULTI = 0x545a ++ TIOCSERGSTRUCT = 0x5458 ++ TIOCSERGWILD = 0x5454 ++ TIOCSERSETMULTI = 0x545b ++ TIOCSERSWILD = 0x5455 ++ TIOCSER_TEMT = 0x1 ++ TIOCSETD = 0x80047401 ++ TIOCSIG = 0x80047488 ++ TIOCSLCKTRMIOS = 0x5457 ++ TIOCSPGRP = 0x80047482 ++ TIOCSPTLCK = 0x80047487 ++ TIOCSRS485 = 0xc0205442 ++ TIOCSSERIAL = 0x541f ++ TIOCSSOFTCAR = 0x80047465 ++ TIOCSTART = 0x2000746e ++ TIOCSTI = 0x80017472 ++ TIOCSTOP = 0x2000746f ++ TIOCSWINSZ = 0x80087467 ++ TIOCVHANGUP = 0x20005437 ++ TOSTOP = 0x100 ++ TUNATTACHFILTER = 0x801054d5 ++ TUNDETACHFILTER = 0x801054d6 ++ TUNGETFEATURES = 0x400454cf ++ TUNGETFILTER = 0x401054db ++ TUNGETIFF = 0x400454d2 ++ TUNGETSNDBUF = 0x400454d3 ++ TUNGETVNETBE = 0x400454df ++ TUNGETVNETHDRSZ = 0x400454d7 ++ TUNGETVNETLE = 0x400454dd ++ TUNSETDEBUG = 0x800454c9 ++ TUNSETGROUP = 0x800454ce ++ TUNSETIFF = 0x800454ca ++ TUNSETIFINDEX = 0x800454da ++ TUNSETLINK = 0x800454cd ++ TUNSETNOCSUM = 0x800454c8 ++ TUNSETOFFLOAD = 0x800454d0 ++ TUNSETOWNER = 0x800454cc ++ TUNSETPERSIST = 0x800454cb ++ TUNSETQUEUE = 0x800454d9 ++ TUNSETSNDBUF = 0x800454d4 ++ TUNSETTXFILTER = 0x800454d1 ++ TUNSETVNETBE = 0x800454de ++ TUNSETVNETHDRSZ = 0x800454d8 ++ TUNSETVNETLE = 0x800454dc ++ VDISCARD = 0xd ++ VDSUSP = 0xb ++ VEOF = 0x4 ++ VEOL = 0x5 ++ VEOL2 = 0x6 ++ VERASE = 0x2 ++ VINTR = 0x0 ++ VKILL = 0x3 ++ VLNEXT = 0xf ++ VMADDR_CID_ANY = 0xffffffff ++ VMADDR_CID_HOST = 0x2 ++ VMADDR_CID_HYPERVISOR = 0x0 ++ VMADDR_CID_RESERVED = 0x1 ++ VMADDR_PORT_ANY = 0xffffffff ++ VMIN = 0x4 ++ VQUIT = 0x1 ++ VREPRINT = 0xc ++ VSTART = 0x8 ++ VSTOP = 0x9 ++ VSUSP = 0xa ++ VSWTC = 0x7 ++ VT0 = 0x0 ++ VT1 = 0x4000 ++ VTDLY = 0x4000 ++ VTIME = 0x5 ++ VWERASE = 0xe ++ WALL = 0x40000000 ++ WCLONE = 0x80000000 ++ WCONTINUED = 0x8 ++ WEXITED = 0x4 ++ WNOHANG = 0x1 ++ WNOTHREAD = 0x20000000 ++ WNOWAIT = 0x1000000 ++ WORDSIZE = 0x40 ++ WRAP = 0x20000 ++ WSTOPPED = 0x2 ++ WUNTRACED = 0x2 ++ XCASE = 0x4 ++ XTABS = 0x1800 ++ __TIOCFLUSH = 0x80047410 ++) ++ ++// Errors ++const ( ++ E2BIG = syscall.Errno(0x7) ++ EACCES = syscall.Errno(0xd) ++ EADDRINUSE = syscall.Errno(0x30) ++ EADDRNOTAVAIL = syscall.Errno(0x31) ++ EADV = syscall.Errno(0x53) ++ EAFNOSUPPORT = syscall.Errno(0x2f) ++ EAGAIN = syscall.Errno(0xb) ++ EALREADY = syscall.Errno(0x25) ++ EBADE = syscall.Errno(0x66) ++ EBADF = syscall.Errno(0x9) ++ EBADFD = syscall.Errno(0x5d) ++ EBADMSG = syscall.Errno(0x4c) ++ EBADR = syscall.Errno(0x67) ++ EBADRQC = syscall.Errno(0x6a) ++ EBADSLT = syscall.Errno(0x6b) ++ EBFONT = syscall.Errno(0x6d) ++ EBUSY = syscall.Errno(0x10) ++ ECANCELED = syscall.Errno(0x7f) ++ ECHILD = syscall.Errno(0xa) ++ ECHRNG = syscall.Errno(0x5e) ++ ECOMM = syscall.Errno(0x55) ++ ECONNABORTED = syscall.Errno(0x35) ++ ECONNREFUSED = syscall.Errno(0x3d) ++ ECONNRESET = syscall.Errno(0x36) ++ EDEADLK = syscall.Errno(0x4e) ++ EDEADLOCK = syscall.Errno(0x6c) ++ EDESTADDRREQ = syscall.Errno(0x27) ++ EDOM = syscall.Errno(0x21) ++ EDOTDOT = syscall.Errno(0x58) ++ EDQUOT = syscall.Errno(0x45) ++ EEXIST = syscall.Errno(0x11) ++ EFAULT = syscall.Errno(0xe) ++ EFBIG = syscall.Errno(0x1b) ++ EHOSTDOWN = syscall.Errno(0x40) ++ EHOSTUNREACH = syscall.Errno(0x41) ++ EHWPOISON = syscall.Errno(0x87) ++ EIDRM = syscall.Errno(0x4d) ++ EILSEQ = syscall.Errno(0x7a) ++ EINPROGRESS = syscall.Errno(0x24) ++ EINTR = syscall.Errno(0x4) ++ EINVAL = syscall.Errno(0x16) ++ EIO = syscall.Errno(0x5) ++ EISCONN = syscall.Errno(0x38) ++ EISDIR = syscall.Errno(0x15) ++ EISNAM = syscall.Errno(0x78) ++ EKEYEXPIRED = syscall.Errno(0x81) ++ EKEYREJECTED = syscall.Errno(0x83) ++ EKEYREVOKED = syscall.Errno(0x82) ++ EL2HLT = syscall.Errno(0x65) ++ EL2NSYNC = syscall.Errno(0x5f) ++ EL3HLT = syscall.Errno(0x60) ++ EL3RST = syscall.Errno(0x61) ++ ELIBACC = syscall.Errno(0x72) ++ ELIBBAD = syscall.Errno(0x70) ++ ELIBEXEC = syscall.Errno(0x6e) ++ ELIBMAX = syscall.Errno(0x7b) ++ ELIBSCN = syscall.Errno(0x7c) ++ ELNRNG = syscall.Errno(0x62) ++ ELOOP = syscall.Errno(0x3e) ++ EMEDIUMTYPE = syscall.Errno(0x7e) ++ EMFILE = syscall.Errno(0x18) ++ EMLINK = syscall.Errno(0x1f) ++ EMSGSIZE = syscall.Errno(0x28) ++ EMULTIHOP = syscall.Errno(0x57) ++ ENAMETOOLONG = syscall.Errno(0x3f) ++ ENAVAIL = syscall.Errno(0x77) ++ ENETDOWN = syscall.Errno(0x32) ++ ENETRESET = syscall.Errno(0x34) ++ ENETUNREACH = syscall.Errno(0x33) ++ ENFILE = syscall.Errno(0x17) ++ ENOANO = syscall.Errno(0x69) ++ ENOBUFS = syscall.Errno(0x37) ++ ENOCSI = syscall.Errno(0x64) ++ ENODATA = syscall.Errno(0x6f) ++ ENODEV = syscall.Errno(0x13) ++ ENOENT = syscall.Errno(0x2) ++ ENOEXEC = syscall.Errno(0x8) ++ ENOKEY = syscall.Errno(0x80) ++ ENOLCK = syscall.Errno(0x4f) ++ ENOLINK = syscall.Errno(0x52) ++ ENOMEDIUM = syscall.Errno(0x7d) ++ ENOMEM = syscall.Errno(0xc) ++ ENOMSG = syscall.Errno(0x4b) ++ ENONET = syscall.Errno(0x50) ++ ENOPKG = syscall.Errno(0x71) ++ ENOPROTOOPT = syscall.Errno(0x2a) ++ ENOSPC = syscall.Errno(0x1c) ++ ENOSR = syscall.Errno(0x4a) ++ ENOSTR = syscall.Errno(0x48) ++ ENOSYS = syscall.Errno(0x5a) ++ ENOTBLK = syscall.Errno(0xf) ++ ENOTCONN = syscall.Errno(0x39) ++ ENOTDIR = syscall.Errno(0x14) ++ ENOTEMPTY = syscall.Errno(0x42) ++ ENOTNAM = syscall.Errno(0x76) ++ ENOTRECOVERABLE = syscall.Errno(0x85) ++ ENOTSOCK = syscall.Errno(0x26) ++ ENOTSUP = syscall.Errno(0x2d) ++ ENOTTY = syscall.Errno(0x19) ++ ENOTUNIQ = syscall.Errno(0x73) ++ ENXIO = syscall.Errno(0x6) ++ EOPNOTSUPP = syscall.Errno(0x2d) ++ EOVERFLOW = syscall.Errno(0x5c) ++ EOWNERDEAD = syscall.Errno(0x84) ++ EPERM = syscall.Errno(0x1) ++ EPFNOSUPPORT = syscall.Errno(0x2e) ++ EPIPE = syscall.Errno(0x20) ++ EPROCLIM = syscall.Errno(0x43) ++ EPROTO = syscall.Errno(0x56) ++ EPROTONOSUPPORT = syscall.Errno(0x2b) ++ EPROTOTYPE = syscall.Errno(0x29) ++ ERANGE = syscall.Errno(0x22) ++ EREMCHG = syscall.Errno(0x59) ++ EREMOTE = syscall.Errno(0x47) ++ EREMOTEIO = syscall.Errno(0x79) ++ ERESTART = syscall.Errno(0x74) ++ ERFKILL = syscall.Errno(0x86) ++ EROFS = syscall.Errno(0x1e) ++ ERREMOTE = syscall.Errno(0x51) ++ ESHUTDOWN = syscall.Errno(0x3a) ++ ESOCKTNOSUPPORT = syscall.Errno(0x2c) ++ ESPIPE = syscall.Errno(0x1d) ++ ESRCH = syscall.Errno(0x3) ++ ESRMNT = syscall.Errno(0x54) ++ ESTALE = syscall.Errno(0x46) ++ ESTRPIPE = syscall.Errno(0x5b) ++ ETIME = syscall.Errno(0x49) ++ ETIMEDOUT = syscall.Errno(0x3c) ++ ETOOMANYREFS = syscall.Errno(0x3b) ++ ETXTBSY = syscall.Errno(0x1a) ++ EUCLEAN = syscall.Errno(0x75) ++ EUNATCH = syscall.Errno(0x63) ++ EUSERS = syscall.Errno(0x44) ++ EWOULDBLOCK = syscall.Errno(0xb) ++ EXDEV = syscall.Errno(0x12) ++ EXFULL = syscall.Errno(0x68) ++) ++ ++// Signals ++const ( ++ SIGABRT = syscall.Signal(0x6) ++ SIGALRM = syscall.Signal(0xe) ++ SIGBUS = syscall.Signal(0xa) ++ SIGCHLD = syscall.Signal(0x14) ++ SIGCLD = syscall.Signal(0x14) ++ SIGCONT = syscall.Signal(0x13) ++ SIGEMT = syscall.Signal(0x7) ++ SIGFPE = syscall.Signal(0x8) ++ SIGHUP = syscall.Signal(0x1) ++ SIGILL = syscall.Signal(0x4) ++ SIGINT = syscall.Signal(0x2) ++ SIGIO = syscall.Signal(0x17) ++ SIGIOT = syscall.Signal(0x6) ++ SIGKILL = syscall.Signal(0x9) ++ SIGLOST = syscall.Signal(0x1d) ++ SIGPIPE = syscall.Signal(0xd) ++ SIGPOLL = syscall.Signal(0x17) ++ SIGPROF = syscall.Signal(0x1b) ++ SIGPWR = syscall.Signal(0x1d) ++ SIGQUIT = syscall.Signal(0x3) ++ SIGSEGV = syscall.Signal(0xb) ++ SIGSTOP = syscall.Signal(0x11) ++ SIGSYS = syscall.Signal(0xc) ++ SIGTERM = syscall.Signal(0xf) ++ SIGTRAP = syscall.Signal(0x5) ++ SIGTSTP = syscall.Signal(0x12) ++ SIGTTIN = syscall.Signal(0x15) ++ SIGTTOU = syscall.Signal(0x16) ++ SIGURG = syscall.Signal(0x10) ++ SIGUSR1 = syscall.Signal(0x1e) ++ SIGUSR2 = syscall.Signal(0x1f) ++ SIGVTALRM = syscall.Signal(0x1a) ++ SIGWINCH = syscall.Signal(0x1c) ++ SIGXCPU = syscall.Signal(0x18) ++ SIGXFSZ = syscall.Signal(0x19) ++) ++ ++// Error table ++var errors = [...]string{ ++ 1: "operation not permitted", ++ 2: "no such file or directory", ++ 3: "no such process", ++ 4: "interrupted system call", ++ 5: "input/output error", ++ 6: "no such device or address", ++ 7: "argument list too long", ++ 8: "exec format error", ++ 9: "bad file descriptor", ++ 10: "no child processes", ++ 11: "resource temporarily unavailable", ++ 12: "cannot allocate memory", ++ 13: "permission denied", ++ 14: "bad address", ++ 15: "block device required", ++ 16: "device or resource busy", ++ 17: "file exists", ++ 18: "invalid cross-device link", ++ 19: "no such device", ++ 20: "not a directory", ++ 21: "is a directory", ++ 22: "invalid argument", ++ 23: "too many open files in system", ++ 24: "too many open files", ++ 25: "inappropriate ioctl for device", ++ 26: "text file busy", ++ 27: "file too large", ++ 28: "no space left on device", ++ 29: "illegal seek", ++ 30: "read-only file system", ++ 31: "too many links", ++ 32: "broken pipe", ++ 33: "numerical argument out of domain", ++ 34: "numerical result out of range", ++ 36: "operation now in progress", ++ 37: "operation already in progress", ++ 38: "socket operation on non-socket", ++ 39: "destination address required", ++ 40: "message too long", ++ 41: "protocol wrong type for socket", ++ 42: "protocol not available", ++ 43: "protocol not supported", ++ 44: "socket type not supported", ++ 45: "operation not supported", ++ 46: "protocol family not supported", ++ 47: "address family not supported by protocol", ++ 48: "address already in use", ++ 49: "cannot assign requested address", ++ 50: "network is down", ++ 51: "network is unreachable", ++ 52: "network dropped connection on reset", ++ 53: "software caused connection abort", ++ 54: "connection reset by peer", ++ 55: "no buffer space available", ++ 56: "transport endpoint is already connected", ++ 57: "transport endpoint is not connected", ++ 58: "cannot send after transport endpoint shutdown", ++ 59: "too many references: cannot splice", ++ 60: "connection timed out", ++ 61: "connection refused", ++ 62: "too many levels of symbolic links", ++ 63: "file name too long", ++ 64: "host is down", ++ 65: "no route to host", ++ 66: "directory not empty", ++ 67: "too many processes", ++ 68: "too many users", ++ 69: "disk quota exceeded", ++ 70: "stale file handle", ++ 71: "object is remote", ++ 72: "device not a stream", ++ 73: "timer expired", ++ 74: "out of streams resources", ++ 75: "no message of desired type", ++ 76: "bad message", ++ 77: "identifier removed", ++ 78: "resource deadlock avoided", ++ 79: "no locks available", ++ 80: "machine is not on the network", ++ 81: "unknown error 81", ++ 82: "link has been severed", ++ 83: "advertise error", ++ 84: "srmount error", ++ 85: "communication error on send", ++ 86: "protocol error", ++ 87: "multihop attempted", ++ 88: "RFS specific error", ++ 89: "remote address changed", ++ 90: "function not implemented", ++ 91: "streams pipe error", ++ 92: "value too large for defined data type", ++ 93: "file descriptor in bad state", ++ 94: "channel number out of range", ++ 95: "level 2 not synchronized", ++ 96: "level 3 halted", ++ 97: "level 3 reset", ++ 98: "link number out of range", ++ 99: "protocol driver not attached", ++ 100: "no CSI structure available", ++ 101: "level 2 halted", ++ 102: "invalid exchange", ++ 103: "invalid request descriptor", ++ 104: "exchange full", ++ 105: "no anode", ++ 106: "invalid request code", ++ 107: "invalid slot", ++ 108: "file locking deadlock error", ++ 109: "bad font file format", ++ 110: "cannot exec a shared library directly", ++ 111: "no data available", ++ 112: "accessing a corrupted shared library", ++ 113: "package not installed", ++ 114: "can not access a needed shared library", ++ 115: "name not unique on network", ++ 116: "interrupted system call should be restarted", ++ 117: "structure needs cleaning", ++ 118: "not a XENIX named type file", ++ 119: "no XENIX semaphores available", ++ 120: "is a named type file", ++ 121: "remote I/O error", ++ 122: "invalid or incomplete multibyte or wide character", ++ 123: "attempting to link in too many shared libraries", ++ 124: ".lib section in a.out corrupted", ++ 125: "no medium found", ++ 126: "wrong medium type", ++ 127: "operation canceled", ++ 128: "required key not available", ++ 129: "key has expired", ++ 130: "key has been revoked", ++ 131: "key was rejected by service", ++ 132: "owner died", ++ 133: "state not recoverable", ++ 134: "operation not possible due to RF-kill", ++ 135: "memory page has hardware error", ++} ++ ++// Signal table ++var signals = [...]string{ ++ 1: "hangup", ++ 2: "interrupt", ++ 3: "quit", ++ 4: "illegal instruction", ++ 5: "trace/breakpoint trap", ++ 6: "aborted", ++ 7: "EMT trap", ++ 8: "floating point exception", ++ 9: "killed", ++ 10: "bus error", ++ 11: "segmentation fault", ++ 12: "bad system call", ++ 13: "broken pipe", ++ 14: "alarm clock", ++ 15: "terminated", ++ 16: "urgent I/O condition", ++ 17: "stopped (signal)", ++ 18: "stopped", ++ 19: "continued", ++ 20: "child exited", ++ 21: "stopped (tty input)", ++ 22: "stopped (tty output)", ++ 23: "I/O possible", ++ 24: "CPU time limit exceeded", ++ 25: "file size limit exceeded", ++ 26: "virtual timer expired", ++ 27: "profiling timer expired", ++ 28: "window changed", ++ 29: "resource lost", ++ 30: "user defined signal 1", ++ 31: "user defined signal 2", ++} +diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go +new file mode 100644 +index 0000000..b4338d5 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go +@@ -0,0 +1,1712 @@ ++// mkerrors.sh -m32 ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build 386,netbsd ++ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- -m32 _const.go ++ ++package unix ++ ++import "syscall" ++ ++const ( ++ AF_APPLETALK = 0x10 ++ AF_ARP = 0x1c ++ AF_BLUETOOTH = 0x1f ++ AF_CCITT = 0xa ++ AF_CHAOS = 0x5 ++ AF_CNT = 0x15 ++ AF_COIP = 0x14 ++ AF_DATAKIT = 0x9 ++ AF_DECnet = 0xc ++ AF_DLI = 0xd ++ AF_E164 = 0x1a ++ AF_ECMA = 0x8 ++ AF_HYLINK = 0xf ++ AF_IEEE80211 = 0x20 ++ AF_IMPLINK = 0x3 ++ AF_INET = 0x2 ++ AF_INET6 = 0x18 ++ AF_IPX = 0x17 ++ AF_ISDN = 0x1a ++ AF_ISO = 0x7 ++ AF_LAT = 0xe ++ AF_LINK = 0x12 ++ AF_LOCAL = 0x1 ++ AF_MAX = 0x23 ++ AF_MPLS = 0x21 ++ AF_NATM = 0x1b ++ AF_NS = 0x6 ++ AF_OROUTE = 0x11 ++ AF_OSI = 0x7 ++ AF_PUP = 0x4 ++ AF_ROUTE = 0x22 ++ AF_SNA = 0xb ++ AF_UNIX = 0x1 ++ AF_UNSPEC = 0x0 ++ ARPHRD_ARCNET = 0x7 ++ ARPHRD_ETHER = 0x1 ++ ARPHRD_FRELAY = 0xf ++ ARPHRD_IEEE1394 = 0x18 ++ ARPHRD_IEEE802 = 0x6 ++ ARPHRD_STRIP = 0x17 ++ B0 = 0x0 ++ B110 = 0x6e ++ B115200 = 0x1c200 ++ B1200 = 0x4b0 ++ B134 = 0x86 ++ B14400 = 0x3840 ++ B150 = 0x96 ++ B1800 = 0x708 ++ B19200 = 0x4b00 ++ B200 = 0xc8 ++ B230400 = 0x38400 ++ B2400 = 0x960 ++ B28800 = 0x7080 ++ B300 = 0x12c ++ B38400 = 0x9600 ++ B460800 = 0x70800 ++ B4800 = 0x12c0 ++ B50 = 0x32 ++ B57600 = 0xe100 ++ B600 = 0x258 ++ B7200 = 0x1c20 ++ B75 = 0x4b ++ B76800 = 0x12c00 ++ B921600 = 0xe1000 ++ B9600 = 0x2580 ++ BIOCFEEDBACK = 0x8004427d ++ BIOCFLUSH = 0x20004268 ++ BIOCGBLEN = 0x40044266 ++ BIOCGDLT = 0x4004426a ++ BIOCGDLTLIST = 0xc0084277 ++ BIOCGETIF = 0x4090426b ++ BIOCGFEEDBACK = 0x4004427c ++ BIOCGHDRCMPLT = 0x40044274 ++ BIOCGRTIMEOUT = 0x400c427b ++ BIOCGSEESENT = 0x40044278 ++ BIOCGSTATS = 0x4080426f ++ BIOCGSTATSOLD = 0x4008426f ++ BIOCIMMEDIATE = 0x80044270 ++ BIOCPROMISC = 0x20004269 ++ BIOCSBLEN = 0xc0044266 ++ BIOCSDLT = 0x80044276 ++ BIOCSETF = 0x80084267 ++ BIOCSETIF = 0x8090426c ++ BIOCSFEEDBACK = 0x8004427d ++ BIOCSHDRCMPLT = 0x80044275 ++ BIOCSRTIMEOUT = 0x800c427a ++ BIOCSSEESENT = 0x80044279 ++ BIOCSTCPF = 0x80084272 ++ BIOCSUDPF = 0x80084273 ++ BIOCVERSION = 0x40044271 ++ BPF_A = 0x10 ++ BPF_ABS = 0x20 ++ BPF_ADD = 0x0 ++ BPF_ALIGNMENT = 0x4 ++ BPF_ALIGNMENT32 = 0x4 ++ BPF_ALU = 0x4 ++ BPF_AND = 0x50 ++ BPF_B = 0x10 ++ BPF_DFLTBUFSIZE = 0x100000 ++ BPF_DIV = 0x30 ++ BPF_H = 0x8 ++ BPF_IMM = 0x0 ++ BPF_IND = 0x40 ++ BPF_JA = 0x0 ++ BPF_JEQ = 0x10 ++ BPF_JGE = 0x30 ++ BPF_JGT = 0x20 ++ BPF_JMP = 0x5 ++ BPF_JSET = 0x40 ++ BPF_K = 0x0 ++ BPF_LD = 0x0 ++ BPF_LDX = 0x1 ++ BPF_LEN = 0x80 ++ BPF_LSH = 0x60 ++ BPF_MAJOR_VERSION = 0x1 ++ BPF_MAXBUFSIZE = 0x1000000 ++ BPF_MAXINSNS = 0x200 ++ BPF_MEM = 0x60 ++ BPF_MEMWORDS = 0x10 ++ BPF_MINBUFSIZE = 0x20 ++ BPF_MINOR_VERSION = 0x1 ++ BPF_MISC = 0x7 ++ BPF_MSH = 0xa0 ++ BPF_MUL = 0x20 ++ BPF_NEG = 0x80 ++ BPF_OR = 0x40 ++ BPF_RELEASE = 0x30bb6 ++ BPF_RET = 0x6 ++ BPF_RSH = 0x70 ++ BPF_ST = 0x2 ++ BPF_STX = 0x3 ++ BPF_SUB = 0x10 ++ BPF_TAX = 0x0 ++ BPF_TXA = 0x80 ++ BPF_W = 0x0 ++ BPF_X = 0x8 ++ BRKINT = 0x2 ++ CFLUSH = 0xf ++ CLOCAL = 0x8000 ++ CLONE_CSIGNAL = 0xff ++ CLONE_FILES = 0x400 ++ CLONE_FS = 0x200 ++ CLONE_PID = 0x1000 ++ CLONE_PTRACE = 0x2000 ++ CLONE_SIGHAND = 0x800 ++ CLONE_VFORK = 0x4000 ++ CLONE_VM = 0x100 ++ CREAD = 0x800 ++ CS5 = 0x0 ++ CS6 = 0x100 ++ CS7 = 0x200 ++ CS8 = 0x300 ++ CSIZE = 0x300 ++ CSTART = 0x11 ++ CSTATUS = 0x14 ++ CSTOP = 0x13 ++ CSTOPB = 0x400 ++ CSUSP = 0x1a ++ CTL_MAXNAME = 0xc ++ CTL_NET = 0x4 ++ CTL_QUERY = -0x2 ++ DIOCBSFLUSH = 0x20006478 ++ DLT_A429 = 0xb8 ++ DLT_A653_ICM = 0xb9 ++ DLT_AIRONET_HEADER = 0x78 ++ DLT_AOS = 0xde ++ DLT_APPLE_IP_OVER_IEEE1394 = 0x8a ++ DLT_ARCNET = 0x7 ++ DLT_ARCNET_LINUX = 0x81 ++ DLT_ATM_CLIP = 0x13 ++ DLT_ATM_RFC1483 = 0xb ++ DLT_AURORA = 0x7e ++ DLT_AX25 = 0x3 ++ DLT_AX25_KISS = 0xca ++ DLT_BACNET_MS_TP = 0xa5 ++ DLT_BLUETOOTH_HCI_H4 = 0xbb ++ DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 ++ DLT_CAN20B = 0xbe ++ DLT_CAN_SOCKETCAN = 0xe3 ++ DLT_CHAOS = 0x5 ++ DLT_CISCO_IOS = 0x76 ++ DLT_C_HDLC = 0x68 ++ DLT_C_HDLC_WITH_DIR = 0xcd ++ DLT_DECT = 0xdd ++ DLT_DOCSIS = 0x8f ++ DLT_ECONET = 0x73 ++ DLT_EN10MB = 0x1 ++ DLT_EN3MB = 0x2 ++ DLT_ENC = 0x6d ++ DLT_ERF = 0xc5 ++ DLT_ERF_ETH = 0xaf ++ DLT_ERF_POS = 0xb0 ++ DLT_FC_2 = 0xe0 ++ DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 ++ DLT_FDDI = 0xa ++ DLT_FLEXRAY = 0xd2 ++ DLT_FRELAY = 0x6b ++ DLT_FRELAY_WITH_DIR = 0xce ++ DLT_GCOM_SERIAL = 0xad ++ DLT_GCOM_T1E1 = 0xac ++ DLT_GPF_F = 0xab ++ DLT_GPF_T = 0xaa ++ DLT_GPRS_LLC = 0xa9 ++ DLT_GSMTAP_ABIS = 0xda ++ DLT_GSMTAP_UM = 0xd9 ++ DLT_HDLC = 0x10 ++ DLT_HHDLC = 0x79 ++ DLT_HIPPI = 0xf ++ DLT_IBM_SN = 0x92 ++ DLT_IBM_SP = 0x91 ++ DLT_IEEE802 = 0x6 ++ DLT_IEEE802_11 = 0x69 ++ DLT_IEEE802_11_RADIO = 0x7f ++ DLT_IEEE802_11_RADIO_AVS = 0xa3 ++ DLT_IEEE802_15_4 = 0xc3 ++ DLT_IEEE802_15_4_LINUX = 0xbf ++ DLT_IEEE802_15_4_NONASK_PHY = 0xd7 ++ DLT_IEEE802_16_MAC_CPS = 0xbc ++ DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 ++ DLT_IPMB = 0xc7 ++ DLT_IPMB_LINUX = 0xd1 ++ DLT_IPNET = 0xe2 ++ DLT_IPV4 = 0xe4 ++ DLT_IPV6 = 0xe5 ++ DLT_IP_OVER_FC = 0x7a ++ DLT_JUNIPER_ATM1 = 0x89 ++ DLT_JUNIPER_ATM2 = 0x87 ++ DLT_JUNIPER_CHDLC = 0xb5 ++ DLT_JUNIPER_ES = 0x84 ++ DLT_JUNIPER_ETHER = 0xb2 ++ DLT_JUNIPER_FRELAY = 0xb4 ++ DLT_JUNIPER_GGSN = 0x85 ++ DLT_JUNIPER_ISM = 0xc2 ++ DLT_JUNIPER_MFR = 0x86 ++ DLT_JUNIPER_MLFR = 0x83 ++ DLT_JUNIPER_MLPPP = 0x82 ++ DLT_JUNIPER_MONITOR = 0xa4 ++ DLT_JUNIPER_PIC_PEER = 0xae ++ DLT_JUNIPER_PPP = 0xb3 ++ DLT_JUNIPER_PPPOE = 0xa7 ++ DLT_JUNIPER_PPPOE_ATM = 0xa8 ++ DLT_JUNIPER_SERVICES = 0x88 ++ DLT_JUNIPER_ST = 0xc8 ++ DLT_JUNIPER_VP = 0xb7 ++ DLT_LAPB_WITH_DIR = 0xcf ++ DLT_LAPD = 0xcb ++ DLT_LIN = 0xd4 ++ DLT_LINUX_EVDEV = 0xd8 ++ DLT_LINUX_IRDA = 0x90 ++ DLT_LINUX_LAPD = 0xb1 ++ DLT_LINUX_SLL = 0x71 ++ DLT_LOOP = 0x6c ++ DLT_LTALK = 0x72 ++ DLT_MFR = 0xb6 ++ DLT_MOST = 0xd3 ++ DLT_MPLS = 0xdb ++ DLT_MTP2 = 0x8c ++ DLT_MTP2_WITH_PHDR = 0x8b ++ DLT_MTP3 = 0x8d ++ DLT_NULL = 0x0 ++ DLT_PCI_EXP = 0x7d ++ DLT_PFLOG = 0x75 ++ DLT_PFSYNC = 0x12 ++ DLT_PPI = 0xc0 ++ DLT_PPP = 0x9 ++ DLT_PPP_BSDOS = 0xe ++ DLT_PPP_ETHER = 0x33 ++ DLT_PPP_PPPD = 0xa6 ++ DLT_PPP_SERIAL = 0x32 ++ DLT_PPP_WITH_DIR = 0xcc ++ DLT_PRISM_HEADER = 0x77 ++ DLT_PRONET = 0x4 ++ DLT_RAIF1 = 0xc6 ++ DLT_RAW = 0xc ++ DLT_RAWAF_MASK = 0x2240000 ++ DLT_RIO = 0x7c ++ DLT_SCCP = 0x8e ++ DLT_SITA = 0xc4 ++ DLT_SLIP = 0x8 ++ DLT_SLIP_BSDOS = 0xd ++ DLT_SUNATM = 0x7b ++ DLT_SYMANTEC_FIREWALL = 0x63 ++ DLT_TZSP = 0x80 ++ DLT_USB = 0xba ++ DLT_USB_LINUX = 0xbd ++ DLT_USB_LINUX_MMAPPED = 0xdc ++ DLT_WIHART = 0xdf ++ DLT_X2E_SERIAL = 0xd5 ++ DLT_X2E_XORAYA = 0xd6 ++ DT_BLK = 0x6 ++ DT_CHR = 0x2 ++ DT_DIR = 0x4 ++ DT_FIFO = 0x1 ++ DT_LNK = 0xa ++ DT_REG = 0x8 ++ DT_SOCK = 0xc ++ DT_UNKNOWN = 0x0 ++ DT_WHT = 0xe ++ ECHO = 0x8 ++ ECHOCTL = 0x40 ++ ECHOE = 0x2 ++ ECHOK = 0x4 ++ ECHOKE = 0x1 ++ ECHONL = 0x10 ++ ECHOPRT = 0x20 ++ EMUL_LINUX = 0x1 ++ EMUL_LINUX32 = 0x5 ++ EMUL_MAXID = 0x6 ++ EN_SW_CTL_INF = 0x1000 ++ EN_SW_CTL_PREC = 0x300 ++ EN_SW_CTL_ROUND = 0xc00 ++ EN_SW_DATACHAIN = 0x80 ++ EN_SW_DENORM = 0x2 ++ EN_SW_INVOP = 0x1 ++ EN_SW_OVERFLOW = 0x8 ++ EN_SW_PRECLOSS = 0x20 ++ EN_SW_UNDERFLOW = 0x10 ++ EN_SW_ZERODIV = 0x4 ++ ETHERCAP_JUMBO_MTU = 0x4 ++ ETHERCAP_VLAN_HWTAGGING = 0x2 ++ ETHERCAP_VLAN_MTU = 0x1 ++ ETHERMIN = 0x2e ++ ETHERMTU = 0x5dc ++ ETHERMTU_JUMBO = 0x2328 ++ ETHERTYPE_8023 = 0x4 ++ ETHERTYPE_AARP = 0x80f3 ++ ETHERTYPE_ACCTON = 0x8390 ++ ETHERTYPE_AEONIC = 0x8036 ++ ETHERTYPE_ALPHA = 0x814a ++ ETHERTYPE_AMBER = 0x6008 ++ ETHERTYPE_AMOEBA = 0x8145 ++ ETHERTYPE_APOLLO = 0x80f7 ++ ETHERTYPE_APOLLODOMAIN = 0x8019 ++ ETHERTYPE_APPLETALK = 0x809b ++ ETHERTYPE_APPLITEK = 0x80c7 ++ ETHERTYPE_ARGONAUT = 0x803a ++ ETHERTYPE_ARP = 0x806 ++ ETHERTYPE_AT = 0x809b ++ ETHERTYPE_ATALK = 0x809b ++ ETHERTYPE_ATOMIC = 0x86df ++ ETHERTYPE_ATT = 0x8069 ++ ETHERTYPE_ATTSTANFORD = 0x8008 ++ ETHERTYPE_AUTOPHON = 0x806a ++ ETHERTYPE_AXIS = 0x8856 ++ ETHERTYPE_BCLOOP = 0x9003 ++ ETHERTYPE_BOFL = 0x8102 ++ ETHERTYPE_CABLETRON = 0x7034 ++ ETHERTYPE_CHAOS = 0x804 ++ ETHERTYPE_COMDESIGN = 0x806c ++ ETHERTYPE_COMPUGRAPHIC = 0x806d ++ ETHERTYPE_COUNTERPOINT = 0x8062 ++ ETHERTYPE_CRONUS = 0x8004 ++ ETHERTYPE_CRONUSVLN = 0x8003 ++ ETHERTYPE_DCA = 0x1234 ++ ETHERTYPE_DDE = 0x807b ++ ETHERTYPE_DEBNI = 0xaaaa ++ ETHERTYPE_DECAM = 0x8048 ++ ETHERTYPE_DECCUST = 0x6006 ++ ETHERTYPE_DECDIAG = 0x6005 ++ ETHERTYPE_DECDNS = 0x803c ++ ETHERTYPE_DECDTS = 0x803e ++ ETHERTYPE_DECEXPER = 0x6000 ++ ETHERTYPE_DECLAST = 0x8041 ++ ETHERTYPE_DECLTM = 0x803f ++ ETHERTYPE_DECMUMPS = 0x6009 ++ ETHERTYPE_DECNETBIOS = 0x8040 ++ ETHERTYPE_DELTACON = 0x86de ++ ETHERTYPE_DIDDLE = 0x4321 ++ ETHERTYPE_DLOG1 = 0x660 ++ ETHERTYPE_DLOG2 = 0x661 ++ ETHERTYPE_DN = 0x6003 ++ ETHERTYPE_DOGFIGHT = 0x1989 ++ ETHERTYPE_DSMD = 0x8039 ++ ETHERTYPE_ECMA = 0x803 ++ ETHERTYPE_ENCRYPT = 0x803d ++ ETHERTYPE_ES = 0x805d ++ ETHERTYPE_EXCELAN = 0x8010 ++ ETHERTYPE_EXPERDATA = 0x8049 ++ ETHERTYPE_FLIP = 0x8146 ++ ETHERTYPE_FLOWCONTROL = 0x8808 ++ ETHERTYPE_FRARP = 0x808 ++ ETHERTYPE_GENDYN = 0x8068 ++ ETHERTYPE_HAYES = 0x8130 ++ ETHERTYPE_HIPPI_FP = 0x8180 ++ ETHERTYPE_HITACHI = 0x8820 ++ ETHERTYPE_HP = 0x8005 ++ ETHERTYPE_IEEEPUP = 0xa00 ++ ETHERTYPE_IEEEPUPAT = 0xa01 ++ ETHERTYPE_IMLBL = 0x4c42 ++ ETHERTYPE_IMLBLDIAG = 0x424c ++ ETHERTYPE_IP = 0x800 ++ ETHERTYPE_IPAS = 0x876c ++ ETHERTYPE_IPV6 = 0x86dd ++ ETHERTYPE_IPX = 0x8137 ++ ETHERTYPE_IPXNEW = 0x8037 ++ ETHERTYPE_KALPANA = 0x8582 ++ ETHERTYPE_LANBRIDGE = 0x8038 ++ ETHERTYPE_LANPROBE = 0x8888 ++ ETHERTYPE_LAT = 0x6004 ++ ETHERTYPE_LBACK = 0x9000 ++ ETHERTYPE_LITTLE = 0x8060 ++ ETHERTYPE_LOGICRAFT = 0x8148 ++ ETHERTYPE_LOOPBACK = 0x9000 ++ ETHERTYPE_MATRA = 0x807a ++ ETHERTYPE_MAX = 0xffff ++ ETHERTYPE_MERIT = 0x807c ++ ETHERTYPE_MICP = 0x873a ++ ETHERTYPE_MOPDL = 0x6001 ++ ETHERTYPE_MOPRC = 0x6002 ++ ETHERTYPE_MOTOROLA = 0x818d ++ ETHERTYPE_MPLS = 0x8847 ++ ETHERTYPE_MPLS_MCAST = 0x8848 ++ ETHERTYPE_MUMPS = 0x813f ++ ETHERTYPE_NBPCC = 0x3c04 ++ ETHERTYPE_NBPCLAIM = 0x3c09 ++ ETHERTYPE_NBPCLREQ = 0x3c05 ++ ETHERTYPE_NBPCLRSP = 0x3c06 ++ ETHERTYPE_NBPCREQ = 0x3c02 ++ ETHERTYPE_NBPCRSP = 0x3c03 ++ ETHERTYPE_NBPDG = 0x3c07 ++ ETHERTYPE_NBPDGB = 0x3c08 ++ ETHERTYPE_NBPDLTE = 0x3c0a ++ ETHERTYPE_NBPRAR = 0x3c0c ++ ETHERTYPE_NBPRAS = 0x3c0b ++ ETHERTYPE_NBPRST = 0x3c0d ++ ETHERTYPE_NBPSCD = 0x3c01 ++ ETHERTYPE_NBPVCD = 0x3c00 ++ ETHERTYPE_NBS = 0x802 ++ ETHERTYPE_NCD = 0x8149 ++ ETHERTYPE_NESTAR = 0x8006 ++ ETHERTYPE_NETBEUI = 0x8191 ++ ETHERTYPE_NOVELL = 0x8138 ++ ETHERTYPE_NS = 0x600 ++ ETHERTYPE_NSAT = 0x601 ++ ETHERTYPE_NSCOMPAT = 0x807 ++ ETHERTYPE_NTRAILER = 0x10 ++ ETHERTYPE_OS9 = 0x7007 ++ ETHERTYPE_OS9NET = 0x7009 ++ ETHERTYPE_PACER = 0x80c6 ++ ETHERTYPE_PAE = 0x888e ++ ETHERTYPE_PCS = 0x4242 ++ ETHERTYPE_PLANNING = 0x8044 ++ ETHERTYPE_PPP = 0x880b ++ ETHERTYPE_PPPOE = 0x8864 ++ ETHERTYPE_PPPOEDISC = 0x8863 ++ ETHERTYPE_PRIMENTS = 0x7031 ++ ETHERTYPE_PUP = 0x200 ++ ETHERTYPE_PUPAT = 0x200 ++ ETHERTYPE_RACAL = 0x7030 ++ ETHERTYPE_RATIONAL = 0x8150 ++ ETHERTYPE_RAWFR = 0x6559 ++ ETHERTYPE_RCL = 0x1995 ++ ETHERTYPE_RDP = 0x8739 ++ ETHERTYPE_RETIX = 0x80f2 ++ ETHERTYPE_REVARP = 0x8035 ++ ETHERTYPE_SCA = 0x6007 ++ ETHERTYPE_SECTRA = 0x86db ++ ETHERTYPE_SECUREDATA = 0x876d ++ ETHERTYPE_SGITW = 0x817e ++ ETHERTYPE_SG_BOUNCE = 0x8016 ++ ETHERTYPE_SG_DIAG = 0x8013 ++ ETHERTYPE_SG_NETGAMES = 0x8014 ++ ETHERTYPE_SG_RESV = 0x8015 ++ ETHERTYPE_SIMNET = 0x5208 ++ ETHERTYPE_SLOWPROTOCOLS = 0x8809 ++ ETHERTYPE_SNA = 0x80d5 ++ ETHERTYPE_SNMP = 0x814c ++ ETHERTYPE_SONIX = 0xfaf5 ++ ETHERTYPE_SPIDER = 0x809f ++ ETHERTYPE_SPRITE = 0x500 ++ ETHERTYPE_STP = 0x8181 ++ ETHERTYPE_TALARIS = 0x812b ++ ETHERTYPE_TALARISMC = 0x852b ++ ETHERTYPE_TCPCOMP = 0x876b ++ ETHERTYPE_TCPSM = 0x9002 ++ ETHERTYPE_TEC = 0x814f ++ ETHERTYPE_TIGAN = 0x802f ++ ETHERTYPE_TRAIL = 0x1000 ++ ETHERTYPE_TRANSETHER = 0x6558 ++ ETHERTYPE_TYMSHARE = 0x802e ++ ETHERTYPE_UBBST = 0x7005 ++ ETHERTYPE_UBDEBUG = 0x900 ++ ETHERTYPE_UBDIAGLOOP = 0x7002 ++ ETHERTYPE_UBDL = 0x7000 ++ ETHERTYPE_UBNIU = 0x7001 ++ ETHERTYPE_UBNMC = 0x7003 ++ ETHERTYPE_VALID = 0x1600 ++ ETHERTYPE_VARIAN = 0x80dd ++ ETHERTYPE_VAXELN = 0x803b ++ ETHERTYPE_VEECO = 0x8067 ++ ETHERTYPE_VEXP = 0x805b ++ ETHERTYPE_VGLAB = 0x8131 ++ ETHERTYPE_VINES = 0xbad ++ ETHERTYPE_VINESECHO = 0xbaf ++ ETHERTYPE_VINESLOOP = 0xbae ++ ETHERTYPE_VITAL = 0xff00 ++ ETHERTYPE_VLAN = 0x8100 ++ ETHERTYPE_VLTLMAN = 0x8080 ++ ETHERTYPE_VPROD = 0x805c ++ ETHERTYPE_VURESERVED = 0x8147 ++ ETHERTYPE_WATERLOO = 0x8130 ++ ETHERTYPE_WELLFLEET = 0x8103 ++ ETHERTYPE_X25 = 0x805 ++ ETHERTYPE_X75 = 0x801 ++ ETHERTYPE_XNSSM = 0x9001 ++ ETHERTYPE_XTP = 0x817d ++ ETHER_ADDR_LEN = 0x6 ++ ETHER_CRC_LEN = 0x4 ++ ETHER_CRC_POLY_BE = 0x4c11db6 ++ ETHER_CRC_POLY_LE = 0xedb88320 ++ ETHER_HDR_LEN = 0xe ++ ETHER_MAX_LEN = 0x5ee ++ ETHER_MAX_LEN_JUMBO = 0x233a ++ ETHER_MIN_LEN = 0x40 ++ ETHER_PPPOE_ENCAP_LEN = 0x8 ++ ETHER_TYPE_LEN = 0x2 ++ ETHER_VLAN_ENCAP_LEN = 0x4 ++ EVFILT_AIO = 0x2 ++ EVFILT_PROC = 0x4 ++ EVFILT_READ = 0x0 ++ EVFILT_SIGNAL = 0x5 ++ EVFILT_SYSCOUNT = 0x7 ++ EVFILT_TIMER = 0x6 ++ EVFILT_VNODE = 0x3 ++ EVFILT_WRITE = 0x1 ++ EV_ADD = 0x1 ++ EV_CLEAR = 0x20 ++ EV_DELETE = 0x2 ++ EV_DISABLE = 0x8 ++ EV_ENABLE = 0x4 ++ EV_EOF = 0x8000 ++ EV_ERROR = 0x4000 ++ EV_FLAG1 = 0x2000 ++ EV_ONESHOT = 0x10 ++ EV_SYSFLAGS = 0xf000 ++ EXTA = 0x4b00 ++ EXTB = 0x9600 ++ EXTPROC = 0x800 ++ FD_CLOEXEC = 0x1 ++ FD_SETSIZE = 0x100 ++ FLUSHO = 0x800000 ++ F_CLOSEM = 0xa ++ F_DUPFD = 0x0 ++ F_DUPFD_CLOEXEC = 0xc ++ F_FSCTL = -0x80000000 ++ F_FSDIRMASK = 0x70000000 ++ F_FSIN = 0x10000000 ++ F_FSINOUT = 0x30000000 ++ F_FSOUT = 0x20000000 ++ F_FSPRIV = 0x8000 ++ F_FSVOID = 0x40000000 ++ F_GETFD = 0x1 ++ F_GETFL = 0x3 ++ F_GETLK = 0x7 ++ F_GETNOSIGPIPE = 0xd ++ F_GETOWN = 0x5 ++ F_MAXFD = 0xb ++ F_OK = 0x0 ++ F_PARAM_MASK = 0xfff ++ F_PARAM_MAX = 0xfff ++ F_RDLCK = 0x1 ++ F_SETFD = 0x2 ++ F_SETFL = 0x4 ++ F_SETLK = 0x8 ++ F_SETLKW = 0x9 ++ F_SETNOSIGPIPE = 0xe ++ F_SETOWN = 0x6 ++ F_UNLCK = 0x2 ++ F_WRLCK = 0x3 ++ HUPCL = 0x4000 ++ ICANON = 0x100 ++ ICMP6_FILTER = 0x12 ++ ICRNL = 0x100 ++ IEXTEN = 0x400 ++ IFAN_ARRIVAL = 0x0 ++ IFAN_DEPARTURE = 0x1 ++ IFA_ROUTE = 0x1 ++ IFF_ALLMULTI = 0x200 ++ IFF_BROADCAST = 0x2 ++ IFF_CANTCHANGE = 0x8f52 ++ IFF_DEBUG = 0x4 ++ IFF_LINK0 = 0x1000 ++ IFF_LINK1 = 0x2000 ++ IFF_LINK2 = 0x4000 ++ IFF_LOOPBACK = 0x8 ++ IFF_MULTICAST = 0x8000 ++ IFF_NOARP = 0x80 ++ IFF_NOTRAILERS = 0x20 ++ IFF_OACTIVE = 0x400 ++ IFF_POINTOPOINT = 0x10 ++ IFF_PROMISC = 0x100 ++ IFF_RUNNING = 0x40 ++ IFF_SIMPLEX = 0x800 ++ IFF_UP = 0x1 ++ IFNAMSIZ = 0x10 ++ IFT_1822 = 0x2 ++ IFT_A12MPPSWITCH = 0x82 ++ IFT_AAL2 = 0xbb ++ IFT_AAL5 = 0x31 ++ IFT_ADSL = 0x5e ++ IFT_AFLANE8023 = 0x3b ++ IFT_AFLANE8025 = 0x3c ++ IFT_ARAP = 0x58 ++ IFT_ARCNET = 0x23 ++ IFT_ARCNETPLUS = 0x24 ++ IFT_ASYNC = 0x54 ++ IFT_ATM = 0x25 ++ IFT_ATMDXI = 0x69 ++ IFT_ATMFUNI = 0x6a ++ IFT_ATMIMA = 0x6b ++ IFT_ATMLOGICAL = 0x50 ++ IFT_ATMRADIO = 0xbd ++ IFT_ATMSUBINTERFACE = 0x86 ++ IFT_ATMVCIENDPT = 0xc2 ++ IFT_ATMVIRTUAL = 0x95 ++ IFT_BGPPOLICYACCOUNTING = 0xa2 ++ IFT_BRIDGE = 0xd1 ++ IFT_BSC = 0x53 ++ IFT_CARP = 0xf8 ++ IFT_CCTEMUL = 0x3d ++ IFT_CEPT = 0x13 ++ IFT_CES = 0x85 ++ IFT_CHANNEL = 0x46 ++ IFT_CNR = 0x55 ++ IFT_COFFEE = 0x84 ++ IFT_COMPOSITELINK = 0x9b ++ IFT_DCN = 0x8d ++ IFT_DIGITALPOWERLINE = 0x8a ++ IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba ++ IFT_DLSW = 0x4a ++ IFT_DOCSCABLEDOWNSTREAM = 0x80 ++ IFT_DOCSCABLEMACLAYER = 0x7f ++ IFT_DOCSCABLEUPSTREAM = 0x81 ++ IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd ++ IFT_DS0 = 0x51 ++ IFT_DS0BUNDLE = 0x52 ++ IFT_DS1FDL = 0xaa ++ IFT_DS3 = 0x1e ++ IFT_DTM = 0x8c ++ IFT_DVBASILN = 0xac ++ IFT_DVBASIOUT = 0xad ++ IFT_DVBRCCDOWNSTREAM = 0x93 ++ IFT_DVBRCCMACLAYER = 0x92 ++ IFT_DVBRCCUPSTREAM = 0x94 ++ IFT_ECONET = 0xce ++ IFT_EON = 0x19 ++ IFT_EPLRS = 0x57 ++ IFT_ESCON = 0x49 ++ IFT_ETHER = 0x6 ++ IFT_FAITH = 0xf2 ++ IFT_FAST = 0x7d ++ IFT_FASTETHER = 0x3e ++ IFT_FASTETHERFX = 0x45 ++ IFT_FDDI = 0xf ++ IFT_FIBRECHANNEL = 0x38 ++ IFT_FRAMERELAYINTERCONNECT = 0x3a ++ IFT_FRAMERELAYMPI = 0x5c ++ IFT_FRDLCIENDPT = 0xc1 ++ IFT_FRELAY = 0x20 ++ IFT_FRELAYDCE = 0x2c ++ IFT_FRF16MFRBUNDLE = 0xa3 ++ IFT_FRFORWARD = 0x9e ++ IFT_G703AT2MB = 0x43 ++ IFT_G703AT64K = 0x42 ++ IFT_GIF = 0xf0 ++ IFT_GIGABITETHERNET = 0x75 ++ IFT_GR303IDT = 0xb2 ++ IFT_GR303RDT = 0xb1 ++ IFT_H323GATEKEEPER = 0xa4 ++ IFT_H323PROXY = 0xa5 ++ IFT_HDH1822 = 0x3 ++ IFT_HDLC = 0x76 ++ IFT_HDSL2 = 0xa8 ++ IFT_HIPERLAN2 = 0xb7 ++ IFT_HIPPI = 0x2f ++ IFT_HIPPIINTERFACE = 0x39 ++ IFT_HOSTPAD = 0x5a ++ IFT_HSSI = 0x2e ++ IFT_HY = 0xe ++ IFT_IBM370PARCHAN = 0x48 ++ IFT_IDSL = 0x9a ++ IFT_IEEE1394 = 0x90 ++ IFT_IEEE80211 = 0x47 ++ IFT_IEEE80212 = 0x37 ++ IFT_IEEE8023ADLAG = 0xa1 ++ IFT_IFGSN = 0x91 ++ IFT_IMT = 0xbe ++ IFT_INFINIBAND = 0xc7 ++ IFT_INTERLEAVE = 0x7c ++ IFT_IP = 0x7e ++ IFT_IPFORWARD = 0x8e ++ IFT_IPOVERATM = 0x72 ++ IFT_IPOVERCDLC = 0x6d ++ IFT_IPOVERCLAW = 0x6e ++ IFT_IPSWITCH = 0x4e ++ IFT_ISDN = 0x3f ++ IFT_ISDNBASIC = 0x14 ++ IFT_ISDNPRIMARY = 0x15 ++ IFT_ISDNS = 0x4b ++ IFT_ISDNU = 0x4c ++ IFT_ISO88022LLC = 0x29 ++ IFT_ISO88023 = 0x7 ++ IFT_ISO88024 = 0x8 ++ IFT_ISO88025 = 0x9 ++ IFT_ISO88025CRFPINT = 0x62 ++ IFT_ISO88025DTR = 0x56 ++ IFT_ISO88025FIBER = 0x73 ++ IFT_ISO88026 = 0xa ++ IFT_ISUP = 0xb3 ++ IFT_L2VLAN = 0x87 ++ IFT_L3IPVLAN = 0x88 ++ IFT_L3IPXVLAN = 0x89 ++ IFT_LAPB = 0x10 ++ IFT_LAPD = 0x4d ++ IFT_LAPF = 0x77 ++ IFT_LINEGROUP = 0xd2 ++ IFT_LOCALTALK = 0x2a ++ IFT_LOOP = 0x18 ++ IFT_MEDIAMAILOVERIP = 0x8b ++ IFT_MFSIGLINK = 0xa7 ++ IFT_MIOX25 = 0x26 ++ IFT_MODEM = 0x30 ++ IFT_MPC = 0x71 ++ IFT_MPLS = 0xa6 ++ IFT_MPLSTUNNEL = 0x96 ++ IFT_MSDSL = 0x8f ++ IFT_MVL = 0xbf ++ IFT_MYRINET = 0x63 ++ IFT_NFAS = 0xaf ++ IFT_NSIP = 0x1b ++ IFT_OPTICALCHANNEL = 0xc3 ++ IFT_OPTICALTRANSPORT = 0xc4 ++ IFT_OTHER = 0x1 ++ IFT_P10 = 0xc ++ IFT_P80 = 0xd ++ IFT_PARA = 0x22 ++ IFT_PFLOG = 0xf5 ++ IFT_PFSYNC = 0xf6 ++ IFT_PLC = 0xae ++ IFT_PON155 = 0xcf ++ IFT_PON622 = 0xd0 ++ IFT_POS = 0xab ++ IFT_PPP = 0x17 ++ IFT_PPPMULTILINKBUNDLE = 0x6c ++ IFT_PROPATM = 0xc5 ++ IFT_PROPBWAP2MP = 0xb8 ++ IFT_PROPCNLS = 0x59 ++ IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 ++ IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 ++ IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 ++ IFT_PROPMUX = 0x36 ++ IFT_PROPVIRTUAL = 0x35 ++ IFT_PROPWIRELESSP2P = 0x9d ++ IFT_PTPSERIAL = 0x16 ++ IFT_PVC = 0xf1 ++ IFT_Q2931 = 0xc9 ++ IFT_QLLC = 0x44 ++ IFT_RADIOMAC = 0xbc ++ IFT_RADSL = 0x5f ++ IFT_REACHDSL = 0xc0 ++ IFT_RFC1483 = 0x9f ++ IFT_RS232 = 0x21 ++ IFT_RSRB = 0x4f ++ IFT_SDLC = 0x11 ++ IFT_SDSL = 0x60 ++ IFT_SHDSL = 0xa9 ++ IFT_SIP = 0x1f ++ IFT_SIPSIG = 0xcc ++ IFT_SIPTG = 0xcb ++ IFT_SLIP = 0x1c ++ IFT_SMDSDXI = 0x2b ++ IFT_SMDSICIP = 0x34 ++ IFT_SONET = 0x27 ++ IFT_SONETOVERHEADCHANNEL = 0xb9 ++ IFT_SONETPATH = 0x32 ++ IFT_SONETVT = 0x33 ++ IFT_SRP = 0x97 ++ IFT_SS7SIGLINK = 0x9c ++ IFT_STACKTOSTACK = 0x6f ++ IFT_STARLAN = 0xb ++ IFT_STF = 0xd7 ++ IFT_T1 = 0x12 ++ IFT_TDLC = 0x74 ++ IFT_TELINK = 0xc8 ++ IFT_TERMPAD = 0x5b ++ IFT_TR008 = 0xb0 ++ IFT_TRANSPHDLC = 0x7b ++ IFT_TUNNEL = 0x83 ++ IFT_ULTRA = 0x1d ++ IFT_USB = 0xa0 ++ IFT_V11 = 0x40 ++ IFT_V35 = 0x2d ++ IFT_V36 = 0x41 ++ IFT_V37 = 0x78 ++ IFT_VDSL = 0x61 ++ IFT_VIRTUALIPADDRESS = 0x70 ++ IFT_VIRTUALTG = 0xca ++ IFT_VOICEDID = 0xd5 ++ IFT_VOICEEM = 0x64 ++ IFT_VOICEEMFGD = 0xd3 ++ IFT_VOICEENCAP = 0x67 ++ IFT_VOICEFGDEANA = 0xd4 ++ IFT_VOICEFXO = 0x65 ++ IFT_VOICEFXS = 0x66 ++ IFT_VOICEOVERATM = 0x98 ++ IFT_VOICEOVERCABLE = 0xc6 ++ IFT_VOICEOVERFRAMERELAY = 0x99 ++ IFT_VOICEOVERIP = 0x68 ++ IFT_X213 = 0x5d ++ IFT_X25 = 0x5 ++ IFT_X25DDN = 0x4 ++ IFT_X25HUNTGROUP = 0x7a ++ IFT_X25MLP = 0x79 ++ IFT_X25PLE = 0x28 ++ IFT_XETHER = 0x1a ++ IGNBRK = 0x1 ++ IGNCR = 0x80 ++ IGNPAR = 0x4 ++ IMAXBEL = 0x2000 ++ INLCR = 0x40 ++ INPCK = 0x10 ++ IN_CLASSA_HOST = 0xffffff ++ IN_CLASSA_MAX = 0x80 ++ IN_CLASSA_NET = 0xff000000 ++ IN_CLASSA_NSHIFT = 0x18 ++ IN_CLASSB_HOST = 0xffff ++ IN_CLASSB_MAX = 0x10000 ++ IN_CLASSB_NET = 0xffff0000 ++ IN_CLASSB_NSHIFT = 0x10 ++ IN_CLASSC_HOST = 0xff ++ IN_CLASSC_NET = 0xffffff00 ++ IN_CLASSC_NSHIFT = 0x8 ++ IN_CLASSD_HOST = 0xfffffff ++ IN_CLASSD_NET = 0xf0000000 ++ IN_CLASSD_NSHIFT = 0x1c ++ IN_LOOPBACKNET = 0x7f ++ IPPROTO_AH = 0x33 ++ IPPROTO_CARP = 0x70 ++ IPPROTO_DONE = 0x101 ++ IPPROTO_DSTOPTS = 0x3c ++ IPPROTO_EGP = 0x8 ++ IPPROTO_ENCAP = 0x62 ++ IPPROTO_EON = 0x50 ++ IPPROTO_ESP = 0x32 ++ IPPROTO_ETHERIP = 0x61 ++ IPPROTO_FRAGMENT = 0x2c ++ IPPROTO_GGP = 0x3 ++ IPPROTO_GRE = 0x2f ++ IPPROTO_HOPOPTS = 0x0 ++ IPPROTO_ICMP = 0x1 ++ IPPROTO_ICMPV6 = 0x3a ++ IPPROTO_IDP = 0x16 ++ IPPROTO_IGMP = 0x2 ++ IPPROTO_IP = 0x0 ++ IPPROTO_IPCOMP = 0x6c ++ IPPROTO_IPIP = 0x4 ++ IPPROTO_IPV4 = 0x4 ++ IPPROTO_IPV6 = 0x29 ++ IPPROTO_IPV6_ICMP = 0x3a ++ IPPROTO_MAX = 0x100 ++ IPPROTO_MAXID = 0x34 ++ IPPROTO_MOBILE = 0x37 ++ IPPROTO_NONE = 0x3b ++ IPPROTO_PFSYNC = 0xf0 ++ IPPROTO_PIM = 0x67 ++ IPPROTO_PUP = 0xc ++ IPPROTO_RAW = 0xff ++ IPPROTO_ROUTING = 0x2b ++ IPPROTO_RSVP = 0x2e ++ IPPROTO_TCP = 0x6 ++ IPPROTO_TP = 0x1d ++ IPPROTO_UDP = 0x11 ++ IPPROTO_VRRP = 0x70 ++ IPV6_CHECKSUM = 0x1a ++ IPV6_DEFAULT_MULTICAST_HOPS = 0x1 ++ IPV6_DEFAULT_MULTICAST_LOOP = 0x1 ++ IPV6_DEFHLIM = 0x40 ++ IPV6_DONTFRAG = 0x3e ++ IPV6_DSTOPTS = 0x32 ++ IPV6_FAITH = 0x1d ++ IPV6_FLOWINFO_MASK = 0xffffff0f ++ IPV6_FLOWLABEL_MASK = 0xffff0f00 ++ IPV6_FRAGTTL = 0x78 ++ IPV6_HLIMDEC = 0x1 ++ IPV6_HOPLIMIT = 0x2f ++ IPV6_HOPOPTS = 0x31 ++ IPV6_IPSEC_POLICY = 0x1c ++ IPV6_JOIN_GROUP = 0xc ++ IPV6_LEAVE_GROUP = 0xd ++ IPV6_MAXHLIM = 0xff ++ IPV6_MAXPACKET = 0xffff ++ IPV6_MMTU = 0x500 ++ IPV6_MULTICAST_HOPS = 0xa ++ IPV6_MULTICAST_IF = 0x9 ++ IPV6_MULTICAST_LOOP = 0xb ++ IPV6_NEXTHOP = 0x30 ++ IPV6_PATHMTU = 0x2c ++ IPV6_PKTINFO = 0x2e ++ IPV6_PORTRANGE = 0xe ++ IPV6_PORTRANGE_DEFAULT = 0x0 ++ IPV6_PORTRANGE_HIGH = 0x1 ++ IPV6_PORTRANGE_LOW = 0x2 ++ IPV6_RECVDSTOPTS = 0x28 ++ IPV6_RECVHOPLIMIT = 0x25 ++ IPV6_RECVHOPOPTS = 0x27 ++ IPV6_RECVPATHMTU = 0x2b ++ IPV6_RECVPKTINFO = 0x24 ++ IPV6_RECVRTHDR = 0x26 ++ IPV6_RECVTCLASS = 0x39 ++ IPV6_RTHDR = 0x33 ++ IPV6_RTHDRDSTOPTS = 0x23 ++ IPV6_RTHDR_LOOSE = 0x0 ++ IPV6_RTHDR_STRICT = 0x1 ++ IPV6_RTHDR_TYPE_0 = 0x0 ++ IPV6_SOCKOPT_RESERVED1 = 0x3 ++ IPV6_TCLASS = 0x3d ++ IPV6_UNICAST_HOPS = 0x4 ++ IPV6_USE_MIN_MTU = 0x2a ++ IPV6_V6ONLY = 0x1b ++ IPV6_VERSION = 0x60 ++ IPV6_VERSION_MASK = 0xf0 ++ IP_ADD_MEMBERSHIP = 0xc ++ IP_DEFAULT_MULTICAST_LOOP = 0x1 ++ IP_DEFAULT_MULTICAST_TTL = 0x1 ++ IP_DF = 0x4000 ++ IP_DROP_MEMBERSHIP = 0xd ++ IP_EF = 0x8000 ++ IP_ERRORMTU = 0x15 ++ IP_HDRINCL = 0x2 ++ IP_IPSEC_POLICY = 0x16 ++ IP_MAXPACKET = 0xffff ++ IP_MAX_MEMBERSHIPS = 0x14 ++ IP_MF = 0x2000 ++ IP_MINFRAGSIZE = 0x45 ++ IP_MINTTL = 0x18 ++ IP_MSS = 0x240 ++ IP_MULTICAST_IF = 0x9 ++ IP_MULTICAST_LOOP = 0xb ++ IP_MULTICAST_TTL = 0xa ++ IP_OFFMASK = 0x1fff ++ IP_OPTIONS = 0x1 ++ IP_PORTRANGE = 0x13 ++ IP_PORTRANGE_DEFAULT = 0x0 ++ IP_PORTRANGE_HIGH = 0x1 ++ IP_PORTRANGE_LOW = 0x2 ++ IP_RECVDSTADDR = 0x7 ++ IP_RECVIF = 0x14 ++ IP_RECVOPTS = 0x5 ++ IP_RECVRETOPTS = 0x6 ++ IP_RECVTTL = 0x17 ++ IP_RETOPTS = 0x8 ++ IP_RF = 0x8000 ++ IP_TOS = 0x3 ++ IP_TTL = 0x4 ++ ISIG = 0x80 ++ ISTRIP = 0x20 ++ IXANY = 0x800 ++ IXOFF = 0x400 ++ IXON = 0x200 ++ LOCK_EX = 0x2 ++ LOCK_NB = 0x4 ++ LOCK_SH = 0x1 ++ LOCK_UN = 0x8 ++ MADV_DONTNEED = 0x4 ++ MADV_FREE = 0x6 ++ MADV_NORMAL = 0x0 ++ MADV_RANDOM = 0x1 ++ MADV_SEQUENTIAL = 0x2 ++ MADV_SPACEAVAIL = 0x5 ++ MADV_WILLNEED = 0x3 ++ MAP_ALIGNMENT_16MB = 0x18000000 ++ MAP_ALIGNMENT_1TB = 0x28000000 ++ MAP_ALIGNMENT_256TB = 0x30000000 ++ MAP_ALIGNMENT_4GB = 0x20000000 ++ MAP_ALIGNMENT_64KB = 0x10000000 ++ MAP_ALIGNMENT_64PB = 0x38000000 ++ MAP_ALIGNMENT_MASK = -0x1000000 ++ MAP_ALIGNMENT_SHIFT = 0x18 ++ MAP_ANON = 0x1000 ++ MAP_FILE = 0x0 ++ MAP_FIXED = 0x10 ++ MAP_HASSEMAPHORE = 0x200 ++ MAP_INHERIT = 0x80 ++ MAP_INHERIT_COPY = 0x1 ++ MAP_INHERIT_DEFAULT = 0x1 ++ MAP_INHERIT_DONATE_COPY = 0x3 ++ MAP_INHERIT_NONE = 0x2 ++ MAP_INHERIT_SHARE = 0x0 ++ MAP_NORESERVE = 0x40 ++ MAP_PRIVATE = 0x2 ++ MAP_RENAME = 0x20 ++ MAP_SHARED = 0x1 ++ MAP_STACK = 0x2000 ++ MAP_TRYFIXED = 0x400 ++ MAP_WIRED = 0x800 ++ MCL_CURRENT = 0x1 ++ MCL_FUTURE = 0x2 ++ MSG_BCAST = 0x100 ++ MSG_CMSG_CLOEXEC = 0x800 ++ MSG_CONTROLMBUF = 0x2000000 ++ MSG_CTRUNC = 0x20 ++ MSG_DONTROUTE = 0x4 ++ MSG_DONTWAIT = 0x80 ++ MSG_EOR = 0x8 ++ MSG_IOVUSRSPACE = 0x4000000 ++ MSG_LENUSRSPACE = 0x8000000 ++ MSG_MCAST = 0x200 ++ MSG_NAMEMBUF = 0x1000000 ++ MSG_NBIO = 0x1000 ++ MSG_NOSIGNAL = 0x400 ++ MSG_OOB = 0x1 ++ MSG_PEEK = 0x2 ++ MSG_TRUNC = 0x10 ++ MSG_USERFLAGS = 0xffffff ++ MSG_WAITALL = 0x40 ++ MS_ASYNC = 0x1 ++ MS_INVALIDATE = 0x2 ++ MS_SYNC = 0x4 ++ NAME_MAX = 0x1ff ++ NET_RT_DUMP = 0x1 ++ NET_RT_FLAGS = 0x2 ++ NET_RT_IFLIST = 0x5 ++ NET_RT_MAXID = 0x6 ++ NET_RT_OIFLIST = 0x4 ++ NET_RT_OOIFLIST = 0x3 ++ NOFLSH = 0x80000000 ++ NOTE_ATTRIB = 0x8 ++ NOTE_CHILD = 0x4 ++ NOTE_DELETE = 0x1 ++ NOTE_EXEC = 0x20000000 ++ NOTE_EXIT = 0x80000000 ++ NOTE_EXTEND = 0x4 ++ NOTE_FORK = 0x40000000 ++ NOTE_LINK = 0x10 ++ NOTE_LOWAT = 0x1 ++ NOTE_PCTRLMASK = 0xf0000000 ++ NOTE_PDATAMASK = 0xfffff ++ NOTE_RENAME = 0x20 ++ NOTE_REVOKE = 0x40 ++ NOTE_TRACK = 0x1 ++ NOTE_TRACKERR = 0x2 ++ NOTE_WRITE = 0x2 ++ OCRNL = 0x10 ++ OFIOGETBMAP = 0xc004667a ++ ONLCR = 0x2 ++ ONLRET = 0x40 ++ ONOCR = 0x20 ++ ONOEOT = 0x8 ++ OPOST = 0x1 ++ O_ACCMODE = 0x3 ++ O_ALT_IO = 0x40000 ++ O_APPEND = 0x8 ++ O_ASYNC = 0x40 ++ O_CLOEXEC = 0x400000 ++ O_CREAT = 0x200 ++ O_DIRECT = 0x80000 ++ O_DIRECTORY = 0x200000 ++ O_DSYNC = 0x10000 ++ O_EXCL = 0x800 ++ O_EXLOCK = 0x20 ++ O_FSYNC = 0x80 ++ O_NDELAY = 0x4 ++ O_NOCTTY = 0x8000 ++ O_NOFOLLOW = 0x100 ++ O_NONBLOCK = 0x4 ++ O_NOSIGPIPE = 0x1000000 ++ O_RDONLY = 0x0 ++ O_RDWR = 0x2 ++ O_RSYNC = 0x20000 ++ O_SHLOCK = 0x10 ++ O_SYNC = 0x80 ++ O_TRUNC = 0x400 ++ O_WRONLY = 0x1 ++ PARENB = 0x1000 ++ PARMRK = 0x8 ++ PARODD = 0x2000 ++ PENDIN = 0x20000000 ++ PRIO_PGRP = 0x1 ++ PRIO_PROCESS = 0x0 ++ PRIO_USER = 0x2 ++ PRI_IOFLUSH = 0x7c ++ PROT_EXEC = 0x4 ++ PROT_NONE = 0x0 ++ PROT_READ = 0x1 ++ PROT_WRITE = 0x2 ++ RLIMIT_AS = 0xa ++ RLIMIT_CORE = 0x4 ++ RLIMIT_CPU = 0x0 ++ RLIMIT_DATA = 0x2 ++ RLIMIT_FSIZE = 0x1 ++ RLIMIT_NOFILE = 0x8 ++ RLIMIT_STACK = 0x3 ++ RLIM_INFINITY = 0x7fffffffffffffff ++ RTAX_AUTHOR = 0x6 ++ RTAX_BRD = 0x7 ++ RTAX_DST = 0x0 ++ RTAX_GATEWAY = 0x1 ++ RTAX_GENMASK = 0x3 ++ RTAX_IFA = 0x5 ++ RTAX_IFP = 0x4 ++ RTAX_MAX = 0x9 ++ RTAX_NETMASK = 0x2 ++ RTAX_TAG = 0x8 ++ RTA_AUTHOR = 0x40 ++ RTA_BRD = 0x80 ++ RTA_DST = 0x1 ++ RTA_GATEWAY = 0x2 ++ RTA_GENMASK = 0x8 ++ RTA_IFA = 0x20 ++ RTA_IFP = 0x10 ++ RTA_NETMASK = 0x4 ++ RTA_TAG = 0x100 ++ RTF_ANNOUNCE = 0x20000 ++ RTF_BLACKHOLE = 0x1000 ++ RTF_CLONED = 0x2000 ++ RTF_CLONING = 0x100 ++ RTF_DONE = 0x40 ++ RTF_DYNAMIC = 0x10 ++ RTF_GATEWAY = 0x2 ++ RTF_HOST = 0x4 ++ RTF_LLINFO = 0x400 ++ RTF_MASK = 0x80 ++ RTF_MODIFIED = 0x20 ++ RTF_PROTO1 = 0x8000 ++ RTF_PROTO2 = 0x4000 ++ RTF_REJECT = 0x8 ++ RTF_SRC = 0x10000 ++ RTF_STATIC = 0x800 ++ RTF_UP = 0x1 ++ RTF_XRESOLVE = 0x200 ++ RTM_ADD = 0x1 ++ RTM_CHANGE = 0x3 ++ RTM_CHGADDR = 0x15 ++ RTM_DELADDR = 0xd ++ RTM_DELETE = 0x2 ++ RTM_GET = 0x4 ++ RTM_IEEE80211 = 0x11 ++ RTM_IFANNOUNCE = 0x10 ++ RTM_IFINFO = 0x14 ++ RTM_LLINFO_UPD = 0x13 ++ RTM_LOCK = 0x8 ++ RTM_LOSING = 0x5 ++ RTM_MISS = 0x7 ++ RTM_NEWADDR = 0xc ++ RTM_OIFINFO = 0xf ++ RTM_OLDADD = 0x9 ++ RTM_OLDDEL = 0xa ++ RTM_OOIFINFO = 0xe ++ RTM_REDIRECT = 0x6 ++ RTM_RESOLVE = 0xb ++ RTM_RTTUNIT = 0xf4240 ++ RTM_SETGATE = 0x12 ++ RTM_VERSION = 0x4 ++ RTV_EXPIRE = 0x4 ++ RTV_HOPCOUNT = 0x2 ++ RTV_MTU = 0x1 ++ RTV_RPIPE = 0x8 ++ RTV_RTT = 0x40 ++ RTV_RTTVAR = 0x80 ++ RTV_SPIPE = 0x10 ++ RTV_SSTHRESH = 0x20 ++ RUSAGE_CHILDREN = -0x1 ++ RUSAGE_SELF = 0x0 ++ SCM_CREDS = 0x4 ++ SCM_RIGHTS = 0x1 ++ SCM_TIMESTAMP = 0x8 ++ SHUT_RD = 0x0 ++ SHUT_RDWR = 0x2 ++ SHUT_WR = 0x1 ++ SIOCADDMULTI = 0x80906931 ++ SIOCADDRT = 0x8030720a ++ SIOCAIFADDR = 0x8040691a ++ SIOCALIFADDR = 0x8118691c ++ SIOCATMARK = 0x40047307 ++ SIOCDELMULTI = 0x80906932 ++ SIOCDELRT = 0x8030720b ++ SIOCDIFADDR = 0x80906919 ++ SIOCDIFPHYADDR = 0x80906949 ++ SIOCDLIFADDR = 0x8118691e ++ SIOCGDRVSPEC = 0xc01c697b ++ SIOCGETPFSYNC = 0xc09069f8 ++ SIOCGETSGCNT = 0xc0147534 ++ SIOCGETVIFCNT = 0xc0147533 ++ SIOCGHIWAT = 0x40047301 ++ SIOCGIFADDR = 0xc0906921 ++ SIOCGIFADDRPREF = 0xc0946920 ++ SIOCGIFALIAS = 0xc040691b ++ SIOCGIFBRDADDR = 0xc0906923 ++ SIOCGIFCAP = 0xc0206976 ++ SIOCGIFCONF = 0xc0086926 ++ SIOCGIFDATA = 0xc0946985 ++ SIOCGIFDLT = 0xc0906977 ++ SIOCGIFDSTADDR = 0xc0906922 ++ SIOCGIFFLAGS = 0xc0906911 ++ SIOCGIFGENERIC = 0xc090693a ++ SIOCGIFMEDIA = 0xc0286936 ++ SIOCGIFMETRIC = 0xc0906917 ++ SIOCGIFMTU = 0xc090697e ++ SIOCGIFNETMASK = 0xc0906925 ++ SIOCGIFPDSTADDR = 0xc0906948 ++ SIOCGIFPSRCADDR = 0xc0906947 ++ SIOCGLIFADDR = 0xc118691d ++ SIOCGLIFPHYADDR = 0xc118694b ++ SIOCGLINKSTR = 0xc01c6987 ++ SIOCGLOWAT = 0x40047303 ++ SIOCGPGRP = 0x40047309 ++ SIOCGVH = 0xc0906983 ++ SIOCIFCREATE = 0x8090697a ++ SIOCIFDESTROY = 0x80906979 ++ SIOCIFGCLONERS = 0xc00c6978 ++ SIOCINITIFADDR = 0xc0446984 ++ SIOCSDRVSPEC = 0x801c697b ++ SIOCSETPFSYNC = 0x809069f7 ++ SIOCSHIWAT = 0x80047300 ++ SIOCSIFADDR = 0x8090690c ++ SIOCSIFADDRPREF = 0x8094691f ++ SIOCSIFBRDADDR = 0x80906913 ++ SIOCSIFCAP = 0x80206975 ++ SIOCSIFDSTADDR = 0x8090690e ++ SIOCSIFFLAGS = 0x80906910 ++ SIOCSIFGENERIC = 0x80906939 ++ SIOCSIFMEDIA = 0xc0906935 ++ SIOCSIFMETRIC = 0x80906918 ++ SIOCSIFMTU = 0x8090697f ++ SIOCSIFNETMASK = 0x80906916 ++ SIOCSIFPHYADDR = 0x80406946 ++ SIOCSLIFPHYADDR = 0x8118694a ++ SIOCSLINKSTR = 0x801c6988 ++ SIOCSLOWAT = 0x80047302 ++ SIOCSPGRP = 0x80047308 ++ SIOCSVH = 0xc0906982 ++ SIOCZIFDATA = 0xc0946986 ++ SOCK_CLOEXEC = 0x10000000 ++ SOCK_DGRAM = 0x2 ++ SOCK_FLAGS_MASK = 0xf0000000 ++ SOCK_NONBLOCK = 0x20000000 ++ SOCK_NOSIGPIPE = 0x40000000 ++ SOCK_RAW = 0x3 ++ SOCK_RDM = 0x4 ++ SOCK_SEQPACKET = 0x5 ++ SOCK_STREAM = 0x1 ++ SOL_SOCKET = 0xffff ++ SOMAXCONN = 0x80 ++ SO_ACCEPTCONN = 0x2 ++ SO_ACCEPTFILTER = 0x1000 ++ SO_BROADCAST = 0x20 ++ SO_DEBUG = 0x1 ++ SO_DONTROUTE = 0x10 ++ SO_ERROR = 0x1007 ++ SO_KEEPALIVE = 0x8 ++ SO_LINGER = 0x80 ++ SO_NOHEADER = 0x100a ++ SO_NOSIGPIPE = 0x800 ++ SO_OOBINLINE = 0x100 ++ SO_OVERFLOWED = 0x1009 ++ SO_RCVBUF = 0x1002 ++ SO_RCVLOWAT = 0x1004 ++ SO_RCVTIMEO = 0x100c ++ SO_REUSEADDR = 0x4 ++ SO_REUSEPORT = 0x200 ++ SO_SNDBUF = 0x1001 ++ SO_SNDLOWAT = 0x1003 ++ SO_SNDTIMEO = 0x100b ++ SO_TIMESTAMP = 0x2000 ++ SO_TYPE = 0x1008 ++ SO_USELOOPBACK = 0x40 ++ SYSCTL_VERSION = 0x1000000 ++ SYSCTL_VERS_0 = 0x0 ++ SYSCTL_VERS_1 = 0x1000000 ++ SYSCTL_VERS_MASK = 0xff000000 ++ S_ARCH1 = 0x10000 ++ S_ARCH2 = 0x20000 ++ S_BLKSIZE = 0x200 ++ S_IEXEC = 0x40 ++ S_IFBLK = 0x6000 ++ S_IFCHR = 0x2000 ++ S_IFDIR = 0x4000 ++ S_IFIFO = 0x1000 ++ S_IFLNK = 0xa000 ++ S_IFMT = 0xf000 ++ S_IFREG = 0x8000 ++ S_IFSOCK = 0xc000 ++ S_IFWHT = 0xe000 ++ S_IREAD = 0x100 ++ S_IRGRP = 0x20 ++ S_IROTH = 0x4 ++ S_IRUSR = 0x100 ++ S_IRWXG = 0x38 ++ S_IRWXO = 0x7 ++ S_IRWXU = 0x1c0 ++ S_ISGID = 0x400 ++ S_ISTXT = 0x200 ++ S_ISUID = 0x800 ++ S_ISVTX = 0x200 ++ S_IWGRP = 0x10 ++ S_IWOTH = 0x2 ++ S_IWRITE = 0x80 ++ S_IWUSR = 0x80 ++ S_IXGRP = 0x8 ++ S_IXOTH = 0x1 ++ S_IXUSR = 0x40 ++ S_LOGIN_SET = 0x1 ++ TCIFLUSH = 0x1 ++ TCIOFLUSH = 0x3 ++ TCOFLUSH = 0x2 ++ TCP_CONGCTL = 0x20 ++ TCP_KEEPCNT = 0x6 ++ TCP_KEEPIDLE = 0x3 ++ TCP_KEEPINIT = 0x7 ++ TCP_KEEPINTVL = 0x5 ++ TCP_MAXBURST = 0x4 ++ TCP_MAXSEG = 0x2 ++ TCP_MAXWIN = 0xffff ++ TCP_MAX_WINSHIFT = 0xe ++ TCP_MD5SIG = 0x10 ++ TCP_MINMSS = 0xd8 ++ TCP_MSS = 0x218 ++ TCP_NODELAY = 0x1 ++ TCSAFLUSH = 0x2 ++ TIOCCBRK = 0x2000747a ++ TIOCCDTR = 0x20007478 ++ TIOCCONS = 0x80047462 ++ TIOCDCDTIMESTAMP = 0x400c7458 ++ TIOCDRAIN = 0x2000745e ++ TIOCEXCL = 0x2000740d ++ TIOCEXT = 0x80047460 ++ TIOCFLAG_CDTRCTS = 0x10 ++ TIOCFLAG_CLOCAL = 0x2 ++ TIOCFLAG_CRTSCTS = 0x4 ++ TIOCFLAG_MDMBUF = 0x8 ++ TIOCFLAG_SOFTCAR = 0x1 ++ TIOCFLUSH = 0x80047410 ++ TIOCGETA = 0x402c7413 ++ TIOCGETD = 0x4004741a ++ TIOCGFLAGS = 0x4004745d ++ TIOCGLINED = 0x40207442 ++ TIOCGPGRP = 0x40047477 ++ TIOCGQSIZE = 0x40047481 ++ TIOCGRANTPT = 0x20007447 ++ TIOCGSID = 0x40047463 ++ TIOCGSIZE = 0x40087468 ++ TIOCGWINSZ = 0x40087468 ++ TIOCMBIC = 0x8004746b ++ TIOCMBIS = 0x8004746c ++ TIOCMGET = 0x4004746a ++ TIOCMSET = 0x8004746d ++ TIOCM_CAR = 0x40 ++ TIOCM_CD = 0x40 ++ TIOCM_CTS = 0x20 ++ TIOCM_DSR = 0x100 ++ TIOCM_DTR = 0x2 ++ TIOCM_LE = 0x1 ++ TIOCM_RI = 0x80 ++ TIOCM_RNG = 0x80 ++ TIOCM_RTS = 0x4 ++ TIOCM_SR = 0x10 ++ TIOCM_ST = 0x8 ++ TIOCNOTTY = 0x20007471 ++ TIOCNXCL = 0x2000740e ++ TIOCOUTQ = 0x40047473 ++ TIOCPKT = 0x80047470 ++ TIOCPKT_DATA = 0x0 ++ TIOCPKT_DOSTOP = 0x20 ++ TIOCPKT_FLUSHREAD = 0x1 ++ TIOCPKT_FLUSHWRITE = 0x2 ++ TIOCPKT_IOCTL = 0x40 ++ TIOCPKT_NOSTOP = 0x10 ++ TIOCPKT_START = 0x8 ++ TIOCPKT_STOP = 0x4 ++ TIOCPTMGET = 0x40287446 ++ TIOCPTSNAME = 0x40287448 ++ TIOCRCVFRAME = 0x80047445 ++ TIOCREMOTE = 0x80047469 ++ TIOCSBRK = 0x2000747b ++ TIOCSCTTY = 0x20007461 ++ TIOCSDTR = 0x20007479 ++ TIOCSETA = 0x802c7414 ++ TIOCSETAF = 0x802c7416 ++ TIOCSETAW = 0x802c7415 ++ TIOCSETD = 0x8004741b ++ TIOCSFLAGS = 0x8004745c ++ TIOCSIG = 0x2000745f ++ TIOCSLINED = 0x80207443 ++ TIOCSPGRP = 0x80047476 ++ TIOCSQSIZE = 0x80047480 ++ TIOCSSIZE = 0x80087467 ++ TIOCSTART = 0x2000746e ++ TIOCSTAT = 0x80047465 ++ TIOCSTI = 0x80017472 ++ TIOCSTOP = 0x2000746f ++ TIOCSWINSZ = 0x80087467 ++ TIOCUCNTL = 0x80047466 ++ TIOCXMTFRAME = 0x80047444 ++ TOSTOP = 0x400000 ++ VDISCARD = 0xf ++ VDSUSP = 0xb ++ VEOF = 0x0 ++ VEOL = 0x1 ++ VEOL2 = 0x2 ++ VERASE = 0x3 ++ VINTR = 0x8 ++ VKILL = 0x5 ++ VLNEXT = 0xe ++ VMIN = 0x10 ++ VQUIT = 0x9 ++ VREPRINT = 0x6 ++ VSTART = 0xc ++ VSTATUS = 0x12 ++ VSTOP = 0xd ++ VSUSP = 0xa ++ VTIME = 0x11 ++ VWERASE = 0x4 ++ WALL = 0x8 ++ WALLSIG = 0x8 ++ WALTSIG = 0x4 ++ WCLONE = 0x4 ++ WCOREFLAG = 0x80 ++ WNOHANG = 0x1 ++ WNOWAIT = 0x10000 ++ WNOZOMBIE = 0x20000 ++ WOPTSCHECKED = 0x40000 ++ WSTOPPED = 0x7f ++ WUNTRACED = 0x2 ++) ++ ++// Errors ++const ( ++ E2BIG = syscall.Errno(0x7) ++ EACCES = syscall.Errno(0xd) ++ EADDRINUSE = syscall.Errno(0x30) ++ EADDRNOTAVAIL = syscall.Errno(0x31) ++ EAFNOSUPPORT = syscall.Errno(0x2f) ++ EAGAIN = syscall.Errno(0x23) ++ EALREADY = syscall.Errno(0x25) ++ EAUTH = syscall.Errno(0x50) ++ EBADF = syscall.Errno(0x9) ++ EBADMSG = syscall.Errno(0x58) ++ EBADRPC = syscall.Errno(0x48) ++ EBUSY = syscall.Errno(0x10) ++ ECANCELED = syscall.Errno(0x57) ++ ECHILD = syscall.Errno(0xa) ++ ECONNABORTED = syscall.Errno(0x35) ++ ECONNREFUSED = syscall.Errno(0x3d) ++ ECONNRESET = syscall.Errno(0x36) ++ EDEADLK = syscall.Errno(0xb) ++ EDESTADDRREQ = syscall.Errno(0x27) ++ EDOM = syscall.Errno(0x21) ++ EDQUOT = syscall.Errno(0x45) ++ EEXIST = syscall.Errno(0x11) ++ EFAULT = syscall.Errno(0xe) ++ EFBIG = syscall.Errno(0x1b) ++ EFTYPE = syscall.Errno(0x4f) ++ EHOSTDOWN = syscall.Errno(0x40) ++ EHOSTUNREACH = syscall.Errno(0x41) ++ EIDRM = syscall.Errno(0x52) ++ EILSEQ = syscall.Errno(0x55) ++ EINPROGRESS = syscall.Errno(0x24) ++ EINTR = syscall.Errno(0x4) ++ EINVAL = syscall.Errno(0x16) ++ EIO = syscall.Errno(0x5) ++ EISCONN = syscall.Errno(0x38) ++ EISDIR = syscall.Errno(0x15) ++ ELAST = syscall.Errno(0x60) ++ ELOOP = syscall.Errno(0x3e) ++ EMFILE = syscall.Errno(0x18) ++ EMLINK = syscall.Errno(0x1f) ++ EMSGSIZE = syscall.Errno(0x28) ++ EMULTIHOP = syscall.Errno(0x5e) ++ ENAMETOOLONG = syscall.Errno(0x3f) ++ ENEEDAUTH = syscall.Errno(0x51) ++ ENETDOWN = syscall.Errno(0x32) ++ ENETRESET = syscall.Errno(0x34) ++ ENETUNREACH = syscall.Errno(0x33) ++ ENFILE = syscall.Errno(0x17) ++ ENOATTR = syscall.Errno(0x5d) ++ ENOBUFS = syscall.Errno(0x37) ++ ENODATA = syscall.Errno(0x59) ++ ENODEV = syscall.Errno(0x13) ++ ENOENT = syscall.Errno(0x2) ++ ENOEXEC = syscall.Errno(0x8) ++ ENOLCK = syscall.Errno(0x4d) ++ ENOLINK = syscall.Errno(0x5f) ++ ENOMEM = syscall.Errno(0xc) ++ ENOMSG = syscall.Errno(0x53) ++ ENOPROTOOPT = syscall.Errno(0x2a) ++ ENOSPC = syscall.Errno(0x1c) ++ ENOSR = syscall.Errno(0x5a) ++ ENOSTR = syscall.Errno(0x5b) ++ ENOSYS = syscall.Errno(0x4e) ++ ENOTBLK = syscall.Errno(0xf) ++ ENOTCONN = syscall.Errno(0x39) ++ ENOTDIR = syscall.Errno(0x14) ++ ENOTEMPTY = syscall.Errno(0x42) ++ ENOTSOCK = syscall.Errno(0x26) ++ ENOTSUP = syscall.Errno(0x56) ++ ENOTTY = syscall.Errno(0x19) ++ ENXIO = syscall.Errno(0x6) ++ EOPNOTSUPP = syscall.Errno(0x2d) ++ EOVERFLOW = syscall.Errno(0x54) ++ EPERM = syscall.Errno(0x1) ++ EPFNOSUPPORT = syscall.Errno(0x2e) ++ EPIPE = syscall.Errno(0x20) ++ EPROCLIM = syscall.Errno(0x43) ++ EPROCUNAVAIL = syscall.Errno(0x4c) ++ EPROGMISMATCH = syscall.Errno(0x4b) ++ EPROGUNAVAIL = syscall.Errno(0x4a) ++ EPROTO = syscall.Errno(0x60) ++ EPROTONOSUPPORT = syscall.Errno(0x2b) ++ EPROTOTYPE = syscall.Errno(0x29) ++ ERANGE = syscall.Errno(0x22) ++ EREMOTE = syscall.Errno(0x47) ++ EROFS = syscall.Errno(0x1e) ++ ERPCMISMATCH = syscall.Errno(0x49) ++ ESHUTDOWN = syscall.Errno(0x3a) ++ ESOCKTNOSUPPORT = syscall.Errno(0x2c) ++ ESPIPE = syscall.Errno(0x1d) ++ ESRCH = syscall.Errno(0x3) ++ ESTALE = syscall.Errno(0x46) ++ ETIME = syscall.Errno(0x5c) ++ ETIMEDOUT = syscall.Errno(0x3c) ++ ETOOMANYREFS = syscall.Errno(0x3b) ++ ETXTBSY = syscall.Errno(0x1a) ++ EUSERS = syscall.Errno(0x44) ++ EWOULDBLOCK = syscall.Errno(0x23) ++ EXDEV = syscall.Errno(0x12) ++) ++ ++// Signals ++const ( ++ SIGABRT = syscall.Signal(0x6) ++ SIGALRM = syscall.Signal(0xe) ++ SIGBUS = syscall.Signal(0xa) ++ SIGCHLD = syscall.Signal(0x14) ++ SIGCONT = syscall.Signal(0x13) ++ SIGEMT = syscall.Signal(0x7) ++ SIGFPE = syscall.Signal(0x8) ++ SIGHUP = syscall.Signal(0x1) ++ SIGILL = syscall.Signal(0x4) ++ SIGINFO = syscall.Signal(0x1d) ++ SIGINT = syscall.Signal(0x2) ++ SIGIO = syscall.Signal(0x17) ++ SIGIOT = syscall.Signal(0x6) ++ SIGKILL = syscall.Signal(0x9) ++ SIGPIPE = syscall.Signal(0xd) ++ SIGPROF = syscall.Signal(0x1b) ++ SIGPWR = syscall.Signal(0x20) ++ SIGQUIT = syscall.Signal(0x3) ++ SIGSEGV = syscall.Signal(0xb) ++ SIGSTOP = syscall.Signal(0x11) ++ SIGSYS = syscall.Signal(0xc) ++ SIGTERM = syscall.Signal(0xf) ++ SIGTRAP = syscall.Signal(0x5) ++ SIGTSTP = syscall.Signal(0x12) ++ SIGTTIN = syscall.Signal(0x15) ++ SIGTTOU = syscall.Signal(0x16) ++ SIGURG = syscall.Signal(0x10) ++ SIGUSR1 = syscall.Signal(0x1e) ++ SIGUSR2 = syscall.Signal(0x1f) ++ SIGVTALRM = syscall.Signal(0x1a) ++ SIGWINCH = syscall.Signal(0x1c) ++ SIGXCPU = syscall.Signal(0x18) ++ SIGXFSZ = syscall.Signal(0x19) ++) ++ ++// Error table ++var errors = [...]string{ ++ 1: "operation not permitted", ++ 2: "no such file or directory", ++ 3: "no such process", ++ 4: "interrupted system call", ++ 5: "input/output error", ++ 6: "device not configured", ++ 7: "argument list too long", ++ 8: "exec format error", ++ 9: "bad file descriptor", ++ 10: "no child processes", ++ 11: "resource deadlock avoided", ++ 12: "cannot allocate memory", ++ 13: "permission denied", ++ 14: "bad address", ++ 15: "block device required", ++ 16: "device busy", ++ 17: "file exists", ++ 18: "cross-device link", ++ 19: "operation not supported by device", ++ 20: "not a directory", ++ 21: "is a directory", ++ 22: "invalid argument", ++ 23: "too many open files in system", ++ 24: "too many open files", ++ 25: "inappropriate ioctl for device", ++ 26: "text file busy", ++ 27: "file too large", ++ 28: "no space left on device", ++ 29: "illegal seek", ++ 30: "read-only file system", ++ 31: "too many links", ++ 32: "broken pipe", ++ 33: "numerical argument out of domain", ++ 34: "result too large or too small", ++ 35: "resource temporarily unavailable", ++ 36: "operation now in progress", ++ 37: "operation already in progress", ++ 38: "socket operation on non-socket", ++ 39: "destination address required", ++ 40: "message too long", ++ 41: "protocol wrong type for socket", ++ 42: "protocol option not available", ++ 43: "protocol not supported", ++ 44: "socket type not supported", ++ 45: "operation not supported", ++ 46: "protocol family not supported", ++ 47: "address family not supported by protocol family", ++ 48: "address already in use", ++ 49: "can't assign requested address", ++ 50: "network is down", ++ 51: "network is unreachable", ++ 52: "network dropped connection on reset", ++ 53: "software caused connection abort", ++ 54: "connection reset by peer", ++ 55: "no buffer space available", ++ 56: "socket is already connected", ++ 57: "socket is not connected", ++ 58: "can't send after socket shutdown", ++ 59: "too many references: can't splice", ++ 60: "connection timed out", ++ 61: "connection refused", ++ 62: "too many levels of symbolic links", ++ 63: "file name too long", ++ 64: "host is down", ++ 65: "no route to host", ++ 66: "directory not empty", ++ 67: "too many processes", ++ 68: "too many users", ++ 69: "disc quota exceeded", ++ 70: "stale NFS file handle", ++ 71: "too many levels of remote in path", ++ 72: "RPC struct is bad", ++ 73: "RPC version wrong", ++ 74: "RPC prog. not avail", ++ 75: "program version wrong", ++ 76: "bad procedure for program", ++ 77: "no locks available", ++ 78: "function not implemented", ++ 79: "inappropriate file type or format", ++ 80: "authentication error", ++ 81: "need authenticator", ++ 82: "identifier removed", ++ 83: "no message of desired type", ++ 84: "value too large to be stored in data type", ++ 85: "illegal byte sequence", ++ 86: "not supported", ++ 87: "operation Canceled", ++ 88: "bad or Corrupt message", ++ 89: "no message available", ++ 90: "no STREAM resources", ++ 91: "not a STREAM", ++ 92: "STREAM ioctl timeout", ++ 93: "attribute not found", ++ 94: "multihop attempted", ++ 95: "link has been severed", ++ 96: "protocol error", ++} ++ ++// Signal table ++var signals = [...]string{ ++ 1: "hangup", ++ 2: "interrupt", ++ 3: "quit", ++ 4: "illegal instruction", ++ 5: "trace/BPT trap", ++ 6: "abort trap", ++ 7: "EMT trap", ++ 8: "floating point exception", ++ 9: "killed", ++ 10: "bus error", ++ 11: "segmentation fault", ++ 12: "bad system call", ++ 13: "broken pipe", ++ 14: "alarm clock", ++ 15: "terminated", ++ 16: "urgent I/O condition", ++ 17: "stopped (signal)", ++ 18: "stopped", ++ 19: "continued", ++ 20: "child exited", ++ 21: "stopped (tty input)", ++ 22: "stopped (tty output)", ++ 23: "I/O possible", ++ 24: "cputime limit exceeded", ++ 25: "filesize limit exceeded", ++ 26: "virtual timer expired", ++ 27: "profiling timer expired", ++ 28: "window size changes", ++ 29: "information request", ++ 30: "user defined signal 1", ++ 31: "user defined signal 2", ++ 32: "power fail/restart", ++} +diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go +new file mode 100644 +index 0000000..4994437 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go +@@ -0,0 +1,1702 @@ ++// mkerrors.sh -m64 ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build amd64,netbsd ++ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- -m64 _const.go ++ ++package unix ++ ++import "syscall" ++ ++const ( ++ AF_APPLETALK = 0x10 ++ AF_ARP = 0x1c ++ AF_BLUETOOTH = 0x1f ++ AF_CCITT = 0xa ++ AF_CHAOS = 0x5 ++ AF_CNT = 0x15 ++ AF_COIP = 0x14 ++ AF_DATAKIT = 0x9 ++ AF_DECnet = 0xc ++ AF_DLI = 0xd ++ AF_E164 = 0x1a ++ AF_ECMA = 0x8 ++ AF_HYLINK = 0xf ++ AF_IEEE80211 = 0x20 ++ AF_IMPLINK = 0x3 ++ AF_INET = 0x2 ++ AF_INET6 = 0x18 ++ AF_IPX = 0x17 ++ AF_ISDN = 0x1a ++ AF_ISO = 0x7 ++ AF_LAT = 0xe ++ AF_LINK = 0x12 ++ AF_LOCAL = 0x1 ++ AF_MAX = 0x23 ++ AF_MPLS = 0x21 ++ AF_NATM = 0x1b ++ AF_NS = 0x6 ++ AF_OROUTE = 0x11 ++ AF_OSI = 0x7 ++ AF_PUP = 0x4 ++ AF_ROUTE = 0x22 ++ AF_SNA = 0xb ++ AF_UNIX = 0x1 ++ AF_UNSPEC = 0x0 ++ ARPHRD_ARCNET = 0x7 ++ ARPHRD_ETHER = 0x1 ++ ARPHRD_FRELAY = 0xf ++ ARPHRD_IEEE1394 = 0x18 ++ ARPHRD_IEEE802 = 0x6 ++ ARPHRD_STRIP = 0x17 ++ B0 = 0x0 ++ B110 = 0x6e ++ B115200 = 0x1c200 ++ B1200 = 0x4b0 ++ B134 = 0x86 ++ B14400 = 0x3840 ++ B150 = 0x96 ++ B1800 = 0x708 ++ B19200 = 0x4b00 ++ B200 = 0xc8 ++ B230400 = 0x38400 ++ B2400 = 0x960 ++ B28800 = 0x7080 ++ B300 = 0x12c ++ B38400 = 0x9600 ++ B460800 = 0x70800 ++ B4800 = 0x12c0 ++ B50 = 0x32 ++ B57600 = 0xe100 ++ B600 = 0x258 ++ B7200 = 0x1c20 ++ B75 = 0x4b ++ B76800 = 0x12c00 ++ B921600 = 0xe1000 ++ B9600 = 0x2580 ++ BIOCFEEDBACK = 0x8004427d ++ BIOCFLUSH = 0x20004268 ++ BIOCGBLEN = 0x40044266 ++ BIOCGDLT = 0x4004426a ++ BIOCGDLTLIST = 0xc0104277 ++ BIOCGETIF = 0x4090426b ++ BIOCGFEEDBACK = 0x4004427c ++ BIOCGHDRCMPLT = 0x40044274 ++ BIOCGRTIMEOUT = 0x4010427b ++ BIOCGSEESENT = 0x40044278 ++ BIOCGSTATS = 0x4080426f ++ BIOCGSTATSOLD = 0x4008426f ++ BIOCIMMEDIATE = 0x80044270 ++ BIOCPROMISC = 0x20004269 ++ BIOCSBLEN = 0xc0044266 ++ BIOCSDLT = 0x80044276 ++ BIOCSETF = 0x80104267 ++ BIOCSETIF = 0x8090426c ++ BIOCSFEEDBACK = 0x8004427d ++ BIOCSHDRCMPLT = 0x80044275 ++ BIOCSRTIMEOUT = 0x8010427a ++ BIOCSSEESENT = 0x80044279 ++ BIOCSTCPF = 0x80104272 ++ BIOCSUDPF = 0x80104273 ++ BIOCVERSION = 0x40044271 ++ BPF_A = 0x10 ++ BPF_ABS = 0x20 ++ BPF_ADD = 0x0 ++ BPF_ALIGNMENT = 0x8 ++ BPF_ALIGNMENT32 = 0x4 ++ BPF_ALU = 0x4 ++ BPF_AND = 0x50 ++ BPF_B = 0x10 ++ BPF_DFLTBUFSIZE = 0x100000 ++ BPF_DIV = 0x30 ++ BPF_H = 0x8 ++ BPF_IMM = 0x0 ++ BPF_IND = 0x40 ++ BPF_JA = 0x0 ++ BPF_JEQ = 0x10 ++ BPF_JGE = 0x30 ++ BPF_JGT = 0x20 ++ BPF_JMP = 0x5 ++ BPF_JSET = 0x40 ++ BPF_K = 0x0 ++ BPF_LD = 0x0 ++ BPF_LDX = 0x1 ++ BPF_LEN = 0x80 ++ BPF_LSH = 0x60 ++ BPF_MAJOR_VERSION = 0x1 ++ BPF_MAXBUFSIZE = 0x1000000 ++ BPF_MAXINSNS = 0x200 ++ BPF_MEM = 0x60 ++ BPF_MEMWORDS = 0x10 ++ BPF_MINBUFSIZE = 0x20 ++ BPF_MINOR_VERSION = 0x1 ++ BPF_MISC = 0x7 ++ BPF_MSH = 0xa0 ++ BPF_MUL = 0x20 ++ BPF_NEG = 0x80 ++ BPF_OR = 0x40 ++ BPF_RELEASE = 0x30bb6 ++ BPF_RET = 0x6 ++ BPF_RSH = 0x70 ++ BPF_ST = 0x2 ++ BPF_STX = 0x3 ++ BPF_SUB = 0x10 ++ BPF_TAX = 0x0 ++ BPF_TXA = 0x80 ++ BPF_W = 0x0 ++ BPF_X = 0x8 ++ BRKINT = 0x2 ++ CFLUSH = 0xf ++ CLOCAL = 0x8000 ++ CLONE_CSIGNAL = 0xff ++ CLONE_FILES = 0x400 ++ CLONE_FS = 0x200 ++ CLONE_PID = 0x1000 ++ CLONE_PTRACE = 0x2000 ++ CLONE_SIGHAND = 0x800 ++ CLONE_VFORK = 0x4000 ++ CLONE_VM = 0x100 ++ CREAD = 0x800 ++ CS5 = 0x0 ++ CS6 = 0x100 ++ CS7 = 0x200 ++ CS8 = 0x300 ++ CSIZE = 0x300 ++ CSTART = 0x11 ++ CSTATUS = 0x14 ++ CSTOP = 0x13 ++ CSTOPB = 0x400 ++ CSUSP = 0x1a ++ CTL_MAXNAME = 0xc ++ CTL_NET = 0x4 ++ CTL_QUERY = -0x2 ++ DIOCBSFLUSH = 0x20006478 ++ DLT_A429 = 0xb8 ++ DLT_A653_ICM = 0xb9 ++ DLT_AIRONET_HEADER = 0x78 ++ DLT_AOS = 0xde ++ DLT_APPLE_IP_OVER_IEEE1394 = 0x8a ++ DLT_ARCNET = 0x7 ++ DLT_ARCNET_LINUX = 0x81 ++ DLT_ATM_CLIP = 0x13 ++ DLT_ATM_RFC1483 = 0xb ++ DLT_AURORA = 0x7e ++ DLT_AX25 = 0x3 ++ DLT_AX25_KISS = 0xca ++ DLT_BACNET_MS_TP = 0xa5 ++ DLT_BLUETOOTH_HCI_H4 = 0xbb ++ DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 ++ DLT_CAN20B = 0xbe ++ DLT_CAN_SOCKETCAN = 0xe3 ++ DLT_CHAOS = 0x5 ++ DLT_CISCO_IOS = 0x76 ++ DLT_C_HDLC = 0x68 ++ DLT_C_HDLC_WITH_DIR = 0xcd ++ DLT_DECT = 0xdd ++ DLT_DOCSIS = 0x8f ++ DLT_ECONET = 0x73 ++ DLT_EN10MB = 0x1 ++ DLT_EN3MB = 0x2 ++ DLT_ENC = 0x6d ++ DLT_ERF = 0xc5 ++ DLT_ERF_ETH = 0xaf ++ DLT_ERF_POS = 0xb0 ++ DLT_FC_2 = 0xe0 ++ DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 ++ DLT_FDDI = 0xa ++ DLT_FLEXRAY = 0xd2 ++ DLT_FRELAY = 0x6b ++ DLT_FRELAY_WITH_DIR = 0xce ++ DLT_GCOM_SERIAL = 0xad ++ DLT_GCOM_T1E1 = 0xac ++ DLT_GPF_F = 0xab ++ DLT_GPF_T = 0xaa ++ DLT_GPRS_LLC = 0xa9 ++ DLT_GSMTAP_ABIS = 0xda ++ DLT_GSMTAP_UM = 0xd9 ++ DLT_HDLC = 0x10 ++ DLT_HHDLC = 0x79 ++ DLT_HIPPI = 0xf ++ DLT_IBM_SN = 0x92 ++ DLT_IBM_SP = 0x91 ++ DLT_IEEE802 = 0x6 ++ DLT_IEEE802_11 = 0x69 ++ DLT_IEEE802_11_RADIO = 0x7f ++ DLT_IEEE802_11_RADIO_AVS = 0xa3 ++ DLT_IEEE802_15_4 = 0xc3 ++ DLT_IEEE802_15_4_LINUX = 0xbf ++ DLT_IEEE802_15_4_NONASK_PHY = 0xd7 ++ DLT_IEEE802_16_MAC_CPS = 0xbc ++ DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 ++ DLT_IPMB = 0xc7 ++ DLT_IPMB_LINUX = 0xd1 ++ DLT_IPNET = 0xe2 ++ DLT_IPV4 = 0xe4 ++ DLT_IPV6 = 0xe5 ++ DLT_IP_OVER_FC = 0x7a ++ DLT_JUNIPER_ATM1 = 0x89 ++ DLT_JUNIPER_ATM2 = 0x87 ++ DLT_JUNIPER_CHDLC = 0xb5 ++ DLT_JUNIPER_ES = 0x84 ++ DLT_JUNIPER_ETHER = 0xb2 ++ DLT_JUNIPER_FRELAY = 0xb4 ++ DLT_JUNIPER_GGSN = 0x85 ++ DLT_JUNIPER_ISM = 0xc2 ++ DLT_JUNIPER_MFR = 0x86 ++ DLT_JUNIPER_MLFR = 0x83 ++ DLT_JUNIPER_MLPPP = 0x82 ++ DLT_JUNIPER_MONITOR = 0xa4 ++ DLT_JUNIPER_PIC_PEER = 0xae ++ DLT_JUNIPER_PPP = 0xb3 ++ DLT_JUNIPER_PPPOE = 0xa7 ++ DLT_JUNIPER_PPPOE_ATM = 0xa8 ++ DLT_JUNIPER_SERVICES = 0x88 ++ DLT_JUNIPER_ST = 0xc8 ++ DLT_JUNIPER_VP = 0xb7 ++ DLT_LAPB_WITH_DIR = 0xcf ++ DLT_LAPD = 0xcb ++ DLT_LIN = 0xd4 ++ DLT_LINUX_EVDEV = 0xd8 ++ DLT_LINUX_IRDA = 0x90 ++ DLT_LINUX_LAPD = 0xb1 ++ DLT_LINUX_SLL = 0x71 ++ DLT_LOOP = 0x6c ++ DLT_LTALK = 0x72 ++ DLT_MFR = 0xb6 ++ DLT_MOST = 0xd3 ++ DLT_MPLS = 0xdb ++ DLT_MTP2 = 0x8c ++ DLT_MTP2_WITH_PHDR = 0x8b ++ DLT_MTP3 = 0x8d ++ DLT_NULL = 0x0 ++ DLT_PCI_EXP = 0x7d ++ DLT_PFLOG = 0x75 ++ DLT_PFSYNC = 0x12 ++ DLT_PPI = 0xc0 ++ DLT_PPP = 0x9 ++ DLT_PPP_BSDOS = 0xe ++ DLT_PPP_ETHER = 0x33 ++ DLT_PPP_PPPD = 0xa6 ++ DLT_PPP_SERIAL = 0x32 ++ DLT_PPP_WITH_DIR = 0xcc ++ DLT_PRISM_HEADER = 0x77 ++ DLT_PRONET = 0x4 ++ DLT_RAIF1 = 0xc6 ++ DLT_RAW = 0xc ++ DLT_RAWAF_MASK = 0x2240000 ++ DLT_RIO = 0x7c ++ DLT_SCCP = 0x8e ++ DLT_SITA = 0xc4 ++ DLT_SLIP = 0x8 ++ DLT_SLIP_BSDOS = 0xd ++ DLT_SUNATM = 0x7b ++ DLT_SYMANTEC_FIREWALL = 0x63 ++ DLT_TZSP = 0x80 ++ DLT_USB = 0xba ++ DLT_USB_LINUX = 0xbd ++ DLT_USB_LINUX_MMAPPED = 0xdc ++ DLT_WIHART = 0xdf ++ DLT_X2E_SERIAL = 0xd5 ++ DLT_X2E_XORAYA = 0xd6 ++ DT_BLK = 0x6 ++ DT_CHR = 0x2 ++ DT_DIR = 0x4 ++ DT_FIFO = 0x1 ++ DT_LNK = 0xa ++ DT_REG = 0x8 ++ DT_SOCK = 0xc ++ DT_UNKNOWN = 0x0 ++ DT_WHT = 0xe ++ ECHO = 0x8 ++ ECHOCTL = 0x40 ++ ECHOE = 0x2 ++ ECHOK = 0x4 ++ ECHOKE = 0x1 ++ ECHONL = 0x10 ++ ECHOPRT = 0x20 ++ EMUL_LINUX = 0x1 ++ EMUL_LINUX32 = 0x5 ++ EMUL_MAXID = 0x6 ++ ETHERCAP_JUMBO_MTU = 0x4 ++ ETHERCAP_VLAN_HWTAGGING = 0x2 ++ ETHERCAP_VLAN_MTU = 0x1 ++ ETHERMIN = 0x2e ++ ETHERMTU = 0x5dc ++ ETHERMTU_JUMBO = 0x2328 ++ ETHERTYPE_8023 = 0x4 ++ ETHERTYPE_AARP = 0x80f3 ++ ETHERTYPE_ACCTON = 0x8390 ++ ETHERTYPE_AEONIC = 0x8036 ++ ETHERTYPE_ALPHA = 0x814a ++ ETHERTYPE_AMBER = 0x6008 ++ ETHERTYPE_AMOEBA = 0x8145 ++ ETHERTYPE_APOLLO = 0x80f7 ++ ETHERTYPE_APOLLODOMAIN = 0x8019 ++ ETHERTYPE_APPLETALK = 0x809b ++ ETHERTYPE_APPLITEK = 0x80c7 ++ ETHERTYPE_ARGONAUT = 0x803a ++ ETHERTYPE_ARP = 0x806 ++ ETHERTYPE_AT = 0x809b ++ ETHERTYPE_ATALK = 0x809b ++ ETHERTYPE_ATOMIC = 0x86df ++ ETHERTYPE_ATT = 0x8069 ++ ETHERTYPE_ATTSTANFORD = 0x8008 ++ ETHERTYPE_AUTOPHON = 0x806a ++ ETHERTYPE_AXIS = 0x8856 ++ ETHERTYPE_BCLOOP = 0x9003 ++ ETHERTYPE_BOFL = 0x8102 ++ ETHERTYPE_CABLETRON = 0x7034 ++ ETHERTYPE_CHAOS = 0x804 ++ ETHERTYPE_COMDESIGN = 0x806c ++ ETHERTYPE_COMPUGRAPHIC = 0x806d ++ ETHERTYPE_COUNTERPOINT = 0x8062 ++ ETHERTYPE_CRONUS = 0x8004 ++ ETHERTYPE_CRONUSVLN = 0x8003 ++ ETHERTYPE_DCA = 0x1234 ++ ETHERTYPE_DDE = 0x807b ++ ETHERTYPE_DEBNI = 0xaaaa ++ ETHERTYPE_DECAM = 0x8048 ++ ETHERTYPE_DECCUST = 0x6006 ++ ETHERTYPE_DECDIAG = 0x6005 ++ ETHERTYPE_DECDNS = 0x803c ++ ETHERTYPE_DECDTS = 0x803e ++ ETHERTYPE_DECEXPER = 0x6000 ++ ETHERTYPE_DECLAST = 0x8041 ++ ETHERTYPE_DECLTM = 0x803f ++ ETHERTYPE_DECMUMPS = 0x6009 ++ ETHERTYPE_DECNETBIOS = 0x8040 ++ ETHERTYPE_DELTACON = 0x86de ++ ETHERTYPE_DIDDLE = 0x4321 ++ ETHERTYPE_DLOG1 = 0x660 ++ ETHERTYPE_DLOG2 = 0x661 ++ ETHERTYPE_DN = 0x6003 ++ ETHERTYPE_DOGFIGHT = 0x1989 ++ ETHERTYPE_DSMD = 0x8039 ++ ETHERTYPE_ECMA = 0x803 ++ ETHERTYPE_ENCRYPT = 0x803d ++ ETHERTYPE_ES = 0x805d ++ ETHERTYPE_EXCELAN = 0x8010 ++ ETHERTYPE_EXPERDATA = 0x8049 ++ ETHERTYPE_FLIP = 0x8146 ++ ETHERTYPE_FLOWCONTROL = 0x8808 ++ ETHERTYPE_FRARP = 0x808 ++ ETHERTYPE_GENDYN = 0x8068 ++ ETHERTYPE_HAYES = 0x8130 ++ ETHERTYPE_HIPPI_FP = 0x8180 ++ ETHERTYPE_HITACHI = 0x8820 ++ ETHERTYPE_HP = 0x8005 ++ ETHERTYPE_IEEEPUP = 0xa00 ++ ETHERTYPE_IEEEPUPAT = 0xa01 ++ ETHERTYPE_IMLBL = 0x4c42 ++ ETHERTYPE_IMLBLDIAG = 0x424c ++ ETHERTYPE_IP = 0x800 ++ ETHERTYPE_IPAS = 0x876c ++ ETHERTYPE_IPV6 = 0x86dd ++ ETHERTYPE_IPX = 0x8137 ++ ETHERTYPE_IPXNEW = 0x8037 ++ ETHERTYPE_KALPANA = 0x8582 ++ ETHERTYPE_LANBRIDGE = 0x8038 ++ ETHERTYPE_LANPROBE = 0x8888 ++ ETHERTYPE_LAT = 0x6004 ++ ETHERTYPE_LBACK = 0x9000 ++ ETHERTYPE_LITTLE = 0x8060 ++ ETHERTYPE_LOGICRAFT = 0x8148 ++ ETHERTYPE_LOOPBACK = 0x9000 ++ ETHERTYPE_MATRA = 0x807a ++ ETHERTYPE_MAX = 0xffff ++ ETHERTYPE_MERIT = 0x807c ++ ETHERTYPE_MICP = 0x873a ++ ETHERTYPE_MOPDL = 0x6001 ++ ETHERTYPE_MOPRC = 0x6002 ++ ETHERTYPE_MOTOROLA = 0x818d ++ ETHERTYPE_MPLS = 0x8847 ++ ETHERTYPE_MPLS_MCAST = 0x8848 ++ ETHERTYPE_MUMPS = 0x813f ++ ETHERTYPE_NBPCC = 0x3c04 ++ ETHERTYPE_NBPCLAIM = 0x3c09 ++ ETHERTYPE_NBPCLREQ = 0x3c05 ++ ETHERTYPE_NBPCLRSP = 0x3c06 ++ ETHERTYPE_NBPCREQ = 0x3c02 ++ ETHERTYPE_NBPCRSP = 0x3c03 ++ ETHERTYPE_NBPDG = 0x3c07 ++ ETHERTYPE_NBPDGB = 0x3c08 ++ ETHERTYPE_NBPDLTE = 0x3c0a ++ ETHERTYPE_NBPRAR = 0x3c0c ++ ETHERTYPE_NBPRAS = 0x3c0b ++ ETHERTYPE_NBPRST = 0x3c0d ++ ETHERTYPE_NBPSCD = 0x3c01 ++ ETHERTYPE_NBPVCD = 0x3c00 ++ ETHERTYPE_NBS = 0x802 ++ ETHERTYPE_NCD = 0x8149 ++ ETHERTYPE_NESTAR = 0x8006 ++ ETHERTYPE_NETBEUI = 0x8191 ++ ETHERTYPE_NOVELL = 0x8138 ++ ETHERTYPE_NS = 0x600 ++ ETHERTYPE_NSAT = 0x601 ++ ETHERTYPE_NSCOMPAT = 0x807 ++ ETHERTYPE_NTRAILER = 0x10 ++ ETHERTYPE_OS9 = 0x7007 ++ ETHERTYPE_OS9NET = 0x7009 ++ ETHERTYPE_PACER = 0x80c6 ++ ETHERTYPE_PAE = 0x888e ++ ETHERTYPE_PCS = 0x4242 ++ ETHERTYPE_PLANNING = 0x8044 ++ ETHERTYPE_PPP = 0x880b ++ ETHERTYPE_PPPOE = 0x8864 ++ ETHERTYPE_PPPOEDISC = 0x8863 ++ ETHERTYPE_PRIMENTS = 0x7031 ++ ETHERTYPE_PUP = 0x200 ++ ETHERTYPE_PUPAT = 0x200 ++ ETHERTYPE_RACAL = 0x7030 ++ ETHERTYPE_RATIONAL = 0x8150 ++ ETHERTYPE_RAWFR = 0x6559 ++ ETHERTYPE_RCL = 0x1995 ++ ETHERTYPE_RDP = 0x8739 ++ ETHERTYPE_RETIX = 0x80f2 ++ ETHERTYPE_REVARP = 0x8035 ++ ETHERTYPE_SCA = 0x6007 ++ ETHERTYPE_SECTRA = 0x86db ++ ETHERTYPE_SECUREDATA = 0x876d ++ ETHERTYPE_SGITW = 0x817e ++ ETHERTYPE_SG_BOUNCE = 0x8016 ++ ETHERTYPE_SG_DIAG = 0x8013 ++ ETHERTYPE_SG_NETGAMES = 0x8014 ++ ETHERTYPE_SG_RESV = 0x8015 ++ ETHERTYPE_SIMNET = 0x5208 ++ ETHERTYPE_SLOWPROTOCOLS = 0x8809 ++ ETHERTYPE_SNA = 0x80d5 ++ ETHERTYPE_SNMP = 0x814c ++ ETHERTYPE_SONIX = 0xfaf5 ++ ETHERTYPE_SPIDER = 0x809f ++ ETHERTYPE_SPRITE = 0x500 ++ ETHERTYPE_STP = 0x8181 ++ ETHERTYPE_TALARIS = 0x812b ++ ETHERTYPE_TALARISMC = 0x852b ++ ETHERTYPE_TCPCOMP = 0x876b ++ ETHERTYPE_TCPSM = 0x9002 ++ ETHERTYPE_TEC = 0x814f ++ ETHERTYPE_TIGAN = 0x802f ++ ETHERTYPE_TRAIL = 0x1000 ++ ETHERTYPE_TRANSETHER = 0x6558 ++ ETHERTYPE_TYMSHARE = 0x802e ++ ETHERTYPE_UBBST = 0x7005 ++ ETHERTYPE_UBDEBUG = 0x900 ++ ETHERTYPE_UBDIAGLOOP = 0x7002 ++ ETHERTYPE_UBDL = 0x7000 ++ ETHERTYPE_UBNIU = 0x7001 ++ ETHERTYPE_UBNMC = 0x7003 ++ ETHERTYPE_VALID = 0x1600 ++ ETHERTYPE_VARIAN = 0x80dd ++ ETHERTYPE_VAXELN = 0x803b ++ ETHERTYPE_VEECO = 0x8067 ++ ETHERTYPE_VEXP = 0x805b ++ ETHERTYPE_VGLAB = 0x8131 ++ ETHERTYPE_VINES = 0xbad ++ ETHERTYPE_VINESECHO = 0xbaf ++ ETHERTYPE_VINESLOOP = 0xbae ++ ETHERTYPE_VITAL = 0xff00 ++ ETHERTYPE_VLAN = 0x8100 ++ ETHERTYPE_VLTLMAN = 0x8080 ++ ETHERTYPE_VPROD = 0x805c ++ ETHERTYPE_VURESERVED = 0x8147 ++ ETHERTYPE_WATERLOO = 0x8130 ++ ETHERTYPE_WELLFLEET = 0x8103 ++ ETHERTYPE_X25 = 0x805 ++ ETHERTYPE_X75 = 0x801 ++ ETHERTYPE_XNSSM = 0x9001 ++ ETHERTYPE_XTP = 0x817d ++ ETHER_ADDR_LEN = 0x6 ++ ETHER_CRC_LEN = 0x4 ++ ETHER_CRC_POLY_BE = 0x4c11db6 ++ ETHER_CRC_POLY_LE = 0xedb88320 ++ ETHER_HDR_LEN = 0xe ++ ETHER_MAX_LEN = 0x5ee ++ ETHER_MAX_LEN_JUMBO = 0x233a ++ ETHER_MIN_LEN = 0x40 ++ ETHER_PPPOE_ENCAP_LEN = 0x8 ++ ETHER_TYPE_LEN = 0x2 ++ ETHER_VLAN_ENCAP_LEN = 0x4 ++ EVFILT_AIO = 0x2 ++ EVFILT_PROC = 0x4 ++ EVFILT_READ = 0x0 ++ EVFILT_SIGNAL = 0x5 ++ EVFILT_SYSCOUNT = 0x7 ++ EVFILT_TIMER = 0x6 ++ EVFILT_VNODE = 0x3 ++ EVFILT_WRITE = 0x1 ++ EV_ADD = 0x1 ++ EV_CLEAR = 0x20 ++ EV_DELETE = 0x2 ++ EV_DISABLE = 0x8 ++ EV_ENABLE = 0x4 ++ EV_EOF = 0x8000 ++ EV_ERROR = 0x4000 ++ EV_FLAG1 = 0x2000 ++ EV_ONESHOT = 0x10 ++ EV_SYSFLAGS = 0xf000 ++ EXTA = 0x4b00 ++ EXTB = 0x9600 ++ EXTPROC = 0x800 ++ FD_CLOEXEC = 0x1 ++ FD_SETSIZE = 0x100 ++ FLUSHO = 0x800000 ++ F_CLOSEM = 0xa ++ F_DUPFD = 0x0 ++ F_DUPFD_CLOEXEC = 0xc ++ F_FSCTL = -0x80000000 ++ F_FSDIRMASK = 0x70000000 ++ F_FSIN = 0x10000000 ++ F_FSINOUT = 0x30000000 ++ F_FSOUT = 0x20000000 ++ F_FSPRIV = 0x8000 ++ F_FSVOID = 0x40000000 ++ F_GETFD = 0x1 ++ F_GETFL = 0x3 ++ F_GETLK = 0x7 ++ F_GETNOSIGPIPE = 0xd ++ F_GETOWN = 0x5 ++ F_MAXFD = 0xb ++ F_OK = 0x0 ++ F_PARAM_MASK = 0xfff ++ F_PARAM_MAX = 0xfff ++ F_RDLCK = 0x1 ++ F_SETFD = 0x2 ++ F_SETFL = 0x4 ++ F_SETLK = 0x8 ++ F_SETLKW = 0x9 ++ F_SETNOSIGPIPE = 0xe ++ F_SETOWN = 0x6 ++ F_UNLCK = 0x2 ++ F_WRLCK = 0x3 ++ HUPCL = 0x4000 ++ ICANON = 0x100 ++ ICMP6_FILTER = 0x12 ++ ICRNL = 0x100 ++ IEXTEN = 0x400 ++ IFAN_ARRIVAL = 0x0 ++ IFAN_DEPARTURE = 0x1 ++ IFA_ROUTE = 0x1 ++ IFF_ALLMULTI = 0x200 ++ IFF_BROADCAST = 0x2 ++ IFF_CANTCHANGE = 0x8f52 ++ IFF_DEBUG = 0x4 ++ IFF_LINK0 = 0x1000 ++ IFF_LINK1 = 0x2000 ++ IFF_LINK2 = 0x4000 ++ IFF_LOOPBACK = 0x8 ++ IFF_MULTICAST = 0x8000 ++ IFF_NOARP = 0x80 ++ IFF_NOTRAILERS = 0x20 ++ IFF_OACTIVE = 0x400 ++ IFF_POINTOPOINT = 0x10 ++ IFF_PROMISC = 0x100 ++ IFF_RUNNING = 0x40 ++ IFF_SIMPLEX = 0x800 ++ IFF_UP = 0x1 ++ IFNAMSIZ = 0x10 ++ IFT_1822 = 0x2 ++ IFT_A12MPPSWITCH = 0x82 ++ IFT_AAL2 = 0xbb ++ IFT_AAL5 = 0x31 ++ IFT_ADSL = 0x5e ++ IFT_AFLANE8023 = 0x3b ++ IFT_AFLANE8025 = 0x3c ++ IFT_ARAP = 0x58 ++ IFT_ARCNET = 0x23 ++ IFT_ARCNETPLUS = 0x24 ++ IFT_ASYNC = 0x54 ++ IFT_ATM = 0x25 ++ IFT_ATMDXI = 0x69 ++ IFT_ATMFUNI = 0x6a ++ IFT_ATMIMA = 0x6b ++ IFT_ATMLOGICAL = 0x50 ++ IFT_ATMRADIO = 0xbd ++ IFT_ATMSUBINTERFACE = 0x86 ++ IFT_ATMVCIENDPT = 0xc2 ++ IFT_ATMVIRTUAL = 0x95 ++ IFT_BGPPOLICYACCOUNTING = 0xa2 ++ IFT_BRIDGE = 0xd1 ++ IFT_BSC = 0x53 ++ IFT_CARP = 0xf8 ++ IFT_CCTEMUL = 0x3d ++ IFT_CEPT = 0x13 ++ IFT_CES = 0x85 ++ IFT_CHANNEL = 0x46 ++ IFT_CNR = 0x55 ++ IFT_COFFEE = 0x84 ++ IFT_COMPOSITELINK = 0x9b ++ IFT_DCN = 0x8d ++ IFT_DIGITALPOWERLINE = 0x8a ++ IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba ++ IFT_DLSW = 0x4a ++ IFT_DOCSCABLEDOWNSTREAM = 0x80 ++ IFT_DOCSCABLEMACLAYER = 0x7f ++ IFT_DOCSCABLEUPSTREAM = 0x81 ++ IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd ++ IFT_DS0 = 0x51 ++ IFT_DS0BUNDLE = 0x52 ++ IFT_DS1FDL = 0xaa ++ IFT_DS3 = 0x1e ++ IFT_DTM = 0x8c ++ IFT_DVBASILN = 0xac ++ IFT_DVBASIOUT = 0xad ++ IFT_DVBRCCDOWNSTREAM = 0x93 ++ IFT_DVBRCCMACLAYER = 0x92 ++ IFT_DVBRCCUPSTREAM = 0x94 ++ IFT_ECONET = 0xce ++ IFT_EON = 0x19 ++ IFT_EPLRS = 0x57 ++ IFT_ESCON = 0x49 ++ IFT_ETHER = 0x6 ++ IFT_FAITH = 0xf2 ++ IFT_FAST = 0x7d ++ IFT_FASTETHER = 0x3e ++ IFT_FASTETHERFX = 0x45 ++ IFT_FDDI = 0xf ++ IFT_FIBRECHANNEL = 0x38 ++ IFT_FRAMERELAYINTERCONNECT = 0x3a ++ IFT_FRAMERELAYMPI = 0x5c ++ IFT_FRDLCIENDPT = 0xc1 ++ IFT_FRELAY = 0x20 ++ IFT_FRELAYDCE = 0x2c ++ IFT_FRF16MFRBUNDLE = 0xa3 ++ IFT_FRFORWARD = 0x9e ++ IFT_G703AT2MB = 0x43 ++ IFT_G703AT64K = 0x42 ++ IFT_GIF = 0xf0 ++ IFT_GIGABITETHERNET = 0x75 ++ IFT_GR303IDT = 0xb2 ++ IFT_GR303RDT = 0xb1 ++ IFT_H323GATEKEEPER = 0xa4 ++ IFT_H323PROXY = 0xa5 ++ IFT_HDH1822 = 0x3 ++ IFT_HDLC = 0x76 ++ IFT_HDSL2 = 0xa8 ++ IFT_HIPERLAN2 = 0xb7 ++ IFT_HIPPI = 0x2f ++ IFT_HIPPIINTERFACE = 0x39 ++ IFT_HOSTPAD = 0x5a ++ IFT_HSSI = 0x2e ++ IFT_HY = 0xe ++ IFT_IBM370PARCHAN = 0x48 ++ IFT_IDSL = 0x9a ++ IFT_IEEE1394 = 0x90 ++ IFT_IEEE80211 = 0x47 ++ IFT_IEEE80212 = 0x37 ++ IFT_IEEE8023ADLAG = 0xa1 ++ IFT_IFGSN = 0x91 ++ IFT_IMT = 0xbe ++ IFT_INFINIBAND = 0xc7 ++ IFT_INTERLEAVE = 0x7c ++ IFT_IP = 0x7e ++ IFT_IPFORWARD = 0x8e ++ IFT_IPOVERATM = 0x72 ++ IFT_IPOVERCDLC = 0x6d ++ IFT_IPOVERCLAW = 0x6e ++ IFT_IPSWITCH = 0x4e ++ IFT_ISDN = 0x3f ++ IFT_ISDNBASIC = 0x14 ++ IFT_ISDNPRIMARY = 0x15 ++ IFT_ISDNS = 0x4b ++ IFT_ISDNU = 0x4c ++ IFT_ISO88022LLC = 0x29 ++ IFT_ISO88023 = 0x7 ++ IFT_ISO88024 = 0x8 ++ IFT_ISO88025 = 0x9 ++ IFT_ISO88025CRFPINT = 0x62 ++ IFT_ISO88025DTR = 0x56 ++ IFT_ISO88025FIBER = 0x73 ++ IFT_ISO88026 = 0xa ++ IFT_ISUP = 0xb3 ++ IFT_L2VLAN = 0x87 ++ IFT_L3IPVLAN = 0x88 ++ IFT_L3IPXVLAN = 0x89 ++ IFT_LAPB = 0x10 ++ IFT_LAPD = 0x4d ++ IFT_LAPF = 0x77 ++ IFT_LINEGROUP = 0xd2 ++ IFT_LOCALTALK = 0x2a ++ IFT_LOOP = 0x18 ++ IFT_MEDIAMAILOVERIP = 0x8b ++ IFT_MFSIGLINK = 0xa7 ++ IFT_MIOX25 = 0x26 ++ IFT_MODEM = 0x30 ++ IFT_MPC = 0x71 ++ IFT_MPLS = 0xa6 ++ IFT_MPLSTUNNEL = 0x96 ++ IFT_MSDSL = 0x8f ++ IFT_MVL = 0xbf ++ IFT_MYRINET = 0x63 ++ IFT_NFAS = 0xaf ++ IFT_NSIP = 0x1b ++ IFT_OPTICALCHANNEL = 0xc3 ++ IFT_OPTICALTRANSPORT = 0xc4 ++ IFT_OTHER = 0x1 ++ IFT_P10 = 0xc ++ IFT_P80 = 0xd ++ IFT_PARA = 0x22 ++ IFT_PFLOG = 0xf5 ++ IFT_PFSYNC = 0xf6 ++ IFT_PLC = 0xae ++ IFT_PON155 = 0xcf ++ IFT_PON622 = 0xd0 ++ IFT_POS = 0xab ++ IFT_PPP = 0x17 ++ IFT_PPPMULTILINKBUNDLE = 0x6c ++ IFT_PROPATM = 0xc5 ++ IFT_PROPBWAP2MP = 0xb8 ++ IFT_PROPCNLS = 0x59 ++ IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 ++ IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 ++ IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 ++ IFT_PROPMUX = 0x36 ++ IFT_PROPVIRTUAL = 0x35 ++ IFT_PROPWIRELESSP2P = 0x9d ++ IFT_PTPSERIAL = 0x16 ++ IFT_PVC = 0xf1 ++ IFT_Q2931 = 0xc9 ++ IFT_QLLC = 0x44 ++ IFT_RADIOMAC = 0xbc ++ IFT_RADSL = 0x5f ++ IFT_REACHDSL = 0xc0 ++ IFT_RFC1483 = 0x9f ++ IFT_RS232 = 0x21 ++ IFT_RSRB = 0x4f ++ IFT_SDLC = 0x11 ++ IFT_SDSL = 0x60 ++ IFT_SHDSL = 0xa9 ++ IFT_SIP = 0x1f ++ IFT_SIPSIG = 0xcc ++ IFT_SIPTG = 0xcb ++ IFT_SLIP = 0x1c ++ IFT_SMDSDXI = 0x2b ++ IFT_SMDSICIP = 0x34 ++ IFT_SONET = 0x27 ++ IFT_SONETOVERHEADCHANNEL = 0xb9 ++ IFT_SONETPATH = 0x32 ++ IFT_SONETVT = 0x33 ++ IFT_SRP = 0x97 ++ IFT_SS7SIGLINK = 0x9c ++ IFT_STACKTOSTACK = 0x6f ++ IFT_STARLAN = 0xb ++ IFT_STF = 0xd7 ++ IFT_T1 = 0x12 ++ IFT_TDLC = 0x74 ++ IFT_TELINK = 0xc8 ++ IFT_TERMPAD = 0x5b ++ IFT_TR008 = 0xb0 ++ IFT_TRANSPHDLC = 0x7b ++ IFT_TUNNEL = 0x83 ++ IFT_ULTRA = 0x1d ++ IFT_USB = 0xa0 ++ IFT_V11 = 0x40 ++ IFT_V35 = 0x2d ++ IFT_V36 = 0x41 ++ IFT_V37 = 0x78 ++ IFT_VDSL = 0x61 ++ IFT_VIRTUALIPADDRESS = 0x70 ++ IFT_VIRTUALTG = 0xca ++ IFT_VOICEDID = 0xd5 ++ IFT_VOICEEM = 0x64 ++ IFT_VOICEEMFGD = 0xd3 ++ IFT_VOICEENCAP = 0x67 ++ IFT_VOICEFGDEANA = 0xd4 ++ IFT_VOICEFXO = 0x65 ++ IFT_VOICEFXS = 0x66 ++ IFT_VOICEOVERATM = 0x98 ++ IFT_VOICEOVERCABLE = 0xc6 ++ IFT_VOICEOVERFRAMERELAY = 0x99 ++ IFT_VOICEOVERIP = 0x68 ++ IFT_X213 = 0x5d ++ IFT_X25 = 0x5 ++ IFT_X25DDN = 0x4 ++ IFT_X25HUNTGROUP = 0x7a ++ IFT_X25MLP = 0x79 ++ IFT_X25PLE = 0x28 ++ IFT_XETHER = 0x1a ++ IGNBRK = 0x1 ++ IGNCR = 0x80 ++ IGNPAR = 0x4 ++ IMAXBEL = 0x2000 ++ INLCR = 0x40 ++ INPCK = 0x10 ++ IN_CLASSA_HOST = 0xffffff ++ IN_CLASSA_MAX = 0x80 ++ IN_CLASSA_NET = 0xff000000 ++ IN_CLASSA_NSHIFT = 0x18 ++ IN_CLASSB_HOST = 0xffff ++ IN_CLASSB_MAX = 0x10000 ++ IN_CLASSB_NET = 0xffff0000 ++ IN_CLASSB_NSHIFT = 0x10 ++ IN_CLASSC_HOST = 0xff ++ IN_CLASSC_NET = 0xffffff00 ++ IN_CLASSC_NSHIFT = 0x8 ++ IN_CLASSD_HOST = 0xfffffff ++ IN_CLASSD_NET = 0xf0000000 ++ IN_CLASSD_NSHIFT = 0x1c ++ IN_LOOPBACKNET = 0x7f ++ IPPROTO_AH = 0x33 ++ IPPROTO_CARP = 0x70 ++ IPPROTO_DONE = 0x101 ++ IPPROTO_DSTOPTS = 0x3c ++ IPPROTO_EGP = 0x8 ++ IPPROTO_ENCAP = 0x62 ++ IPPROTO_EON = 0x50 ++ IPPROTO_ESP = 0x32 ++ IPPROTO_ETHERIP = 0x61 ++ IPPROTO_FRAGMENT = 0x2c ++ IPPROTO_GGP = 0x3 ++ IPPROTO_GRE = 0x2f ++ IPPROTO_HOPOPTS = 0x0 ++ IPPROTO_ICMP = 0x1 ++ IPPROTO_ICMPV6 = 0x3a ++ IPPROTO_IDP = 0x16 ++ IPPROTO_IGMP = 0x2 ++ IPPROTO_IP = 0x0 ++ IPPROTO_IPCOMP = 0x6c ++ IPPROTO_IPIP = 0x4 ++ IPPROTO_IPV4 = 0x4 ++ IPPROTO_IPV6 = 0x29 ++ IPPROTO_IPV6_ICMP = 0x3a ++ IPPROTO_MAX = 0x100 ++ IPPROTO_MAXID = 0x34 ++ IPPROTO_MOBILE = 0x37 ++ IPPROTO_NONE = 0x3b ++ IPPROTO_PFSYNC = 0xf0 ++ IPPROTO_PIM = 0x67 ++ IPPROTO_PUP = 0xc ++ IPPROTO_RAW = 0xff ++ IPPROTO_ROUTING = 0x2b ++ IPPROTO_RSVP = 0x2e ++ IPPROTO_TCP = 0x6 ++ IPPROTO_TP = 0x1d ++ IPPROTO_UDP = 0x11 ++ IPPROTO_VRRP = 0x70 ++ IPV6_CHECKSUM = 0x1a ++ IPV6_DEFAULT_MULTICAST_HOPS = 0x1 ++ IPV6_DEFAULT_MULTICAST_LOOP = 0x1 ++ IPV6_DEFHLIM = 0x40 ++ IPV6_DONTFRAG = 0x3e ++ IPV6_DSTOPTS = 0x32 ++ IPV6_FAITH = 0x1d ++ IPV6_FLOWINFO_MASK = 0xffffff0f ++ IPV6_FLOWLABEL_MASK = 0xffff0f00 ++ IPV6_FRAGTTL = 0x78 ++ IPV6_HLIMDEC = 0x1 ++ IPV6_HOPLIMIT = 0x2f ++ IPV6_HOPOPTS = 0x31 ++ IPV6_IPSEC_POLICY = 0x1c ++ IPV6_JOIN_GROUP = 0xc ++ IPV6_LEAVE_GROUP = 0xd ++ IPV6_MAXHLIM = 0xff ++ IPV6_MAXPACKET = 0xffff ++ IPV6_MMTU = 0x500 ++ IPV6_MULTICAST_HOPS = 0xa ++ IPV6_MULTICAST_IF = 0x9 ++ IPV6_MULTICAST_LOOP = 0xb ++ IPV6_NEXTHOP = 0x30 ++ IPV6_PATHMTU = 0x2c ++ IPV6_PKTINFO = 0x2e ++ IPV6_PORTRANGE = 0xe ++ IPV6_PORTRANGE_DEFAULT = 0x0 ++ IPV6_PORTRANGE_HIGH = 0x1 ++ IPV6_PORTRANGE_LOW = 0x2 ++ IPV6_RECVDSTOPTS = 0x28 ++ IPV6_RECVHOPLIMIT = 0x25 ++ IPV6_RECVHOPOPTS = 0x27 ++ IPV6_RECVPATHMTU = 0x2b ++ IPV6_RECVPKTINFO = 0x24 ++ IPV6_RECVRTHDR = 0x26 ++ IPV6_RECVTCLASS = 0x39 ++ IPV6_RTHDR = 0x33 ++ IPV6_RTHDRDSTOPTS = 0x23 ++ IPV6_RTHDR_LOOSE = 0x0 ++ IPV6_RTHDR_STRICT = 0x1 ++ IPV6_RTHDR_TYPE_0 = 0x0 ++ IPV6_SOCKOPT_RESERVED1 = 0x3 ++ IPV6_TCLASS = 0x3d ++ IPV6_UNICAST_HOPS = 0x4 ++ IPV6_USE_MIN_MTU = 0x2a ++ IPV6_V6ONLY = 0x1b ++ IPV6_VERSION = 0x60 ++ IPV6_VERSION_MASK = 0xf0 ++ IP_ADD_MEMBERSHIP = 0xc ++ IP_DEFAULT_MULTICAST_LOOP = 0x1 ++ IP_DEFAULT_MULTICAST_TTL = 0x1 ++ IP_DF = 0x4000 ++ IP_DROP_MEMBERSHIP = 0xd ++ IP_EF = 0x8000 ++ IP_ERRORMTU = 0x15 ++ IP_HDRINCL = 0x2 ++ IP_IPSEC_POLICY = 0x16 ++ IP_MAXPACKET = 0xffff ++ IP_MAX_MEMBERSHIPS = 0x14 ++ IP_MF = 0x2000 ++ IP_MINFRAGSIZE = 0x45 ++ IP_MINTTL = 0x18 ++ IP_MSS = 0x240 ++ IP_MULTICAST_IF = 0x9 ++ IP_MULTICAST_LOOP = 0xb ++ IP_MULTICAST_TTL = 0xa ++ IP_OFFMASK = 0x1fff ++ IP_OPTIONS = 0x1 ++ IP_PORTRANGE = 0x13 ++ IP_PORTRANGE_DEFAULT = 0x0 ++ IP_PORTRANGE_HIGH = 0x1 ++ IP_PORTRANGE_LOW = 0x2 ++ IP_RECVDSTADDR = 0x7 ++ IP_RECVIF = 0x14 ++ IP_RECVOPTS = 0x5 ++ IP_RECVRETOPTS = 0x6 ++ IP_RECVTTL = 0x17 ++ IP_RETOPTS = 0x8 ++ IP_RF = 0x8000 ++ IP_TOS = 0x3 ++ IP_TTL = 0x4 ++ ISIG = 0x80 ++ ISTRIP = 0x20 ++ IXANY = 0x800 ++ IXOFF = 0x400 ++ IXON = 0x200 ++ LOCK_EX = 0x2 ++ LOCK_NB = 0x4 ++ LOCK_SH = 0x1 ++ LOCK_UN = 0x8 ++ MADV_DONTNEED = 0x4 ++ MADV_FREE = 0x6 ++ MADV_NORMAL = 0x0 ++ MADV_RANDOM = 0x1 ++ MADV_SEQUENTIAL = 0x2 ++ MADV_SPACEAVAIL = 0x5 ++ MADV_WILLNEED = 0x3 ++ MAP_ALIGNMENT_16MB = 0x18000000 ++ MAP_ALIGNMENT_1TB = 0x28000000 ++ MAP_ALIGNMENT_256TB = 0x30000000 ++ MAP_ALIGNMENT_4GB = 0x20000000 ++ MAP_ALIGNMENT_64KB = 0x10000000 ++ MAP_ALIGNMENT_64PB = 0x38000000 ++ MAP_ALIGNMENT_MASK = -0x1000000 ++ MAP_ALIGNMENT_SHIFT = 0x18 ++ MAP_ANON = 0x1000 ++ MAP_FILE = 0x0 ++ MAP_FIXED = 0x10 ++ MAP_HASSEMAPHORE = 0x200 ++ MAP_INHERIT = 0x80 ++ MAP_INHERIT_COPY = 0x1 ++ MAP_INHERIT_DEFAULT = 0x1 ++ MAP_INHERIT_DONATE_COPY = 0x3 ++ MAP_INHERIT_NONE = 0x2 ++ MAP_INHERIT_SHARE = 0x0 ++ MAP_NORESERVE = 0x40 ++ MAP_PRIVATE = 0x2 ++ MAP_RENAME = 0x20 ++ MAP_SHARED = 0x1 ++ MAP_STACK = 0x2000 ++ MAP_TRYFIXED = 0x400 ++ MAP_WIRED = 0x800 ++ MCL_CURRENT = 0x1 ++ MCL_FUTURE = 0x2 ++ MSG_BCAST = 0x100 ++ MSG_CMSG_CLOEXEC = 0x800 ++ MSG_CONTROLMBUF = 0x2000000 ++ MSG_CTRUNC = 0x20 ++ MSG_DONTROUTE = 0x4 ++ MSG_DONTWAIT = 0x80 ++ MSG_EOR = 0x8 ++ MSG_IOVUSRSPACE = 0x4000000 ++ MSG_LENUSRSPACE = 0x8000000 ++ MSG_MCAST = 0x200 ++ MSG_NAMEMBUF = 0x1000000 ++ MSG_NBIO = 0x1000 ++ MSG_NOSIGNAL = 0x400 ++ MSG_OOB = 0x1 ++ MSG_PEEK = 0x2 ++ MSG_TRUNC = 0x10 ++ MSG_USERFLAGS = 0xffffff ++ MSG_WAITALL = 0x40 ++ MS_ASYNC = 0x1 ++ MS_INVALIDATE = 0x2 ++ MS_SYNC = 0x4 ++ NAME_MAX = 0x1ff ++ NET_RT_DUMP = 0x1 ++ NET_RT_FLAGS = 0x2 ++ NET_RT_IFLIST = 0x5 ++ NET_RT_MAXID = 0x6 ++ NET_RT_OIFLIST = 0x4 ++ NET_RT_OOIFLIST = 0x3 ++ NOFLSH = 0x80000000 ++ NOTE_ATTRIB = 0x8 ++ NOTE_CHILD = 0x4 ++ NOTE_DELETE = 0x1 ++ NOTE_EXEC = 0x20000000 ++ NOTE_EXIT = 0x80000000 ++ NOTE_EXTEND = 0x4 ++ NOTE_FORK = 0x40000000 ++ NOTE_LINK = 0x10 ++ NOTE_LOWAT = 0x1 ++ NOTE_PCTRLMASK = 0xf0000000 ++ NOTE_PDATAMASK = 0xfffff ++ NOTE_RENAME = 0x20 ++ NOTE_REVOKE = 0x40 ++ NOTE_TRACK = 0x1 ++ NOTE_TRACKERR = 0x2 ++ NOTE_WRITE = 0x2 ++ OCRNL = 0x10 ++ OFIOGETBMAP = 0xc004667a ++ ONLCR = 0x2 ++ ONLRET = 0x40 ++ ONOCR = 0x20 ++ ONOEOT = 0x8 ++ OPOST = 0x1 ++ O_ACCMODE = 0x3 ++ O_ALT_IO = 0x40000 ++ O_APPEND = 0x8 ++ O_ASYNC = 0x40 ++ O_CLOEXEC = 0x400000 ++ O_CREAT = 0x200 ++ O_DIRECT = 0x80000 ++ O_DIRECTORY = 0x200000 ++ O_DSYNC = 0x10000 ++ O_EXCL = 0x800 ++ O_EXLOCK = 0x20 ++ O_FSYNC = 0x80 ++ O_NDELAY = 0x4 ++ O_NOCTTY = 0x8000 ++ O_NOFOLLOW = 0x100 ++ O_NONBLOCK = 0x4 ++ O_NOSIGPIPE = 0x1000000 ++ O_RDONLY = 0x0 ++ O_RDWR = 0x2 ++ O_RSYNC = 0x20000 ++ O_SHLOCK = 0x10 ++ O_SYNC = 0x80 ++ O_TRUNC = 0x400 ++ O_WRONLY = 0x1 ++ PARENB = 0x1000 ++ PARMRK = 0x8 ++ PARODD = 0x2000 ++ PENDIN = 0x20000000 ++ PRIO_PGRP = 0x1 ++ PRIO_PROCESS = 0x0 ++ PRIO_USER = 0x2 ++ PRI_IOFLUSH = 0x7c ++ PROT_EXEC = 0x4 ++ PROT_NONE = 0x0 ++ PROT_READ = 0x1 ++ PROT_WRITE = 0x2 ++ RLIMIT_AS = 0xa ++ RLIMIT_CORE = 0x4 ++ RLIMIT_CPU = 0x0 ++ RLIMIT_DATA = 0x2 ++ RLIMIT_FSIZE = 0x1 ++ RLIMIT_NOFILE = 0x8 ++ RLIMIT_STACK = 0x3 ++ RLIM_INFINITY = 0x7fffffffffffffff ++ RTAX_AUTHOR = 0x6 ++ RTAX_BRD = 0x7 ++ RTAX_DST = 0x0 ++ RTAX_GATEWAY = 0x1 ++ RTAX_GENMASK = 0x3 ++ RTAX_IFA = 0x5 ++ RTAX_IFP = 0x4 ++ RTAX_MAX = 0x9 ++ RTAX_NETMASK = 0x2 ++ RTAX_TAG = 0x8 ++ RTA_AUTHOR = 0x40 ++ RTA_BRD = 0x80 ++ RTA_DST = 0x1 ++ RTA_GATEWAY = 0x2 ++ RTA_GENMASK = 0x8 ++ RTA_IFA = 0x20 ++ RTA_IFP = 0x10 ++ RTA_NETMASK = 0x4 ++ RTA_TAG = 0x100 ++ RTF_ANNOUNCE = 0x20000 ++ RTF_BLACKHOLE = 0x1000 ++ RTF_CLONED = 0x2000 ++ RTF_CLONING = 0x100 ++ RTF_DONE = 0x40 ++ RTF_DYNAMIC = 0x10 ++ RTF_GATEWAY = 0x2 ++ RTF_HOST = 0x4 ++ RTF_LLINFO = 0x400 ++ RTF_MASK = 0x80 ++ RTF_MODIFIED = 0x20 ++ RTF_PROTO1 = 0x8000 ++ RTF_PROTO2 = 0x4000 ++ RTF_REJECT = 0x8 ++ RTF_SRC = 0x10000 ++ RTF_STATIC = 0x800 ++ RTF_UP = 0x1 ++ RTF_XRESOLVE = 0x200 ++ RTM_ADD = 0x1 ++ RTM_CHANGE = 0x3 ++ RTM_CHGADDR = 0x15 ++ RTM_DELADDR = 0xd ++ RTM_DELETE = 0x2 ++ RTM_GET = 0x4 ++ RTM_IEEE80211 = 0x11 ++ RTM_IFANNOUNCE = 0x10 ++ RTM_IFINFO = 0x14 ++ RTM_LLINFO_UPD = 0x13 ++ RTM_LOCK = 0x8 ++ RTM_LOSING = 0x5 ++ RTM_MISS = 0x7 ++ RTM_NEWADDR = 0xc ++ RTM_OIFINFO = 0xf ++ RTM_OLDADD = 0x9 ++ RTM_OLDDEL = 0xa ++ RTM_OOIFINFO = 0xe ++ RTM_REDIRECT = 0x6 ++ RTM_RESOLVE = 0xb ++ RTM_RTTUNIT = 0xf4240 ++ RTM_SETGATE = 0x12 ++ RTM_VERSION = 0x4 ++ RTV_EXPIRE = 0x4 ++ RTV_HOPCOUNT = 0x2 ++ RTV_MTU = 0x1 ++ RTV_RPIPE = 0x8 ++ RTV_RTT = 0x40 ++ RTV_RTTVAR = 0x80 ++ RTV_SPIPE = 0x10 ++ RTV_SSTHRESH = 0x20 ++ RUSAGE_CHILDREN = -0x1 ++ RUSAGE_SELF = 0x0 ++ SCM_CREDS = 0x4 ++ SCM_RIGHTS = 0x1 ++ SCM_TIMESTAMP = 0x8 ++ SHUT_RD = 0x0 ++ SHUT_RDWR = 0x2 ++ SHUT_WR = 0x1 ++ SIOCADDMULTI = 0x80906931 ++ SIOCADDRT = 0x8038720a ++ SIOCAIFADDR = 0x8040691a ++ SIOCALIFADDR = 0x8118691c ++ SIOCATMARK = 0x40047307 ++ SIOCDELMULTI = 0x80906932 ++ SIOCDELRT = 0x8038720b ++ SIOCDIFADDR = 0x80906919 ++ SIOCDIFPHYADDR = 0x80906949 ++ SIOCDLIFADDR = 0x8118691e ++ SIOCGDRVSPEC = 0xc028697b ++ SIOCGETPFSYNC = 0xc09069f8 ++ SIOCGETSGCNT = 0xc0207534 ++ SIOCGETVIFCNT = 0xc0287533 ++ SIOCGHIWAT = 0x40047301 ++ SIOCGIFADDR = 0xc0906921 ++ SIOCGIFADDRPREF = 0xc0986920 ++ SIOCGIFALIAS = 0xc040691b ++ SIOCGIFBRDADDR = 0xc0906923 ++ SIOCGIFCAP = 0xc0206976 ++ SIOCGIFCONF = 0xc0106926 ++ SIOCGIFDATA = 0xc0986985 ++ SIOCGIFDLT = 0xc0906977 ++ SIOCGIFDSTADDR = 0xc0906922 ++ SIOCGIFFLAGS = 0xc0906911 ++ SIOCGIFGENERIC = 0xc090693a ++ SIOCGIFMEDIA = 0xc0306936 ++ SIOCGIFMETRIC = 0xc0906917 ++ SIOCGIFMTU = 0xc090697e ++ SIOCGIFNETMASK = 0xc0906925 ++ SIOCGIFPDSTADDR = 0xc0906948 ++ SIOCGIFPSRCADDR = 0xc0906947 ++ SIOCGLIFADDR = 0xc118691d ++ SIOCGLIFPHYADDR = 0xc118694b ++ SIOCGLINKSTR = 0xc0286987 ++ SIOCGLOWAT = 0x40047303 ++ SIOCGPGRP = 0x40047309 ++ SIOCGVH = 0xc0906983 ++ SIOCIFCREATE = 0x8090697a ++ SIOCIFDESTROY = 0x80906979 ++ SIOCIFGCLONERS = 0xc0106978 ++ SIOCINITIFADDR = 0xc0706984 ++ SIOCSDRVSPEC = 0x8028697b ++ SIOCSETPFSYNC = 0x809069f7 ++ SIOCSHIWAT = 0x80047300 ++ SIOCSIFADDR = 0x8090690c ++ SIOCSIFADDRPREF = 0x8098691f ++ SIOCSIFBRDADDR = 0x80906913 ++ SIOCSIFCAP = 0x80206975 ++ SIOCSIFDSTADDR = 0x8090690e ++ SIOCSIFFLAGS = 0x80906910 ++ SIOCSIFGENERIC = 0x80906939 ++ SIOCSIFMEDIA = 0xc0906935 ++ SIOCSIFMETRIC = 0x80906918 ++ SIOCSIFMTU = 0x8090697f ++ SIOCSIFNETMASK = 0x80906916 ++ SIOCSIFPHYADDR = 0x80406946 ++ SIOCSLIFPHYADDR = 0x8118694a ++ SIOCSLINKSTR = 0x80286988 ++ SIOCSLOWAT = 0x80047302 ++ SIOCSPGRP = 0x80047308 ++ SIOCSVH = 0xc0906982 ++ SIOCZIFDATA = 0xc0986986 ++ SOCK_CLOEXEC = 0x10000000 ++ SOCK_DGRAM = 0x2 ++ SOCK_FLAGS_MASK = 0xf0000000 ++ SOCK_NONBLOCK = 0x20000000 ++ SOCK_NOSIGPIPE = 0x40000000 ++ SOCK_RAW = 0x3 ++ SOCK_RDM = 0x4 ++ SOCK_SEQPACKET = 0x5 ++ SOCK_STREAM = 0x1 ++ SOL_SOCKET = 0xffff ++ SOMAXCONN = 0x80 ++ SO_ACCEPTCONN = 0x2 ++ SO_ACCEPTFILTER = 0x1000 ++ SO_BROADCAST = 0x20 ++ SO_DEBUG = 0x1 ++ SO_DONTROUTE = 0x10 ++ SO_ERROR = 0x1007 ++ SO_KEEPALIVE = 0x8 ++ SO_LINGER = 0x80 ++ SO_NOHEADER = 0x100a ++ SO_NOSIGPIPE = 0x800 ++ SO_OOBINLINE = 0x100 ++ SO_OVERFLOWED = 0x1009 ++ SO_RCVBUF = 0x1002 ++ SO_RCVLOWAT = 0x1004 ++ SO_RCVTIMEO = 0x100c ++ SO_REUSEADDR = 0x4 ++ SO_REUSEPORT = 0x200 ++ SO_SNDBUF = 0x1001 ++ SO_SNDLOWAT = 0x1003 ++ SO_SNDTIMEO = 0x100b ++ SO_TIMESTAMP = 0x2000 ++ SO_TYPE = 0x1008 ++ SO_USELOOPBACK = 0x40 ++ SYSCTL_VERSION = 0x1000000 ++ SYSCTL_VERS_0 = 0x0 ++ SYSCTL_VERS_1 = 0x1000000 ++ SYSCTL_VERS_MASK = 0xff000000 ++ S_ARCH1 = 0x10000 ++ S_ARCH2 = 0x20000 ++ S_BLKSIZE = 0x200 ++ S_IEXEC = 0x40 ++ S_IFBLK = 0x6000 ++ S_IFCHR = 0x2000 ++ S_IFDIR = 0x4000 ++ S_IFIFO = 0x1000 ++ S_IFLNK = 0xa000 ++ S_IFMT = 0xf000 ++ S_IFREG = 0x8000 ++ S_IFSOCK = 0xc000 ++ S_IFWHT = 0xe000 ++ S_IREAD = 0x100 ++ S_IRGRP = 0x20 ++ S_IROTH = 0x4 ++ S_IRUSR = 0x100 ++ S_IRWXG = 0x38 ++ S_IRWXO = 0x7 ++ S_IRWXU = 0x1c0 ++ S_ISGID = 0x400 ++ S_ISTXT = 0x200 ++ S_ISUID = 0x800 ++ S_ISVTX = 0x200 ++ S_IWGRP = 0x10 ++ S_IWOTH = 0x2 ++ S_IWRITE = 0x80 ++ S_IWUSR = 0x80 ++ S_IXGRP = 0x8 ++ S_IXOTH = 0x1 ++ S_IXUSR = 0x40 ++ S_LOGIN_SET = 0x1 ++ TCIFLUSH = 0x1 ++ TCIOFLUSH = 0x3 ++ TCOFLUSH = 0x2 ++ TCP_CONGCTL = 0x20 ++ TCP_KEEPCNT = 0x6 ++ TCP_KEEPIDLE = 0x3 ++ TCP_KEEPINIT = 0x7 ++ TCP_KEEPINTVL = 0x5 ++ TCP_MAXBURST = 0x4 ++ TCP_MAXSEG = 0x2 ++ TCP_MAXWIN = 0xffff ++ TCP_MAX_WINSHIFT = 0xe ++ TCP_MD5SIG = 0x10 ++ TCP_MINMSS = 0xd8 ++ TCP_MSS = 0x218 ++ TCP_NODELAY = 0x1 ++ TCSAFLUSH = 0x2 ++ TIOCCBRK = 0x2000747a ++ TIOCCDTR = 0x20007478 ++ TIOCCONS = 0x80047462 ++ TIOCDCDTIMESTAMP = 0x40107458 ++ TIOCDRAIN = 0x2000745e ++ TIOCEXCL = 0x2000740d ++ TIOCEXT = 0x80047460 ++ TIOCFLAG_CDTRCTS = 0x10 ++ TIOCFLAG_CLOCAL = 0x2 ++ TIOCFLAG_CRTSCTS = 0x4 ++ TIOCFLAG_MDMBUF = 0x8 ++ TIOCFLAG_SOFTCAR = 0x1 ++ TIOCFLUSH = 0x80047410 ++ TIOCGETA = 0x402c7413 ++ TIOCGETD = 0x4004741a ++ TIOCGFLAGS = 0x4004745d ++ TIOCGLINED = 0x40207442 ++ TIOCGPGRP = 0x40047477 ++ TIOCGQSIZE = 0x40047481 ++ TIOCGRANTPT = 0x20007447 ++ TIOCGSID = 0x40047463 ++ TIOCGSIZE = 0x40087468 ++ TIOCGWINSZ = 0x40087468 ++ TIOCMBIC = 0x8004746b ++ TIOCMBIS = 0x8004746c ++ TIOCMGET = 0x4004746a ++ TIOCMSET = 0x8004746d ++ TIOCM_CAR = 0x40 ++ TIOCM_CD = 0x40 ++ TIOCM_CTS = 0x20 ++ TIOCM_DSR = 0x100 ++ TIOCM_DTR = 0x2 ++ TIOCM_LE = 0x1 ++ TIOCM_RI = 0x80 ++ TIOCM_RNG = 0x80 ++ TIOCM_RTS = 0x4 ++ TIOCM_SR = 0x10 ++ TIOCM_ST = 0x8 ++ TIOCNOTTY = 0x20007471 ++ TIOCNXCL = 0x2000740e ++ TIOCOUTQ = 0x40047473 ++ TIOCPKT = 0x80047470 ++ TIOCPKT_DATA = 0x0 ++ TIOCPKT_DOSTOP = 0x20 ++ TIOCPKT_FLUSHREAD = 0x1 ++ TIOCPKT_FLUSHWRITE = 0x2 ++ TIOCPKT_IOCTL = 0x40 ++ TIOCPKT_NOSTOP = 0x10 ++ TIOCPKT_START = 0x8 ++ TIOCPKT_STOP = 0x4 ++ TIOCPTMGET = 0x40287446 ++ TIOCPTSNAME = 0x40287448 ++ TIOCRCVFRAME = 0x80087445 ++ TIOCREMOTE = 0x80047469 ++ TIOCSBRK = 0x2000747b ++ TIOCSCTTY = 0x20007461 ++ TIOCSDTR = 0x20007479 ++ TIOCSETA = 0x802c7414 ++ TIOCSETAF = 0x802c7416 ++ TIOCSETAW = 0x802c7415 ++ TIOCSETD = 0x8004741b ++ TIOCSFLAGS = 0x8004745c ++ TIOCSIG = 0x2000745f ++ TIOCSLINED = 0x80207443 ++ TIOCSPGRP = 0x80047476 ++ TIOCSQSIZE = 0x80047480 ++ TIOCSSIZE = 0x80087467 ++ TIOCSTART = 0x2000746e ++ TIOCSTAT = 0x80047465 ++ TIOCSTI = 0x80017472 ++ TIOCSTOP = 0x2000746f ++ TIOCSWINSZ = 0x80087467 ++ TIOCUCNTL = 0x80047466 ++ TIOCXMTFRAME = 0x80087444 ++ TOSTOP = 0x400000 ++ VDISCARD = 0xf ++ VDSUSP = 0xb ++ VEOF = 0x0 ++ VEOL = 0x1 ++ VEOL2 = 0x2 ++ VERASE = 0x3 ++ VINTR = 0x8 ++ VKILL = 0x5 ++ VLNEXT = 0xe ++ VMIN = 0x10 ++ VQUIT = 0x9 ++ VREPRINT = 0x6 ++ VSTART = 0xc ++ VSTATUS = 0x12 ++ VSTOP = 0xd ++ VSUSP = 0xa ++ VTIME = 0x11 ++ VWERASE = 0x4 ++ WALL = 0x8 ++ WALLSIG = 0x8 ++ WALTSIG = 0x4 ++ WCLONE = 0x4 ++ WCOREFLAG = 0x80 ++ WNOHANG = 0x1 ++ WNOWAIT = 0x10000 ++ WNOZOMBIE = 0x20000 ++ WOPTSCHECKED = 0x40000 ++ WSTOPPED = 0x7f ++ WUNTRACED = 0x2 ++) ++ ++// Errors ++const ( ++ E2BIG = syscall.Errno(0x7) ++ EACCES = syscall.Errno(0xd) ++ EADDRINUSE = syscall.Errno(0x30) ++ EADDRNOTAVAIL = syscall.Errno(0x31) ++ EAFNOSUPPORT = syscall.Errno(0x2f) ++ EAGAIN = syscall.Errno(0x23) ++ EALREADY = syscall.Errno(0x25) ++ EAUTH = syscall.Errno(0x50) ++ EBADF = syscall.Errno(0x9) ++ EBADMSG = syscall.Errno(0x58) ++ EBADRPC = syscall.Errno(0x48) ++ EBUSY = syscall.Errno(0x10) ++ ECANCELED = syscall.Errno(0x57) ++ ECHILD = syscall.Errno(0xa) ++ ECONNABORTED = syscall.Errno(0x35) ++ ECONNREFUSED = syscall.Errno(0x3d) ++ ECONNRESET = syscall.Errno(0x36) ++ EDEADLK = syscall.Errno(0xb) ++ EDESTADDRREQ = syscall.Errno(0x27) ++ EDOM = syscall.Errno(0x21) ++ EDQUOT = syscall.Errno(0x45) ++ EEXIST = syscall.Errno(0x11) ++ EFAULT = syscall.Errno(0xe) ++ EFBIG = syscall.Errno(0x1b) ++ EFTYPE = syscall.Errno(0x4f) ++ EHOSTDOWN = syscall.Errno(0x40) ++ EHOSTUNREACH = syscall.Errno(0x41) ++ EIDRM = syscall.Errno(0x52) ++ EILSEQ = syscall.Errno(0x55) ++ EINPROGRESS = syscall.Errno(0x24) ++ EINTR = syscall.Errno(0x4) ++ EINVAL = syscall.Errno(0x16) ++ EIO = syscall.Errno(0x5) ++ EISCONN = syscall.Errno(0x38) ++ EISDIR = syscall.Errno(0x15) ++ ELAST = syscall.Errno(0x60) ++ ELOOP = syscall.Errno(0x3e) ++ EMFILE = syscall.Errno(0x18) ++ EMLINK = syscall.Errno(0x1f) ++ EMSGSIZE = syscall.Errno(0x28) ++ EMULTIHOP = syscall.Errno(0x5e) ++ ENAMETOOLONG = syscall.Errno(0x3f) ++ ENEEDAUTH = syscall.Errno(0x51) ++ ENETDOWN = syscall.Errno(0x32) ++ ENETRESET = syscall.Errno(0x34) ++ ENETUNREACH = syscall.Errno(0x33) ++ ENFILE = syscall.Errno(0x17) ++ ENOATTR = syscall.Errno(0x5d) ++ ENOBUFS = syscall.Errno(0x37) ++ ENODATA = syscall.Errno(0x59) ++ ENODEV = syscall.Errno(0x13) ++ ENOENT = syscall.Errno(0x2) ++ ENOEXEC = syscall.Errno(0x8) ++ ENOLCK = syscall.Errno(0x4d) ++ ENOLINK = syscall.Errno(0x5f) ++ ENOMEM = syscall.Errno(0xc) ++ ENOMSG = syscall.Errno(0x53) ++ ENOPROTOOPT = syscall.Errno(0x2a) ++ ENOSPC = syscall.Errno(0x1c) ++ ENOSR = syscall.Errno(0x5a) ++ ENOSTR = syscall.Errno(0x5b) ++ ENOSYS = syscall.Errno(0x4e) ++ ENOTBLK = syscall.Errno(0xf) ++ ENOTCONN = syscall.Errno(0x39) ++ ENOTDIR = syscall.Errno(0x14) ++ ENOTEMPTY = syscall.Errno(0x42) ++ ENOTSOCK = syscall.Errno(0x26) ++ ENOTSUP = syscall.Errno(0x56) ++ ENOTTY = syscall.Errno(0x19) ++ ENXIO = syscall.Errno(0x6) ++ EOPNOTSUPP = syscall.Errno(0x2d) ++ EOVERFLOW = syscall.Errno(0x54) ++ EPERM = syscall.Errno(0x1) ++ EPFNOSUPPORT = syscall.Errno(0x2e) ++ EPIPE = syscall.Errno(0x20) ++ EPROCLIM = syscall.Errno(0x43) ++ EPROCUNAVAIL = syscall.Errno(0x4c) ++ EPROGMISMATCH = syscall.Errno(0x4b) ++ EPROGUNAVAIL = syscall.Errno(0x4a) ++ EPROTO = syscall.Errno(0x60) ++ EPROTONOSUPPORT = syscall.Errno(0x2b) ++ EPROTOTYPE = syscall.Errno(0x29) ++ ERANGE = syscall.Errno(0x22) ++ EREMOTE = syscall.Errno(0x47) ++ EROFS = syscall.Errno(0x1e) ++ ERPCMISMATCH = syscall.Errno(0x49) ++ ESHUTDOWN = syscall.Errno(0x3a) ++ ESOCKTNOSUPPORT = syscall.Errno(0x2c) ++ ESPIPE = syscall.Errno(0x1d) ++ ESRCH = syscall.Errno(0x3) ++ ESTALE = syscall.Errno(0x46) ++ ETIME = syscall.Errno(0x5c) ++ ETIMEDOUT = syscall.Errno(0x3c) ++ ETOOMANYREFS = syscall.Errno(0x3b) ++ ETXTBSY = syscall.Errno(0x1a) ++ EUSERS = syscall.Errno(0x44) ++ EWOULDBLOCK = syscall.Errno(0x23) ++ EXDEV = syscall.Errno(0x12) ++) ++ ++// Signals ++const ( ++ SIGABRT = syscall.Signal(0x6) ++ SIGALRM = syscall.Signal(0xe) ++ SIGBUS = syscall.Signal(0xa) ++ SIGCHLD = syscall.Signal(0x14) ++ SIGCONT = syscall.Signal(0x13) ++ SIGEMT = syscall.Signal(0x7) ++ SIGFPE = syscall.Signal(0x8) ++ SIGHUP = syscall.Signal(0x1) ++ SIGILL = syscall.Signal(0x4) ++ SIGINFO = syscall.Signal(0x1d) ++ SIGINT = syscall.Signal(0x2) ++ SIGIO = syscall.Signal(0x17) ++ SIGIOT = syscall.Signal(0x6) ++ SIGKILL = syscall.Signal(0x9) ++ SIGPIPE = syscall.Signal(0xd) ++ SIGPROF = syscall.Signal(0x1b) ++ SIGPWR = syscall.Signal(0x20) ++ SIGQUIT = syscall.Signal(0x3) ++ SIGSEGV = syscall.Signal(0xb) ++ SIGSTOP = syscall.Signal(0x11) ++ SIGSYS = syscall.Signal(0xc) ++ SIGTERM = syscall.Signal(0xf) ++ SIGTRAP = syscall.Signal(0x5) ++ SIGTSTP = syscall.Signal(0x12) ++ SIGTTIN = syscall.Signal(0x15) ++ SIGTTOU = syscall.Signal(0x16) ++ SIGURG = syscall.Signal(0x10) ++ SIGUSR1 = syscall.Signal(0x1e) ++ SIGUSR2 = syscall.Signal(0x1f) ++ SIGVTALRM = syscall.Signal(0x1a) ++ SIGWINCH = syscall.Signal(0x1c) ++ SIGXCPU = syscall.Signal(0x18) ++ SIGXFSZ = syscall.Signal(0x19) ++) ++ ++// Error table ++var errors = [...]string{ ++ 1: "operation not permitted", ++ 2: "no such file or directory", ++ 3: "no such process", ++ 4: "interrupted system call", ++ 5: "input/output error", ++ 6: "device not configured", ++ 7: "argument list too long", ++ 8: "exec format error", ++ 9: "bad file descriptor", ++ 10: "no child processes", ++ 11: "resource deadlock avoided", ++ 12: "cannot allocate memory", ++ 13: "permission denied", ++ 14: "bad address", ++ 15: "block device required", ++ 16: "device busy", ++ 17: "file exists", ++ 18: "cross-device link", ++ 19: "operation not supported by device", ++ 20: "not a directory", ++ 21: "is a directory", ++ 22: "invalid argument", ++ 23: "too many open files in system", ++ 24: "too many open files", ++ 25: "inappropriate ioctl for device", ++ 26: "text file busy", ++ 27: "file too large", ++ 28: "no space left on device", ++ 29: "illegal seek", ++ 30: "read-only file system", ++ 31: "too many links", ++ 32: "broken pipe", ++ 33: "numerical argument out of domain", ++ 34: "result too large or too small", ++ 35: "resource temporarily unavailable", ++ 36: "operation now in progress", ++ 37: "operation already in progress", ++ 38: "socket operation on non-socket", ++ 39: "destination address required", ++ 40: "message too long", ++ 41: "protocol wrong type for socket", ++ 42: "protocol option not available", ++ 43: "protocol not supported", ++ 44: "socket type not supported", ++ 45: "operation not supported", ++ 46: "protocol family not supported", ++ 47: "address family not supported by protocol family", ++ 48: "address already in use", ++ 49: "can't assign requested address", ++ 50: "network is down", ++ 51: "network is unreachable", ++ 52: "network dropped connection on reset", ++ 53: "software caused connection abort", ++ 54: "connection reset by peer", ++ 55: "no buffer space available", ++ 56: "socket is already connected", ++ 57: "socket is not connected", ++ 58: "can't send after socket shutdown", ++ 59: "too many references: can't splice", ++ 60: "connection timed out", ++ 61: "connection refused", ++ 62: "too many levels of symbolic links", ++ 63: "file name too long", ++ 64: "host is down", ++ 65: "no route to host", ++ 66: "directory not empty", ++ 67: "too many processes", ++ 68: "too many users", ++ 69: "disc quota exceeded", ++ 70: "stale NFS file handle", ++ 71: "too many levels of remote in path", ++ 72: "RPC struct is bad", ++ 73: "RPC version wrong", ++ 74: "RPC prog. not avail", ++ 75: "program version wrong", ++ 76: "bad procedure for program", ++ 77: "no locks available", ++ 78: "function not implemented", ++ 79: "inappropriate file type or format", ++ 80: "authentication error", ++ 81: "need authenticator", ++ 82: "identifier removed", ++ 83: "no message of desired type", ++ 84: "value too large to be stored in data type", ++ 85: "illegal byte sequence", ++ 86: "not supported", ++ 87: "operation Canceled", ++ 88: "bad or Corrupt message", ++ 89: "no message available", ++ 90: "no STREAM resources", ++ 91: "not a STREAM", ++ 92: "STREAM ioctl timeout", ++ 93: "attribute not found", ++ 94: "multihop attempted", ++ 95: "link has been severed", ++ 96: "protocol error", ++} ++ ++// Signal table ++var signals = [...]string{ ++ 1: "hangup", ++ 2: "interrupt", ++ 3: "quit", ++ 4: "illegal instruction", ++ 5: "trace/BPT trap", ++ 6: "abort trap", ++ 7: "EMT trap", ++ 8: "floating point exception", ++ 9: "killed", ++ 10: "bus error", ++ 11: "segmentation fault", ++ 12: "bad system call", ++ 13: "broken pipe", ++ 14: "alarm clock", ++ 15: "terminated", ++ 16: "urgent I/O condition", ++ 17: "stopped (signal)", ++ 18: "stopped", ++ 19: "continued", ++ 20: "child exited", ++ 21: "stopped (tty input)", ++ 22: "stopped (tty output)", ++ 23: "I/O possible", ++ 24: "cputime limit exceeded", ++ 25: "filesize limit exceeded", ++ 26: "virtual timer expired", ++ 27: "profiling timer expired", ++ 28: "window size changes", ++ 29: "information request", ++ 30: "user defined signal 1", ++ 31: "user defined signal 2", ++ 32: "power fail/restart", ++} +diff --git a/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go +new file mode 100644 +index 0000000..ac85ca6 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go +@@ -0,0 +1,1688 @@ ++// mkerrors.sh -marm ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build arm,netbsd ++ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- -marm _const.go ++ ++package unix ++ ++import "syscall" ++ ++const ( ++ AF_APPLETALK = 0x10 ++ AF_ARP = 0x1c ++ AF_BLUETOOTH = 0x1f ++ AF_CCITT = 0xa ++ AF_CHAOS = 0x5 ++ AF_CNT = 0x15 ++ AF_COIP = 0x14 ++ AF_DATAKIT = 0x9 ++ AF_DECnet = 0xc ++ AF_DLI = 0xd ++ AF_E164 = 0x1a ++ AF_ECMA = 0x8 ++ AF_HYLINK = 0xf ++ AF_IEEE80211 = 0x20 ++ AF_IMPLINK = 0x3 ++ AF_INET = 0x2 ++ AF_INET6 = 0x18 ++ AF_IPX = 0x17 ++ AF_ISDN = 0x1a ++ AF_ISO = 0x7 ++ AF_LAT = 0xe ++ AF_LINK = 0x12 ++ AF_LOCAL = 0x1 ++ AF_MAX = 0x23 ++ AF_MPLS = 0x21 ++ AF_NATM = 0x1b ++ AF_NS = 0x6 ++ AF_OROUTE = 0x11 ++ AF_OSI = 0x7 ++ AF_PUP = 0x4 ++ AF_ROUTE = 0x22 ++ AF_SNA = 0xb ++ AF_UNIX = 0x1 ++ AF_UNSPEC = 0x0 ++ ARPHRD_ARCNET = 0x7 ++ ARPHRD_ETHER = 0x1 ++ ARPHRD_FRELAY = 0xf ++ ARPHRD_IEEE1394 = 0x18 ++ ARPHRD_IEEE802 = 0x6 ++ ARPHRD_STRIP = 0x17 ++ B0 = 0x0 ++ B110 = 0x6e ++ B115200 = 0x1c200 ++ B1200 = 0x4b0 ++ B134 = 0x86 ++ B14400 = 0x3840 ++ B150 = 0x96 ++ B1800 = 0x708 ++ B19200 = 0x4b00 ++ B200 = 0xc8 ++ B230400 = 0x38400 ++ B2400 = 0x960 ++ B28800 = 0x7080 ++ B300 = 0x12c ++ B38400 = 0x9600 ++ B460800 = 0x70800 ++ B4800 = 0x12c0 ++ B50 = 0x32 ++ B57600 = 0xe100 ++ B600 = 0x258 ++ B7200 = 0x1c20 ++ B75 = 0x4b ++ B76800 = 0x12c00 ++ B921600 = 0xe1000 ++ B9600 = 0x2580 ++ BIOCFEEDBACK = 0x8004427d ++ BIOCFLUSH = 0x20004268 ++ BIOCGBLEN = 0x40044266 ++ BIOCGDLT = 0x4004426a ++ BIOCGDLTLIST = 0xc0084277 ++ BIOCGETIF = 0x4090426b ++ BIOCGFEEDBACK = 0x4004427c ++ BIOCGHDRCMPLT = 0x40044274 ++ BIOCGRTIMEOUT = 0x400c427b ++ BIOCGSEESENT = 0x40044278 ++ BIOCGSTATS = 0x4080426f ++ BIOCGSTATSOLD = 0x4008426f ++ BIOCIMMEDIATE = 0x80044270 ++ BIOCPROMISC = 0x20004269 ++ BIOCSBLEN = 0xc0044266 ++ BIOCSDLT = 0x80044276 ++ BIOCSETF = 0x80084267 ++ BIOCSETIF = 0x8090426c ++ BIOCSFEEDBACK = 0x8004427d ++ BIOCSHDRCMPLT = 0x80044275 ++ BIOCSRTIMEOUT = 0x800c427a ++ BIOCSSEESENT = 0x80044279 ++ BIOCSTCPF = 0x80084272 ++ BIOCSUDPF = 0x80084273 ++ BIOCVERSION = 0x40044271 ++ BPF_A = 0x10 ++ BPF_ABS = 0x20 ++ BPF_ADD = 0x0 ++ BPF_ALIGNMENT = 0x4 ++ BPF_ALIGNMENT32 = 0x4 ++ BPF_ALU = 0x4 ++ BPF_AND = 0x50 ++ BPF_B = 0x10 ++ BPF_DFLTBUFSIZE = 0x100000 ++ BPF_DIV = 0x30 ++ BPF_H = 0x8 ++ BPF_IMM = 0x0 ++ BPF_IND = 0x40 ++ BPF_JA = 0x0 ++ BPF_JEQ = 0x10 ++ BPF_JGE = 0x30 ++ BPF_JGT = 0x20 ++ BPF_JMP = 0x5 ++ BPF_JSET = 0x40 ++ BPF_K = 0x0 ++ BPF_LD = 0x0 ++ BPF_LDX = 0x1 ++ BPF_LEN = 0x80 ++ BPF_LSH = 0x60 ++ BPF_MAJOR_VERSION = 0x1 ++ BPF_MAXBUFSIZE = 0x1000000 ++ BPF_MAXINSNS = 0x200 ++ BPF_MEM = 0x60 ++ BPF_MEMWORDS = 0x10 ++ BPF_MINBUFSIZE = 0x20 ++ BPF_MINOR_VERSION = 0x1 ++ BPF_MISC = 0x7 ++ BPF_MSH = 0xa0 ++ BPF_MUL = 0x20 ++ BPF_NEG = 0x80 ++ BPF_OR = 0x40 ++ BPF_RELEASE = 0x30bb6 ++ BPF_RET = 0x6 ++ BPF_RSH = 0x70 ++ BPF_ST = 0x2 ++ BPF_STX = 0x3 ++ BPF_SUB = 0x10 ++ BPF_TAX = 0x0 ++ BPF_TXA = 0x80 ++ BPF_W = 0x0 ++ BPF_X = 0x8 ++ BRKINT = 0x2 ++ CFLUSH = 0xf ++ CLOCAL = 0x8000 ++ CREAD = 0x800 ++ CS5 = 0x0 ++ CS6 = 0x100 ++ CS7 = 0x200 ++ CS8 = 0x300 ++ CSIZE = 0x300 ++ CSTART = 0x11 ++ CSTATUS = 0x14 ++ CSTOP = 0x13 ++ CSTOPB = 0x400 ++ CSUSP = 0x1a ++ CTL_MAXNAME = 0xc ++ CTL_NET = 0x4 ++ CTL_QUERY = -0x2 ++ DIOCBSFLUSH = 0x20006478 ++ DLT_A429 = 0xb8 ++ DLT_A653_ICM = 0xb9 ++ DLT_AIRONET_HEADER = 0x78 ++ DLT_AOS = 0xde ++ DLT_APPLE_IP_OVER_IEEE1394 = 0x8a ++ DLT_ARCNET = 0x7 ++ DLT_ARCNET_LINUX = 0x81 ++ DLT_ATM_CLIP = 0x13 ++ DLT_ATM_RFC1483 = 0xb ++ DLT_AURORA = 0x7e ++ DLT_AX25 = 0x3 ++ DLT_AX25_KISS = 0xca ++ DLT_BACNET_MS_TP = 0xa5 ++ DLT_BLUETOOTH_HCI_H4 = 0xbb ++ DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 ++ DLT_CAN20B = 0xbe ++ DLT_CAN_SOCKETCAN = 0xe3 ++ DLT_CHAOS = 0x5 ++ DLT_CISCO_IOS = 0x76 ++ DLT_C_HDLC = 0x68 ++ DLT_C_HDLC_WITH_DIR = 0xcd ++ DLT_DECT = 0xdd ++ DLT_DOCSIS = 0x8f ++ DLT_ECONET = 0x73 ++ DLT_EN10MB = 0x1 ++ DLT_EN3MB = 0x2 ++ DLT_ENC = 0x6d ++ DLT_ERF = 0xc5 ++ DLT_ERF_ETH = 0xaf ++ DLT_ERF_POS = 0xb0 ++ DLT_FC_2 = 0xe0 ++ DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 ++ DLT_FDDI = 0xa ++ DLT_FLEXRAY = 0xd2 ++ DLT_FRELAY = 0x6b ++ DLT_FRELAY_WITH_DIR = 0xce ++ DLT_GCOM_SERIAL = 0xad ++ DLT_GCOM_T1E1 = 0xac ++ DLT_GPF_F = 0xab ++ DLT_GPF_T = 0xaa ++ DLT_GPRS_LLC = 0xa9 ++ DLT_GSMTAP_ABIS = 0xda ++ DLT_GSMTAP_UM = 0xd9 ++ DLT_HDLC = 0x10 ++ DLT_HHDLC = 0x79 ++ DLT_HIPPI = 0xf ++ DLT_IBM_SN = 0x92 ++ DLT_IBM_SP = 0x91 ++ DLT_IEEE802 = 0x6 ++ DLT_IEEE802_11 = 0x69 ++ DLT_IEEE802_11_RADIO = 0x7f ++ DLT_IEEE802_11_RADIO_AVS = 0xa3 ++ DLT_IEEE802_15_4 = 0xc3 ++ DLT_IEEE802_15_4_LINUX = 0xbf ++ DLT_IEEE802_15_4_NONASK_PHY = 0xd7 ++ DLT_IEEE802_16_MAC_CPS = 0xbc ++ DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 ++ DLT_IPMB = 0xc7 ++ DLT_IPMB_LINUX = 0xd1 ++ DLT_IPNET = 0xe2 ++ DLT_IPV4 = 0xe4 ++ DLT_IPV6 = 0xe5 ++ DLT_IP_OVER_FC = 0x7a ++ DLT_JUNIPER_ATM1 = 0x89 ++ DLT_JUNIPER_ATM2 = 0x87 ++ DLT_JUNIPER_CHDLC = 0xb5 ++ DLT_JUNIPER_ES = 0x84 ++ DLT_JUNIPER_ETHER = 0xb2 ++ DLT_JUNIPER_FRELAY = 0xb4 ++ DLT_JUNIPER_GGSN = 0x85 ++ DLT_JUNIPER_ISM = 0xc2 ++ DLT_JUNIPER_MFR = 0x86 ++ DLT_JUNIPER_MLFR = 0x83 ++ DLT_JUNIPER_MLPPP = 0x82 ++ DLT_JUNIPER_MONITOR = 0xa4 ++ DLT_JUNIPER_PIC_PEER = 0xae ++ DLT_JUNIPER_PPP = 0xb3 ++ DLT_JUNIPER_PPPOE = 0xa7 ++ DLT_JUNIPER_PPPOE_ATM = 0xa8 ++ DLT_JUNIPER_SERVICES = 0x88 ++ DLT_JUNIPER_ST = 0xc8 ++ DLT_JUNIPER_VP = 0xb7 ++ DLT_LAPB_WITH_DIR = 0xcf ++ DLT_LAPD = 0xcb ++ DLT_LIN = 0xd4 ++ DLT_LINUX_EVDEV = 0xd8 ++ DLT_LINUX_IRDA = 0x90 ++ DLT_LINUX_LAPD = 0xb1 ++ DLT_LINUX_SLL = 0x71 ++ DLT_LOOP = 0x6c ++ DLT_LTALK = 0x72 ++ DLT_MFR = 0xb6 ++ DLT_MOST = 0xd3 ++ DLT_MPLS = 0xdb ++ DLT_MTP2 = 0x8c ++ DLT_MTP2_WITH_PHDR = 0x8b ++ DLT_MTP3 = 0x8d ++ DLT_NULL = 0x0 ++ DLT_PCI_EXP = 0x7d ++ DLT_PFLOG = 0x75 ++ DLT_PFSYNC = 0x12 ++ DLT_PPI = 0xc0 ++ DLT_PPP = 0x9 ++ DLT_PPP_BSDOS = 0xe ++ DLT_PPP_ETHER = 0x33 ++ DLT_PPP_PPPD = 0xa6 ++ DLT_PPP_SERIAL = 0x32 ++ DLT_PPP_WITH_DIR = 0xcc ++ DLT_PRISM_HEADER = 0x77 ++ DLT_PRONET = 0x4 ++ DLT_RAIF1 = 0xc6 ++ DLT_RAW = 0xc ++ DLT_RAWAF_MASK = 0x2240000 ++ DLT_RIO = 0x7c ++ DLT_SCCP = 0x8e ++ DLT_SITA = 0xc4 ++ DLT_SLIP = 0x8 ++ DLT_SLIP_BSDOS = 0xd ++ DLT_SUNATM = 0x7b ++ DLT_SYMANTEC_FIREWALL = 0x63 ++ DLT_TZSP = 0x80 ++ DLT_USB = 0xba ++ DLT_USB_LINUX = 0xbd ++ DLT_USB_LINUX_MMAPPED = 0xdc ++ DLT_WIHART = 0xdf ++ DLT_X2E_SERIAL = 0xd5 ++ DLT_X2E_XORAYA = 0xd6 ++ DT_BLK = 0x6 ++ DT_CHR = 0x2 ++ DT_DIR = 0x4 ++ DT_FIFO = 0x1 ++ DT_LNK = 0xa ++ DT_REG = 0x8 ++ DT_SOCK = 0xc ++ DT_UNKNOWN = 0x0 ++ DT_WHT = 0xe ++ ECHO = 0x8 ++ ECHOCTL = 0x40 ++ ECHOE = 0x2 ++ ECHOK = 0x4 ++ ECHOKE = 0x1 ++ ECHONL = 0x10 ++ ECHOPRT = 0x20 ++ EMUL_LINUX = 0x1 ++ EMUL_LINUX32 = 0x5 ++ EMUL_MAXID = 0x6 ++ ETHERCAP_JUMBO_MTU = 0x4 ++ ETHERCAP_VLAN_HWTAGGING = 0x2 ++ ETHERCAP_VLAN_MTU = 0x1 ++ ETHERMIN = 0x2e ++ ETHERMTU = 0x5dc ++ ETHERMTU_JUMBO = 0x2328 ++ ETHERTYPE_8023 = 0x4 ++ ETHERTYPE_AARP = 0x80f3 ++ ETHERTYPE_ACCTON = 0x8390 ++ ETHERTYPE_AEONIC = 0x8036 ++ ETHERTYPE_ALPHA = 0x814a ++ ETHERTYPE_AMBER = 0x6008 ++ ETHERTYPE_AMOEBA = 0x8145 ++ ETHERTYPE_APOLLO = 0x80f7 ++ ETHERTYPE_APOLLODOMAIN = 0x8019 ++ ETHERTYPE_APPLETALK = 0x809b ++ ETHERTYPE_APPLITEK = 0x80c7 ++ ETHERTYPE_ARGONAUT = 0x803a ++ ETHERTYPE_ARP = 0x806 ++ ETHERTYPE_AT = 0x809b ++ ETHERTYPE_ATALK = 0x809b ++ ETHERTYPE_ATOMIC = 0x86df ++ ETHERTYPE_ATT = 0x8069 ++ ETHERTYPE_ATTSTANFORD = 0x8008 ++ ETHERTYPE_AUTOPHON = 0x806a ++ ETHERTYPE_AXIS = 0x8856 ++ ETHERTYPE_BCLOOP = 0x9003 ++ ETHERTYPE_BOFL = 0x8102 ++ ETHERTYPE_CABLETRON = 0x7034 ++ ETHERTYPE_CHAOS = 0x804 ++ ETHERTYPE_COMDESIGN = 0x806c ++ ETHERTYPE_COMPUGRAPHIC = 0x806d ++ ETHERTYPE_COUNTERPOINT = 0x8062 ++ ETHERTYPE_CRONUS = 0x8004 ++ ETHERTYPE_CRONUSVLN = 0x8003 ++ ETHERTYPE_DCA = 0x1234 ++ ETHERTYPE_DDE = 0x807b ++ ETHERTYPE_DEBNI = 0xaaaa ++ ETHERTYPE_DECAM = 0x8048 ++ ETHERTYPE_DECCUST = 0x6006 ++ ETHERTYPE_DECDIAG = 0x6005 ++ ETHERTYPE_DECDNS = 0x803c ++ ETHERTYPE_DECDTS = 0x803e ++ ETHERTYPE_DECEXPER = 0x6000 ++ ETHERTYPE_DECLAST = 0x8041 ++ ETHERTYPE_DECLTM = 0x803f ++ ETHERTYPE_DECMUMPS = 0x6009 ++ ETHERTYPE_DECNETBIOS = 0x8040 ++ ETHERTYPE_DELTACON = 0x86de ++ ETHERTYPE_DIDDLE = 0x4321 ++ ETHERTYPE_DLOG1 = 0x660 ++ ETHERTYPE_DLOG2 = 0x661 ++ ETHERTYPE_DN = 0x6003 ++ ETHERTYPE_DOGFIGHT = 0x1989 ++ ETHERTYPE_DSMD = 0x8039 ++ ETHERTYPE_ECMA = 0x803 ++ ETHERTYPE_ENCRYPT = 0x803d ++ ETHERTYPE_ES = 0x805d ++ ETHERTYPE_EXCELAN = 0x8010 ++ ETHERTYPE_EXPERDATA = 0x8049 ++ ETHERTYPE_FLIP = 0x8146 ++ ETHERTYPE_FLOWCONTROL = 0x8808 ++ ETHERTYPE_FRARP = 0x808 ++ ETHERTYPE_GENDYN = 0x8068 ++ ETHERTYPE_HAYES = 0x8130 ++ ETHERTYPE_HIPPI_FP = 0x8180 ++ ETHERTYPE_HITACHI = 0x8820 ++ ETHERTYPE_HP = 0x8005 ++ ETHERTYPE_IEEEPUP = 0xa00 ++ ETHERTYPE_IEEEPUPAT = 0xa01 ++ ETHERTYPE_IMLBL = 0x4c42 ++ ETHERTYPE_IMLBLDIAG = 0x424c ++ ETHERTYPE_IP = 0x800 ++ ETHERTYPE_IPAS = 0x876c ++ ETHERTYPE_IPV6 = 0x86dd ++ ETHERTYPE_IPX = 0x8137 ++ ETHERTYPE_IPXNEW = 0x8037 ++ ETHERTYPE_KALPANA = 0x8582 ++ ETHERTYPE_LANBRIDGE = 0x8038 ++ ETHERTYPE_LANPROBE = 0x8888 ++ ETHERTYPE_LAT = 0x6004 ++ ETHERTYPE_LBACK = 0x9000 ++ ETHERTYPE_LITTLE = 0x8060 ++ ETHERTYPE_LOGICRAFT = 0x8148 ++ ETHERTYPE_LOOPBACK = 0x9000 ++ ETHERTYPE_MATRA = 0x807a ++ ETHERTYPE_MAX = 0xffff ++ ETHERTYPE_MERIT = 0x807c ++ ETHERTYPE_MICP = 0x873a ++ ETHERTYPE_MOPDL = 0x6001 ++ ETHERTYPE_MOPRC = 0x6002 ++ ETHERTYPE_MOTOROLA = 0x818d ++ ETHERTYPE_MPLS = 0x8847 ++ ETHERTYPE_MPLS_MCAST = 0x8848 ++ ETHERTYPE_MUMPS = 0x813f ++ ETHERTYPE_NBPCC = 0x3c04 ++ ETHERTYPE_NBPCLAIM = 0x3c09 ++ ETHERTYPE_NBPCLREQ = 0x3c05 ++ ETHERTYPE_NBPCLRSP = 0x3c06 ++ ETHERTYPE_NBPCREQ = 0x3c02 ++ ETHERTYPE_NBPCRSP = 0x3c03 ++ ETHERTYPE_NBPDG = 0x3c07 ++ ETHERTYPE_NBPDGB = 0x3c08 ++ ETHERTYPE_NBPDLTE = 0x3c0a ++ ETHERTYPE_NBPRAR = 0x3c0c ++ ETHERTYPE_NBPRAS = 0x3c0b ++ ETHERTYPE_NBPRST = 0x3c0d ++ ETHERTYPE_NBPSCD = 0x3c01 ++ ETHERTYPE_NBPVCD = 0x3c00 ++ ETHERTYPE_NBS = 0x802 ++ ETHERTYPE_NCD = 0x8149 ++ ETHERTYPE_NESTAR = 0x8006 ++ ETHERTYPE_NETBEUI = 0x8191 ++ ETHERTYPE_NOVELL = 0x8138 ++ ETHERTYPE_NS = 0x600 ++ ETHERTYPE_NSAT = 0x601 ++ ETHERTYPE_NSCOMPAT = 0x807 ++ ETHERTYPE_NTRAILER = 0x10 ++ ETHERTYPE_OS9 = 0x7007 ++ ETHERTYPE_OS9NET = 0x7009 ++ ETHERTYPE_PACER = 0x80c6 ++ ETHERTYPE_PAE = 0x888e ++ ETHERTYPE_PCS = 0x4242 ++ ETHERTYPE_PLANNING = 0x8044 ++ ETHERTYPE_PPP = 0x880b ++ ETHERTYPE_PPPOE = 0x8864 ++ ETHERTYPE_PPPOEDISC = 0x8863 ++ ETHERTYPE_PRIMENTS = 0x7031 ++ ETHERTYPE_PUP = 0x200 ++ ETHERTYPE_PUPAT = 0x200 ++ ETHERTYPE_RACAL = 0x7030 ++ ETHERTYPE_RATIONAL = 0x8150 ++ ETHERTYPE_RAWFR = 0x6559 ++ ETHERTYPE_RCL = 0x1995 ++ ETHERTYPE_RDP = 0x8739 ++ ETHERTYPE_RETIX = 0x80f2 ++ ETHERTYPE_REVARP = 0x8035 ++ ETHERTYPE_SCA = 0x6007 ++ ETHERTYPE_SECTRA = 0x86db ++ ETHERTYPE_SECUREDATA = 0x876d ++ ETHERTYPE_SGITW = 0x817e ++ ETHERTYPE_SG_BOUNCE = 0x8016 ++ ETHERTYPE_SG_DIAG = 0x8013 ++ ETHERTYPE_SG_NETGAMES = 0x8014 ++ ETHERTYPE_SG_RESV = 0x8015 ++ ETHERTYPE_SIMNET = 0x5208 ++ ETHERTYPE_SLOWPROTOCOLS = 0x8809 ++ ETHERTYPE_SNA = 0x80d5 ++ ETHERTYPE_SNMP = 0x814c ++ ETHERTYPE_SONIX = 0xfaf5 ++ ETHERTYPE_SPIDER = 0x809f ++ ETHERTYPE_SPRITE = 0x500 ++ ETHERTYPE_STP = 0x8181 ++ ETHERTYPE_TALARIS = 0x812b ++ ETHERTYPE_TALARISMC = 0x852b ++ ETHERTYPE_TCPCOMP = 0x876b ++ ETHERTYPE_TCPSM = 0x9002 ++ ETHERTYPE_TEC = 0x814f ++ ETHERTYPE_TIGAN = 0x802f ++ ETHERTYPE_TRAIL = 0x1000 ++ ETHERTYPE_TRANSETHER = 0x6558 ++ ETHERTYPE_TYMSHARE = 0x802e ++ ETHERTYPE_UBBST = 0x7005 ++ ETHERTYPE_UBDEBUG = 0x900 ++ ETHERTYPE_UBDIAGLOOP = 0x7002 ++ ETHERTYPE_UBDL = 0x7000 ++ ETHERTYPE_UBNIU = 0x7001 ++ ETHERTYPE_UBNMC = 0x7003 ++ ETHERTYPE_VALID = 0x1600 ++ ETHERTYPE_VARIAN = 0x80dd ++ ETHERTYPE_VAXELN = 0x803b ++ ETHERTYPE_VEECO = 0x8067 ++ ETHERTYPE_VEXP = 0x805b ++ ETHERTYPE_VGLAB = 0x8131 ++ ETHERTYPE_VINES = 0xbad ++ ETHERTYPE_VINESECHO = 0xbaf ++ ETHERTYPE_VINESLOOP = 0xbae ++ ETHERTYPE_VITAL = 0xff00 ++ ETHERTYPE_VLAN = 0x8100 ++ ETHERTYPE_VLTLMAN = 0x8080 ++ ETHERTYPE_VPROD = 0x805c ++ ETHERTYPE_VURESERVED = 0x8147 ++ ETHERTYPE_WATERLOO = 0x8130 ++ ETHERTYPE_WELLFLEET = 0x8103 ++ ETHERTYPE_X25 = 0x805 ++ ETHERTYPE_X75 = 0x801 ++ ETHERTYPE_XNSSM = 0x9001 ++ ETHERTYPE_XTP = 0x817d ++ ETHER_ADDR_LEN = 0x6 ++ ETHER_CRC_LEN = 0x4 ++ ETHER_CRC_POLY_BE = 0x4c11db6 ++ ETHER_CRC_POLY_LE = 0xedb88320 ++ ETHER_HDR_LEN = 0xe ++ ETHER_MAX_LEN = 0x5ee ++ ETHER_MAX_LEN_JUMBO = 0x233a ++ ETHER_MIN_LEN = 0x40 ++ ETHER_PPPOE_ENCAP_LEN = 0x8 ++ ETHER_TYPE_LEN = 0x2 ++ ETHER_VLAN_ENCAP_LEN = 0x4 ++ EVFILT_AIO = 0x2 ++ EVFILT_PROC = 0x4 ++ EVFILT_READ = 0x0 ++ EVFILT_SIGNAL = 0x5 ++ EVFILT_SYSCOUNT = 0x7 ++ EVFILT_TIMER = 0x6 ++ EVFILT_VNODE = 0x3 ++ EVFILT_WRITE = 0x1 ++ EV_ADD = 0x1 ++ EV_CLEAR = 0x20 ++ EV_DELETE = 0x2 ++ EV_DISABLE = 0x8 ++ EV_ENABLE = 0x4 ++ EV_EOF = 0x8000 ++ EV_ERROR = 0x4000 ++ EV_FLAG1 = 0x2000 ++ EV_ONESHOT = 0x10 ++ EV_SYSFLAGS = 0xf000 ++ EXTA = 0x4b00 ++ EXTB = 0x9600 ++ EXTPROC = 0x800 ++ FD_CLOEXEC = 0x1 ++ FD_SETSIZE = 0x100 ++ FLUSHO = 0x800000 ++ F_CLOSEM = 0xa ++ F_DUPFD = 0x0 ++ F_DUPFD_CLOEXEC = 0xc ++ F_FSCTL = -0x80000000 ++ F_FSDIRMASK = 0x70000000 ++ F_FSIN = 0x10000000 ++ F_FSINOUT = 0x30000000 ++ F_FSOUT = 0x20000000 ++ F_FSPRIV = 0x8000 ++ F_FSVOID = 0x40000000 ++ F_GETFD = 0x1 ++ F_GETFL = 0x3 ++ F_GETLK = 0x7 ++ F_GETNOSIGPIPE = 0xd ++ F_GETOWN = 0x5 ++ F_MAXFD = 0xb ++ F_OK = 0x0 ++ F_PARAM_MASK = 0xfff ++ F_PARAM_MAX = 0xfff ++ F_RDLCK = 0x1 ++ F_SETFD = 0x2 ++ F_SETFL = 0x4 ++ F_SETLK = 0x8 ++ F_SETLKW = 0x9 ++ F_SETNOSIGPIPE = 0xe ++ F_SETOWN = 0x6 ++ F_UNLCK = 0x2 ++ F_WRLCK = 0x3 ++ HUPCL = 0x4000 ++ ICANON = 0x100 ++ ICMP6_FILTER = 0x12 ++ ICRNL = 0x100 ++ IEXTEN = 0x400 ++ IFAN_ARRIVAL = 0x0 ++ IFAN_DEPARTURE = 0x1 ++ IFA_ROUTE = 0x1 ++ IFF_ALLMULTI = 0x200 ++ IFF_BROADCAST = 0x2 ++ IFF_CANTCHANGE = 0x8f52 ++ IFF_DEBUG = 0x4 ++ IFF_LINK0 = 0x1000 ++ IFF_LINK1 = 0x2000 ++ IFF_LINK2 = 0x4000 ++ IFF_LOOPBACK = 0x8 ++ IFF_MULTICAST = 0x8000 ++ IFF_NOARP = 0x80 ++ IFF_NOTRAILERS = 0x20 ++ IFF_OACTIVE = 0x400 ++ IFF_POINTOPOINT = 0x10 ++ IFF_PROMISC = 0x100 ++ IFF_RUNNING = 0x40 ++ IFF_SIMPLEX = 0x800 ++ IFF_UP = 0x1 ++ IFNAMSIZ = 0x10 ++ IFT_1822 = 0x2 ++ IFT_A12MPPSWITCH = 0x82 ++ IFT_AAL2 = 0xbb ++ IFT_AAL5 = 0x31 ++ IFT_ADSL = 0x5e ++ IFT_AFLANE8023 = 0x3b ++ IFT_AFLANE8025 = 0x3c ++ IFT_ARAP = 0x58 ++ IFT_ARCNET = 0x23 ++ IFT_ARCNETPLUS = 0x24 ++ IFT_ASYNC = 0x54 ++ IFT_ATM = 0x25 ++ IFT_ATMDXI = 0x69 ++ IFT_ATMFUNI = 0x6a ++ IFT_ATMIMA = 0x6b ++ IFT_ATMLOGICAL = 0x50 ++ IFT_ATMRADIO = 0xbd ++ IFT_ATMSUBINTERFACE = 0x86 ++ IFT_ATMVCIENDPT = 0xc2 ++ IFT_ATMVIRTUAL = 0x95 ++ IFT_BGPPOLICYACCOUNTING = 0xa2 ++ IFT_BRIDGE = 0xd1 ++ IFT_BSC = 0x53 ++ IFT_CARP = 0xf8 ++ IFT_CCTEMUL = 0x3d ++ IFT_CEPT = 0x13 ++ IFT_CES = 0x85 ++ IFT_CHANNEL = 0x46 ++ IFT_CNR = 0x55 ++ IFT_COFFEE = 0x84 ++ IFT_COMPOSITELINK = 0x9b ++ IFT_DCN = 0x8d ++ IFT_DIGITALPOWERLINE = 0x8a ++ IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba ++ IFT_DLSW = 0x4a ++ IFT_DOCSCABLEDOWNSTREAM = 0x80 ++ IFT_DOCSCABLEMACLAYER = 0x7f ++ IFT_DOCSCABLEUPSTREAM = 0x81 ++ IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd ++ IFT_DS0 = 0x51 ++ IFT_DS0BUNDLE = 0x52 ++ IFT_DS1FDL = 0xaa ++ IFT_DS3 = 0x1e ++ IFT_DTM = 0x8c ++ IFT_DVBASILN = 0xac ++ IFT_DVBASIOUT = 0xad ++ IFT_DVBRCCDOWNSTREAM = 0x93 ++ IFT_DVBRCCMACLAYER = 0x92 ++ IFT_DVBRCCUPSTREAM = 0x94 ++ IFT_ECONET = 0xce ++ IFT_EON = 0x19 ++ IFT_EPLRS = 0x57 ++ IFT_ESCON = 0x49 ++ IFT_ETHER = 0x6 ++ IFT_FAITH = 0xf2 ++ IFT_FAST = 0x7d ++ IFT_FASTETHER = 0x3e ++ IFT_FASTETHERFX = 0x45 ++ IFT_FDDI = 0xf ++ IFT_FIBRECHANNEL = 0x38 ++ IFT_FRAMERELAYINTERCONNECT = 0x3a ++ IFT_FRAMERELAYMPI = 0x5c ++ IFT_FRDLCIENDPT = 0xc1 ++ IFT_FRELAY = 0x20 ++ IFT_FRELAYDCE = 0x2c ++ IFT_FRF16MFRBUNDLE = 0xa3 ++ IFT_FRFORWARD = 0x9e ++ IFT_G703AT2MB = 0x43 ++ IFT_G703AT64K = 0x42 ++ IFT_GIF = 0xf0 ++ IFT_GIGABITETHERNET = 0x75 ++ IFT_GR303IDT = 0xb2 ++ IFT_GR303RDT = 0xb1 ++ IFT_H323GATEKEEPER = 0xa4 ++ IFT_H323PROXY = 0xa5 ++ IFT_HDH1822 = 0x3 ++ IFT_HDLC = 0x76 ++ IFT_HDSL2 = 0xa8 ++ IFT_HIPERLAN2 = 0xb7 ++ IFT_HIPPI = 0x2f ++ IFT_HIPPIINTERFACE = 0x39 ++ IFT_HOSTPAD = 0x5a ++ IFT_HSSI = 0x2e ++ IFT_HY = 0xe ++ IFT_IBM370PARCHAN = 0x48 ++ IFT_IDSL = 0x9a ++ IFT_IEEE1394 = 0x90 ++ IFT_IEEE80211 = 0x47 ++ IFT_IEEE80212 = 0x37 ++ IFT_IEEE8023ADLAG = 0xa1 ++ IFT_IFGSN = 0x91 ++ IFT_IMT = 0xbe ++ IFT_INFINIBAND = 0xc7 ++ IFT_INTERLEAVE = 0x7c ++ IFT_IP = 0x7e ++ IFT_IPFORWARD = 0x8e ++ IFT_IPOVERATM = 0x72 ++ IFT_IPOVERCDLC = 0x6d ++ IFT_IPOVERCLAW = 0x6e ++ IFT_IPSWITCH = 0x4e ++ IFT_ISDN = 0x3f ++ IFT_ISDNBASIC = 0x14 ++ IFT_ISDNPRIMARY = 0x15 ++ IFT_ISDNS = 0x4b ++ IFT_ISDNU = 0x4c ++ IFT_ISO88022LLC = 0x29 ++ IFT_ISO88023 = 0x7 ++ IFT_ISO88024 = 0x8 ++ IFT_ISO88025 = 0x9 ++ IFT_ISO88025CRFPINT = 0x62 ++ IFT_ISO88025DTR = 0x56 ++ IFT_ISO88025FIBER = 0x73 ++ IFT_ISO88026 = 0xa ++ IFT_ISUP = 0xb3 ++ IFT_L2VLAN = 0x87 ++ IFT_L3IPVLAN = 0x88 ++ IFT_L3IPXVLAN = 0x89 ++ IFT_LAPB = 0x10 ++ IFT_LAPD = 0x4d ++ IFT_LAPF = 0x77 ++ IFT_LINEGROUP = 0xd2 ++ IFT_LOCALTALK = 0x2a ++ IFT_LOOP = 0x18 ++ IFT_MEDIAMAILOVERIP = 0x8b ++ IFT_MFSIGLINK = 0xa7 ++ IFT_MIOX25 = 0x26 ++ IFT_MODEM = 0x30 ++ IFT_MPC = 0x71 ++ IFT_MPLS = 0xa6 ++ IFT_MPLSTUNNEL = 0x96 ++ IFT_MSDSL = 0x8f ++ IFT_MVL = 0xbf ++ IFT_MYRINET = 0x63 ++ IFT_NFAS = 0xaf ++ IFT_NSIP = 0x1b ++ IFT_OPTICALCHANNEL = 0xc3 ++ IFT_OPTICALTRANSPORT = 0xc4 ++ IFT_OTHER = 0x1 ++ IFT_P10 = 0xc ++ IFT_P80 = 0xd ++ IFT_PARA = 0x22 ++ IFT_PFLOG = 0xf5 ++ IFT_PFSYNC = 0xf6 ++ IFT_PLC = 0xae ++ IFT_PON155 = 0xcf ++ IFT_PON622 = 0xd0 ++ IFT_POS = 0xab ++ IFT_PPP = 0x17 ++ IFT_PPPMULTILINKBUNDLE = 0x6c ++ IFT_PROPATM = 0xc5 ++ IFT_PROPBWAP2MP = 0xb8 ++ IFT_PROPCNLS = 0x59 ++ IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 ++ IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 ++ IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 ++ IFT_PROPMUX = 0x36 ++ IFT_PROPVIRTUAL = 0x35 ++ IFT_PROPWIRELESSP2P = 0x9d ++ IFT_PTPSERIAL = 0x16 ++ IFT_PVC = 0xf1 ++ IFT_Q2931 = 0xc9 ++ IFT_QLLC = 0x44 ++ IFT_RADIOMAC = 0xbc ++ IFT_RADSL = 0x5f ++ IFT_REACHDSL = 0xc0 ++ IFT_RFC1483 = 0x9f ++ IFT_RS232 = 0x21 ++ IFT_RSRB = 0x4f ++ IFT_SDLC = 0x11 ++ IFT_SDSL = 0x60 ++ IFT_SHDSL = 0xa9 ++ IFT_SIP = 0x1f ++ IFT_SIPSIG = 0xcc ++ IFT_SIPTG = 0xcb ++ IFT_SLIP = 0x1c ++ IFT_SMDSDXI = 0x2b ++ IFT_SMDSICIP = 0x34 ++ IFT_SONET = 0x27 ++ IFT_SONETOVERHEADCHANNEL = 0xb9 ++ IFT_SONETPATH = 0x32 ++ IFT_SONETVT = 0x33 ++ IFT_SRP = 0x97 ++ IFT_SS7SIGLINK = 0x9c ++ IFT_STACKTOSTACK = 0x6f ++ IFT_STARLAN = 0xb ++ IFT_STF = 0xd7 ++ IFT_T1 = 0x12 ++ IFT_TDLC = 0x74 ++ IFT_TELINK = 0xc8 ++ IFT_TERMPAD = 0x5b ++ IFT_TR008 = 0xb0 ++ IFT_TRANSPHDLC = 0x7b ++ IFT_TUNNEL = 0x83 ++ IFT_ULTRA = 0x1d ++ IFT_USB = 0xa0 ++ IFT_V11 = 0x40 ++ IFT_V35 = 0x2d ++ IFT_V36 = 0x41 ++ IFT_V37 = 0x78 ++ IFT_VDSL = 0x61 ++ IFT_VIRTUALIPADDRESS = 0x70 ++ IFT_VIRTUALTG = 0xca ++ IFT_VOICEDID = 0xd5 ++ IFT_VOICEEM = 0x64 ++ IFT_VOICEEMFGD = 0xd3 ++ IFT_VOICEENCAP = 0x67 ++ IFT_VOICEFGDEANA = 0xd4 ++ IFT_VOICEFXO = 0x65 ++ IFT_VOICEFXS = 0x66 ++ IFT_VOICEOVERATM = 0x98 ++ IFT_VOICEOVERCABLE = 0xc6 ++ IFT_VOICEOVERFRAMERELAY = 0x99 ++ IFT_VOICEOVERIP = 0x68 ++ IFT_X213 = 0x5d ++ IFT_X25 = 0x5 ++ IFT_X25DDN = 0x4 ++ IFT_X25HUNTGROUP = 0x7a ++ IFT_X25MLP = 0x79 ++ IFT_X25PLE = 0x28 ++ IFT_XETHER = 0x1a ++ IGNBRK = 0x1 ++ IGNCR = 0x80 ++ IGNPAR = 0x4 ++ IMAXBEL = 0x2000 ++ INLCR = 0x40 ++ INPCK = 0x10 ++ IN_CLASSA_HOST = 0xffffff ++ IN_CLASSA_MAX = 0x80 ++ IN_CLASSA_NET = 0xff000000 ++ IN_CLASSA_NSHIFT = 0x18 ++ IN_CLASSB_HOST = 0xffff ++ IN_CLASSB_MAX = 0x10000 ++ IN_CLASSB_NET = 0xffff0000 ++ IN_CLASSB_NSHIFT = 0x10 ++ IN_CLASSC_HOST = 0xff ++ IN_CLASSC_NET = 0xffffff00 ++ IN_CLASSC_NSHIFT = 0x8 ++ IN_CLASSD_HOST = 0xfffffff ++ IN_CLASSD_NET = 0xf0000000 ++ IN_CLASSD_NSHIFT = 0x1c ++ IN_LOOPBACKNET = 0x7f ++ IPPROTO_AH = 0x33 ++ IPPROTO_CARP = 0x70 ++ IPPROTO_DONE = 0x101 ++ IPPROTO_DSTOPTS = 0x3c ++ IPPROTO_EGP = 0x8 ++ IPPROTO_ENCAP = 0x62 ++ IPPROTO_EON = 0x50 ++ IPPROTO_ESP = 0x32 ++ IPPROTO_ETHERIP = 0x61 ++ IPPROTO_FRAGMENT = 0x2c ++ IPPROTO_GGP = 0x3 ++ IPPROTO_GRE = 0x2f ++ IPPROTO_HOPOPTS = 0x0 ++ IPPROTO_ICMP = 0x1 ++ IPPROTO_ICMPV6 = 0x3a ++ IPPROTO_IDP = 0x16 ++ IPPROTO_IGMP = 0x2 ++ IPPROTO_IP = 0x0 ++ IPPROTO_IPCOMP = 0x6c ++ IPPROTO_IPIP = 0x4 ++ IPPROTO_IPV4 = 0x4 ++ IPPROTO_IPV6 = 0x29 ++ IPPROTO_IPV6_ICMP = 0x3a ++ IPPROTO_MAX = 0x100 ++ IPPROTO_MAXID = 0x34 ++ IPPROTO_MOBILE = 0x37 ++ IPPROTO_NONE = 0x3b ++ IPPROTO_PFSYNC = 0xf0 ++ IPPROTO_PIM = 0x67 ++ IPPROTO_PUP = 0xc ++ IPPROTO_RAW = 0xff ++ IPPROTO_ROUTING = 0x2b ++ IPPROTO_RSVP = 0x2e ++ IPPROTO_TCP = 0x6 ++ IPPROTO_TP = 0x1d ++ IPPROTO_UDP = 0x11 ++ IPPROTO_VRRP = 0x70 ++ IPV6_CHECKSUM = 0x1a ++ IPV6_DEFAULT_MULTICAST_HOPS = 0x1 ++ IPV6_DEFAULT_MULTICAST_LOOP = 0x1 ++ IPV6_DEFHLIM = 0x40 ++ IPV6_DONTFRAG = 0x3e ++ IPV6_DSTOPTS = 0x32 ++ IPV6_FAITH = 0x1d ++ IPV6_FLOWINFO_MASK = 0xffffff0f ++ IPV6_FLOWLABEL_MASK = 0xffff0f00 ++ IPV6_FRAGTTL = 0x78 ++ IPV6_HLIMDEC = 0x1 ++ IPV6_HOPLIMIT = 0x2f ++ IPV6_HOPOPTS = 0x31 ++ IPV6_IPSEC_POLICY = 0x1c ++ IPV6_JOIN_GROUP = 0xc ++ IPV6_LEAVE_GROUP = 0xd ++ IPV6_MAXHLIM = 0xff ++ IPV6_MAXPACKET = 0xffff ++ IPV6_MMTU = 0x500 ++ IPV6_MULTICAST_HOPS = 0xa ++ IPV6_MULTICAST_IF = 0x9 ++ IPV6_MULTICAST_LOOP = 0xb ++ IPV6_NEXTHOP = 0x30 ++ IPV6_PATHMTU = 0x2c ++ IPV6_PKTINFO = 0x2e ++ IPV6_PORTRANGE = 0xe ++ IPV6_PORTRANGE_DEFAULT = 0x0 ++ IPV6_PORTRANGE_HIGH = 0x1 ++ IPV6_PORTRANGE_LOW = 0x2 ++ IPV6_RECVDSTOPTS = 0x28 ++ IPV6_RECVHOPLIMIT = 0x25 ++ IPV6_RECVHOPOPTS = 0x27 ++ IPV6_RECVPATHMTU = 0x2b ++ IPV6_RECVPKTINFO = 0x24 ++ IPV6_RECVRTHDR = 0x26 ++ IPV6_RECVTCLASS = 0x39 ++ IPV6_RTHDR = 0x33 ++ IPV6_RTHDRDSTOPTS = 0x23 ++ IPV6_RTHDR_LOOSE = 0x0 ++ IPV6_RTHDR_STRICT = 0x1 ++ IPV6_RTHDR_TYPE_0 = 0x0 ++ IPV6_SOCKOPT_RESERVED1 = 0x3 ++ IPV6_TCLASS = 0x3d ++ IPV6_UNICAST_HOPS = 0x4 ++ IPV6_USE_MIN_MTU = 0x2a ++ IPV6_V6ONLY = 0x1b ++ IPV6_VERSION = 0x60 ++ IPV6_VERSION_MASK = 0xf0 ++ IP_ADD_MEMBERSHIP = 0xc ++ IP_DEFAULT_MULTICAST_LOOP = 0x1 ++ IP_DEFAULT_MULTICAST_TTL = 0x1 ++ IP_DF = 0x4000 ++ IP_DROP_MEMBERSHIP = 0xd ++ IP_EF = 0x8000 ++ IP_ERRORMTU = 0x15 ++ IP_HDRINCL = 0x2 ++ IP_IPSEC_POLICY = 0x16 ++ IP_MAXPACKET = 0xffff ++ IP_MAX_MEMBERSHIPS = 0x14 ++ IP_MF = 0x2000 ++ IP_MINFRAGSIZE = 0x45 ++ IP_MINTTL = 0x18 ++ IP_MSS = 0x240 ++ IP_MULTICAST_IF = 0x9 ++ IP_MULTICAST_LOOP = 0xb ++ IP_MULTICAST_TTL = 0xa ++ IP_OFFMASK = 0x1fff ++ IP_OPTIONS = 0x1 ++ IP_PORTRANGE = 0x13 ++ IP_PORTRANGE_DEFAULT = 0x0 ++ IP_PORTRANGE_HIGH = 0x1 ++ IP_PORTRANGE_LOW = 0x2 ++ IP_RECVDSTADDR = 0x7 ++ IP_RECVIF = 0x14 ++ IP_RECVOPTS = 0x5 ++ IP_RECVRETOPTS = 0x6 ++ IP_RECVTTL = 0x17 ++ IP_RETOPTS = 0x8 ++ IP_RF = 0x8000 ++ IP_TOS = 0x3 ++ IP_TTL = 0x4 ++ ISIG = 0x80 ++ ISTRIP = 0x20 ++ IXANY = 0x800 ++ IXOFF = 0x400 ++ IXON = 0x200 ++ LOCK_EX = 0x2 ++ LOCK_NB = 0x4 ++ LOCK_SH = 0x1 ++ LOCK_UN = 0x8 ++ MADV_DONTNEED = 0x4 ++ MADV_FREE = 0x6 ++ MADV_NORMAL = 0x0 ++ MADV_RANDOM = 0x1 ++ MADV_SEQUENTIAL = 0x2 ++ MADV_SPACEAVAIL = 0x5 ++ MADV_WILLNEED = 0x3 ++ MAP_ALIGNMENT_16MB = 0x18000000 ++ MAP_ALIGNMENT_1TB = 0x28000000 ++ MAP_ALIGNMENT_256TB = 0x30000000 ++ MAP_ALIGNMENT_4GB = 0x20000000 ++ MAP_ALIGNMENT_64KB = 0x10000000 ++ MAP_ALIGNMENT_64PB = 0x38000000 ++ MAP_ALIGNMENT_MASK = -0x1000000 ++ MAP_ALIGNMENT_SHIFT = 0x18 ++ MAP_ANON = 0x1000 ++ MAP_FILE = 0x0 ++ MAP_FIXED = 0x10 ++ MAP_HASSEMAPHORE = 0x200 ++ MAP_INHERIT = 0x80 ++ MAP_INHERIT_COPY = 0x1 ++ MAP_INHERIT_DEFAULT = 0x1 ++ MAP_INHERIT_DONATE_COPY = 0x3 ++ MAP_INHERIT_NONE = 0x2 ++ MAP_INHERIT_SHARE = 0x0 ++ MAP_NORESERVE = 0x40 ++ MAP_PRIVATE = 0x2 ++ MAP_RENAME = 0x20 ++ MAP_SHARED = 0x1 ++ MAP_STACK = 0x2000 ++ MAP_TRYFIXED = 0x400 ++ MAP_WIRED = 0x800 ++ MSG_BCAST = 0x100 ++ MSG_CMSG_CLOEXEC = 0x800 ++ MSG_CONTROLMBUF = 0x2000000 ++ MSG_CTRUNC = 0x20 ++ MSG_DONTROUTE = 0x4 ++ MSG_DONTWAIT = 0x80 ++ MSG_EOR = 0x8 ++ MSG_IOVUSRSPACE = 0x4000000 ++ MSG_LENUSRSPACE = 0x8000000 ++ MSG_MCAST = 0x200 ++ MSG_NAMEMBUF = 0x1000000 ++ MSG_NBIO = 0x1000 ++ MSG_NOSIGNAL = 0x400 ++ MSG_OOB = 0x1 ++ MSG_PEEK = 0x2 ++ MSG_TRUNC = 0x10 ++ MSG_USERFLAGS = 0xffffff ++ MSG_WAITALL = 0x40 ++ NAME_MAX = 0x1ff ++ NET_RT_DUMP = 0x1 ++ NET_RT_FLAGS = 0x2 ++ NET_RT_IFLIST = 0x5 ++ NET_RT_MAXID = 0x6 ++ NET_RT_OIFLIST = 0x4 ++ NET_RT_OOIFLIST = 0x3 ++ NOFLSH = 0x80000000 ++ NOTE_ATTRIB = 0x8 ++ NOTE_CHILD = 0x4 ++ NOTE_DELETE = 0x1 ++ NOTE_EXEC = 0x20000000 ++ NOTE_EXIT = 0x80000000 ++ NOTE_EXTEND = 0x4 ++ NOTE_FORK = 0x40000000 ++ NOTE_LINK = 0x10 ++ NOTE_LOWAT = 0x1 ++ NOTE_PCTRLMASK = 0xf0000000 ++ NOTE_PDATAMASK = 0xfffff ++ NOTE_RENAME = 0x20 ++ NOTE_REVOKE = 0x40 ++ NOTE_TRACK = 0x1 ++ NOTE_TRACKERR = 0x2 ++ NOTE_WRITE = 0x2 ++ OCRNL = 0x10 ++ OFIOGETBMAP = 0xc004667a ++ ONLCR = 0x2 ++ ONLRET = 0x40 ++ ONOCR = 0x20 ++ ONOEOT = 0x8 ++ OPOST = 0x1 ++ O_ACCMODE = 0x3 ++ O_ALT_IO = 0x40000 ++ O_APPEND = 0x8 ++ O_ASYNC = 0x40 ++ O_CLOEXEC = 0x400000 ++ O_CREAT = 0x200 ++ O_DIRECT = 0x80000 ++ O_DIRECTORY = 0x200000 ++ O_DSYNC = 0x10000 ++ O_EXCL = 0x800 ++ O_EXLOCK = 0x20 ++ O_FSYNC = 0x80 ++ O_NDELAY = 0x4 ++ O_NOCTTY = 0x8000 ++ O_NOFOLLOW = 0x100 ++ O_NONBLOCK = 0x4 ++ O_NOSIGPIPE = 0x1000000 ++ O_RDONLY = 0x0 ++ O_RDWR = 0x2 ++ O_RSYNC = 0x20000 ++ O_SHLOCK = 0x10 ++ O_SYNC = 0x80 ++ O_TRUNC = 0x400 ++ O_WRONLY = 0x1 ++ PARENB = 0x1000 ++ PARMRK = 0x8 ++ PARODD = 0x2000 ++ PENDIN = 0x20000000 ++ PROT_EXEC = 0x4 ++ PROT_NONE = 0x0 ++ PROT_READ = 0x1 ++ PROT_WRITE = 0x2 ++ PRI_IOFLUSH = 0x7c ++ PRIO_PGRP = 0x1 ++ PRIO_PROCESS = 0x0 ++ PRIO_USER = 0x2 ++ RLIMIT_AS = 0xa ++ RLIMIT_CORE = 0x4 ++ RLIMIT_CPU = 0x0 ++ RLIMIT_DATA = 0x2 ++ RLIMIT_FSIZE = 0x1 ++ RLIMIT_NOFILE = 0x8 ++ RLIMIT_STACK = 0x3 ++ RLIM_INFINITY = 0x7fffffffffffffff ++ RTAX_AUTHOR = 0x6 ++ RTAX_BRD = 0x7 ++ RTAX_DST = 0x0 ++ RTAX_GATEWAY = 0x1 ++ RTAX_GENMASK = 0x3 ++ RTAX_IFA = 0x5 ++ RTAX_IFP = 0x4 ++ RTAX_MAX = 0x9 ++ RTAX_NETMASK = 0x2 ++ RTAX_TAG = 0x8 ++ RTA_AUTHOR = 0x40 ++ RTA_BRD = 0x80 ++ RTA_DST = 0x1 ++ RTA_GATEWAY = 0x2 ++ RTA_GENMASK = 0x8 ++ RTA_IFA = 0x20 ++ RTA_IFP = 0x10 ++ RTA_NETMASK = 0x4 ++ RTA_TAG = 0x100 ++ RTF_ANNOUNCE = 0x20000 ++ RTF_BLACKHOLE = 0x1000 ++ RTF_CLONED = 0x2000 ++ RTF_CLONING = 0x100 ++ RTF_DONE = 0x40 ++ RTF_DYNAMIC = 0x10 ++ RTF_GATEWAY = 0x2 ++ RTF_HOST = 0x4 ++ RTF_LLINFO = 0x400 ++ RTF_MASK = 0x80 ++ RTF_MODIFIED = 0x20 ++ RTF_PROTO1 = 0x8000 ++ RTF_PROTO2 = 0x4000 ++ RTF_REJECT = 0x8 ++ RTF_SRC = 0x10000 ++ RTF_STATIC = 0x800 ++ RTF_UP = 0x1 ++ RTF_XRESOLVE = 0x200 ++ RTM_ADD = 0x1 ++ RTM_CHANGE = 0x3 ++ RTM_CHGADDR = 0x15 ++ RTM_DELADDR = 0xd ++ RTM_DELETE = 0x2 ++ RTM_GET = 0x4 ++ RTM_IEEE80211 = 0x11 ++ RTM_IFANNOUNCE = 0x10 ++ RTM_IFINFO = 0x14 ++ RTM_LLINFO_UPD = 0x13 ++ RTM_LOCK = 0x8 ++ RTM_LOSING = 0x5 ++ RTM_MISS = 0x7 ++ RTM_NEWADDR = 0xc ++ RTM_OIFINFO = 0xf ++ RTM_OLDADD = 0x9 ++ RTM_OLDDEL = 0xa ++ RTM_OOIFINFO = 0xe ++ RTM_REDIRECT = 0x6 ++ RTM_RESOLVE = 0xb ++ RTM_RTTUNIT = 0xf4240 ++ RTM_SETGATE = 0x12 ++ RTM_VERSION = 0x4 ++ RTV_EXPIRE = 0x4 ++ RTV_HOPCOUNT = 0x2 ++ RTV_MTU = 0x1 ++ RTV_RPIPE = 0x8 ++ RTV_RTT = 0x40 ++ RTV_RTTVAR = 0x80 ++ RTV_SPIPE = 0x10 ++ RTV_SSTHRESH = 0x20 ++ RUSAGE_CHILDREN = -0x1 ++ RUSAGE_SELF = 0x0 ++ SCM_CREDS = 0x4 ++ SCM_RIGHTS = 0x1 ++ SCM_TIMESTAMP = 0x8 ++ SHUT_RD = 0x0 ++ SHUT_RDWR = 0x2 ++ SHUT_WR = 0x1 ++ SIOCADDMULTI = 0x80906931 ++ SIOCADDRT = 0x8030720a ++ SIOCAIFADDR = 0x8040691a ++ SIOCALIFADDR = 0x8118691c ++ SIOCATMARK = 0x40047307 ++ SIOCDELMULTI = 0x80906932 ++ SIOCDELRT = 0x8030720b ++ SIOCDIFADDR = 0x80906919 ++ SIOCDIFPHYADDR = 0x80906949 ++ SIOCDLIFADDR = 0x8118691e ++ SIOCGDRVSPEC = 0xc01c697b ++ SIOCGETPFSYNC = 0xc09069f8 ++ SIOCGETSGCNT = 0xc0147534 ++ SIOCGETVIFCNT = 0xc0147533 ++ SIOCGHIWAT = 0x40047301 ++ SIOCGIFADDR = 0xc0906921 ++ SIOCGIFADDRPREF = 0xc0946920 ++ SIOCGIFALIAS = 0xc040691b ++ SIOCGIFBRDADDR = 0xc0906923 ++ SIOCGIFCAP = 0xc0206976 ++ SIOCGIFCONF = 0xc0086926 ++ SIOCGIFDATA = 0xc0946985 ++ SIOCGIFDLT = 0xc0906977 ++ SIOCGIFDSTADDR = 0xc0906922 ++ SIOCGIFFLAGS = 0xc0906911 ++ SIOCGIFGENERIC = 0xc090693a ++ SIOCGIFMEDIA = 0xc0286936 ++ SIOCGIFMETRIC = 0xc0906917 ++ SIOCGIFMTU = 0xc090697e ++ SIOCGIFNETMASK = 0xc0906925 ++ SIOCGIFPDSTADDR = 0xc0906948 ++ SIOCGIFPSRCADDR = 0xc0906947 ++ SIOCGLIFADDR = 0xc118691d ++ SIOCGLIFPHYADDR = 0xc118694b ++ SIOCGLINKSTR = 0xc01c6987 ++ SIOCGLOWAT = 0x40047303 ++ SIOCGPGRP = 0x40047309 ++ SIOCGVH = 0xc0906983 ++ SIOCIFCREATE = 0x8090697a ++ SIOCIFDESTROY = 0x80906979 ++ SIOCIFGCLONERS = 0xc00c6978 ++ SIOCINITIFADDR = 0xc0446984 ++ SIOCSDRVSPEC = 0x801c697b ++ SIOCSETPFSYNC = 0x809069f7 ++ SIOCSHIWAT = 0x80047300 ++ SIOCSIFADDR = 0x8090690c ++ SIOCSIFADDRPREF = 0x8094691f ++ SIOCSIFBRDADDR = 0x80906913 ++ SIOCSIFCAP = 0x80206975 ++ SIOCSIFDSTADDR = 0x8090690e ++ SIOCSIFFLAGS = 0x80906910 ++ SIOCSIFGENERIC = 0x80906939 ++ SIOCSIFMEDIA = 0xc0906935 ++ SIOCSIFMETRIC = 0x80906918 ++ SIOCSIFMTU = 0x8090697f ++ SIOCSIFNETMASK = 0x80906916 ++ SIOCSIFPHYADDR = 0x80406946 ++ SIOCSLIFPHYADDR = 0x8118694a ++ SIOCSLINKSTR = 0x801c6988 ++ SIOCSLOWAT = 0x80047302 ++ SIOCSPGRP = 0x80047308 ++ SIOCSVH = 0xc0906982 ++ SIOCZIFDATA = 0xc0946986 ++ SOCK_CLOEXEC = 0x10000000 ++ SOCK_DGRAM = 0x2 ++ SOCK_FLAGS_MASK = 0xf0000000 ++ SOCK_NONBLOCK = 0x20000000 ++ SOCK_NOSIGPIPE = 0x40000000 ++ SOCK_RAW = 0x3 ++ SOCK_RDM = 0x4 ++ SOCK_SEQPACKET = 0x5 ++ SOCK_STREAM = 0x1 ++ SOL_SOCKET = 0xffff ++ SOMAXCONN = 0x80 ++ SO_ACCEPTCONN = 0x2 ++ SO_ACCEPTFILTER = 0x1000 ++ SO_BROADCAST = 0x20 ++ SO_DEBUG = 0x1 ++ SO_DONTROUTE = 0x10 ++ SO_ERROR = 0x1007 ++ SO_KEEPALIVE = 0x8 ++ SO_LINGER = 0x80 ++ SO_NOHEADER = 0x100a ++ SO_NOSIGPIPE = 0x800 ++ SO_OOBINLINE = 0x100 ++ SO_OVERFLOWED = 0x1009 ++ SO_RCVBUF = 0x1002 ++ SO_RCVLOWAT = 0x1004 ++ SO_RCVTIMEO = 0x100c ++ SO_REUSEADDR = 0x4 ++ SO_REUSEPORT = 0x200 ++ SO_SNDBUF = 0x1001 ++ SO_SNDLOWAT = 0x1003 ++ SO_SNDTIMEO = 0x100b ++ SO_TIMESTAMP = 0x2000 ++ SO_TYPE = 0x1008 ++ SO_USELOOPBACK = 0x40 ++ SYSCTL_VERSION = 0x1000000 ++ SYSCTL_VERS_0 = 0x0 ++ SYSCTL_VERS_1 = 0x1000000 ++ SYSCTL_VERS_MASK = 0xff000000 ++ S_ARCH1 = 0x10000 ++ S_ARCH2 = 0x20000 ++ S_BLKSIZE = 0x200 ++ S_IEXEC = 0x40 ++ S_IFBLK = 0x6000 ++ S_IFCHR = 0x2000 ++ S_IFDIR = 0x4000 ++ S_IFIFO = 0x1000 ++ S_IFLNK = 0xa000 ++ S_IFMT = 0xf000 ++ S_IFREG = 0x8000 ++ S_IFSOCK = 0xc000 ++ S_IFWHT = 0xe000 ++ S_IREAD = 0x100 ++ S_IRGRP = 0x20 ++ S_IROTH = 0x4 ++ S_IRUSR = 0x100 ++ S_IRWXG = 0x38 ++ S_IRWXO = 0x7 ++ S_IRWXU = 0x1c0 ++ S_ISGID = 0x400 ++ S_ISTXT = 0x200 ++ S_ISUID = 0x800 ++ S_ISVTX = 0x200 ++ S_IWGRP = 0x10 ++ S_IWOTH = 0x2 ++ S_IWRITE = 0x80 ++ S_IWUSR = 0x80 ++ S_IXGRP = 0x8 ++ S_IXOTH = 0x1 ++ S_IXUSR = 0x40 ++ TCIFLUSH = 0x1 ++ TCIOFLUSH = 0x3 ++ TCOFLUSH = 0x2 ++ TCP_CONGCTL = 0x20 ++ TCP_KEEPCNT = 0x6 ++ TCP_KEEPIDLE = 0x3 ++ TCP_KEEPINIT = 0x7 ++ TCP_KEEPINTVL = 0x5 ++ TCP_MAXBURST = 0x4 ++ TCP_MAXSEG = 0x2 ++ TCP_MAXWIN = 0xffff ++ TCP_MAX_WINSHIFT = 0xe ++ TCP_MD5SIG = 0x10 ++ TCP_MINMSS = 0xd8 ++ TCP_MSS = 0x218 ++ TCP_NODELAY = 0x1 ++ TCSAFLUSH = 0x2 ++ TIOCCBRK = 0x2000747a ++ TIOCCDTR = 0x20007478 ++ TIOCCONS = 0x80047462 ++ TIOCDCDTIMESTAMP = 0x400c7458 ++ TIOCDRAIN = 0x2000745e ++ TIOCEXCL = 0x2000740d ++ TIOCEXT = 0x80047460 ++ TIOCFLAG_CDTRCTS = 0x10 ++ TIOCFLAG_CLOCAL = 0x2 ++ TIOCFLAG_CRTSCTS = 0x4 ++ TIOCFLAG_MDMBUF = 0x8 ++ TIOCFLAG_SOFTCAR = 0x1 ++ TIOCFLUSH = 0x80047410 ++ TIOCGETA = 0x402c7413 ++ TIOCGETD = 0x4004741a ++ TIOCGFLAGS = 0x4004745d ++ TIOCGLINED = 0x40207442 ++ TIOCGPGRP = 0x40047477 ++ TIOCGQSIZE = 0x40047481 ++ TIOCGRANTPT = 0x20007447 ++ TIOCGSID = 0x40047463 ++ TIOCGSIZE = 0x40087468 ++ TIOCGWINSZ = 0x40087468 ++ TIOCMBIC = 0x8004746b ++ TIOCMBIS = 0x8004746c ++ TIOCMGET = 0x4004746a ++ TIOCMSET = 0x8004746d ++ TIOCM_CAR = 0x40 ++ TIOCM_CD = 0x40 ++ TIOCM_CTS = 0x20 ++ TIOCM_DSR = 0x100 ++ TIOCM_DTR = 0x2 ++ TIOCM_LE = 0x1 ++ TIOCM_RI = 0x80 ++ TIOCM_RNG = 0x80 ++ TIOCM_RTS = 0x4 ++ TIOCM_SR = 0x10 ++ TIOCM_ST = 0x8 ++ TIOCNOTTY = 0x20007471 ++ TIOCNXCL = 0x2000740e ++ TIOCOUTQ = 0x40047473 ++ TIOCPKT = 0x80047470 ++ TIOCPKT_DATA = 0x0 ++ TIOCPKT_DOSTOP = 0x20 ++ TIOCPKT_FLUSHREAD = 0x1 ++ TIOCPKT_FLUSHWRITE = 0x2 ++ TIOCPKT_IOCTL = 0x40 ++ TIOCPKT_NOSTOP = 0x10 ++ TIOCPKT_START = 0x8 ++ TIOCPKT_STOP = 0x4 ++ TIOCPTMGET = 0x48087446 ++ TIOCPTSNAME = 0x48087448 ++ TIOCRCVFRAME = 0x80047445 ++ TIOCREMOTE = 0x80047469 ++ TIOCSBRK = 0x2000747b ++ TIOCSCTTY = 0x20007461 ++ TIOCSDTR = 0x20007479 ++ TIOCSETA = 0x802c7414 ++ TIOCSETAF = 0x802c7416 ++ TIOCSETAW = 0x802c7415 ++ TIOCSETD = 0x8004741b ++ TIOCSFLAGS = 0x8004745c ++ TIOCSIG = 0x2000745f ++ TIOCSLINED = 0x80207443 ++ TIOCSPGRP = 0x80047476 ++ TIOCSQSIZE = 0x80047480 ++ TIOCSSIZE = 0x80087467 ++ TIOCSTART = 0x2000746e ++ TIOCSTAT = 0x80047465 ++ TIOCSTI = 0x80017472 ++ TIOCSTOP = 0x2000746f ++ TIOCSWINSZ = 0x80087467 ++ TIOCUCNTL = 0x80047466 ++ TIOCXMTFRAME = 0x80047444 ++ TOSTOP = 0x400000 ++ VDISCARD = 0xf ++ VDSUSP = 0xb ++ VEOF = 0x0 ++ VEOL = 0x1 ++ VEOL2 = 0x2 ++ VERASE = 0x3 ++ VINTR = 0x8 ++ VKILL = 0x5 ++ VLNEXT = 0xe ++ VMIN = 0x10 ++ VQUIT = 0x9 ++ VREPRINT = 0x6 ++ VSTART = 0xc ++ VSTATUS = 0x12 ++ VSTOP = 0xd ++ VSUSP = 0xa ++ VTIME = 0x11 ++ VWERASE = 0x4 ++ WALL = 0x8 ++ WALLSIG = 0x8 ++ WALTSIG = 0x4 ++ WCLONE = 0x4 ++ WCOREFLAG = 0x80 ++ WNOHANG = 0x1 ++ WNOWAIT = 0x10000 ++ WNOZOMBIE = 0x20000 ++ WOPTSCHECKED = 0x40000 ++ WSTOPPED = 0x7f ++ WUNTRACED = 0x2 ++) ++ ++// Errors ++const ( ++ E2BIG = syscall.Errno(0x7) ++ EACCES = syscall.Errno(0xd) ++ EADDRINUSE = syscall.Errno(0x30) ++ EADDRNOTAVAIL = syscall.Errno(0x31) ++ EAFNOSUPPORT = syscall.Errno(0x2f) ++ EAGAIN = syscall.Errno(0x23) ++ EALREADY = syscall.Errno(0x25) ++ EAUTH = syscall.Errno(0x50) ++ EBADF = syscall.Errno(0x9) ++ EBADMSG = syscall.Errno(0x58) ++ EBADRPC = syscall.Errno(0x48) ++ EBUSY = syscall.Errno(0x10) ++ ECANCELED = syscall.Errno(0x57) ++ ECHILD = syscall.Errno(0xa) ++ ECONNABORTED = syscall.Errno(0x35) ++ ECONNREFUSED = syscall.Errno(0x3d) ++ ECONNRESET = syscall.Errno(0x36) ++ EDEADLK = syscall.Errno(0xb) ++ EDESTADDRREQ = syscall.Errno(0x27) ++ EDOM = syscall.Errno(0x21) ++ EDQUOT = syscall.Errno(0x45) ++ EEXIST = syscall.Errno(0x11) ++ EFAULT = syscall.Errno(0xe) ++ EFBIG = syscall.Errno(0x1b) ++ EFTYPE = syscall.Errno(0x4f) ++ EHOSTDOWN = syscall.Errno(0x40) ++ EHOSTUNREACH = syscall.Errno(0x41) ++ EIDRM = syscall.Errno(0x52) ++ EILSEQ = syscall.Errno(0x55) ++ EINPROGRESS = syscall.Errno(0x24) ++ EINTR = syscall.Errno(0x4) ++ EINVAL = syscall.Errno(0x16) ++ EIO = syscall.Errno(0x5) ++ EISCONN = syscall.Errno(0x38) ++ EISDIR = syscall.Errno(0x15) ++ ELAST = syscall.Errno(0x60) ++ ELOOP = syscall.Errno(0x3e) ++ EMFILE = syscall.Errno(0x18) ++ EMLINK = syscall.Errno(0x1f) ++ EMSGSIZE = syscall.Errno(0x28) ++ EMULTIHOP = syscall.Errno(0x5e) ++ ENAMETOOLONG = syscall.Errno(0x3f) ++ ENEEDAUTH = syscall.Errno(0x51) ++ ENETDOWN = syscall.Errno(0x32) ++ ENETRESET = syscall.Errno(0x34) ++ ENETUNREACH = syscall.Errno(0x33) ++ ENFILE = syscall.Errno(0x17) ++ ENOATTR = syscall.Errno(0x5d) ++ ENOBUFS = syscall.Errno(0x37) ++ ENODATA = syscall.Errno(0x59) ++ ENODEV = syscall.Errno(0x13) ++ ENOENT = syscall.Errno(0x2) ++ ENOEXEC = syscall.Errno(0x8) ++ ENOLCK = syscall.Errno(0x4d) ++ ENOLINK = syscall.Errno(0x5f) ++ ENOMEM = syscall.Errno(0xc) ++ ENOMSG = syscall.Errno(0x53) ++ ENOPROTOOPT = syscall.Errno(0x2a) ++ ENOSPC = syscall.Errno(0x1c) ++ ENOSR = syscall.Errno(0x5a) ++ ENOSTR = syscall.Errno(0x5b) ++ ENOSYS = syscall.Errno(0x4e) ++ ENOTBLK = syscall.Errno(0xf) ++ ENOTCONN = syscall.Errno(0x39) ++ ENOTDIR = syscall.Errno(0x14) ++ ENOTEMPTY = syscall.Errno(0x42) ++ ENOTSOCK = syscall.Errno(0x26) ++ ENOTSUP = syscall.Errno(0x56) ++ ENOTTY = syscall.Errno(0x19) ++ ENXIO = syscall.Errno(0x6) ++ EOPNOTSUPP = syscall.Errno(0x2d) ++ EOVERFLOW = syscall.Errno(0x54) ++ EPERM = syscall.Errno(0x1) ++ EPFNOSUPPORT = syscall.Errno(0x2e) ++ EPIPE = syscall.Errno(0x20) ++ EPROCLIM = syscall.Errno(0x43) ++ EPROCUNAVAIL = syscall.Errno(0x4c) ++ EPROGMISMATCH = syscall.Errno(0x4b) ++ EPROGUNAVAIL = syscall.Errno(0x4a) ++ EPROTO = syscall.Errno(0x60) ++ EPROTONOSUPPORT = syscall.Errno(0x2b) ++ EPROTOTYPE = syscall.Errno(0x29) ++ ERANGE = syscall.Errno(0x22) ++ EREMOTE = syscall.Errno(0x47) ++ EROFS = syscall.Errno(0x1e) ++ ERPCMISMATCH = syscall.Errno(0x49) ++ ESHUTDOWN = syscall.Errno(0x3a) ++ ESOCKTNOSUPPORT = syscall.Errno(0x2c) ++ ESPIPE = syscall.Errno(0x1d) ++ ESRCH = syscall.Errno(0x3) ++ ESTALE = syscall.Errno(0x46) ++ ETIME = syscall.Errno(0x5c) ++ ETIMEDOUT = syscall.Errno(0x3c) ++ ETOOMANYREFS = syscall.Errno(0x3b) ++ ETXTBSY = syscall.Errno(0x1a) ++ EUSERS = syscall.Errno(0x44) ++ EWOULDBLOCK = syscall.Errno(0x23) ++ EXDEV = syscall.Errno(0x12) ++) ++ ++// Signals ++const ( ++ SIGABRT = syscall.Signal(0x6) ++ SIGALRM = syscall.Signal(0xe) ++ SIGBUS = syscall.Signal(0xa) ++ SIGCHLD = syscall.Signal(0x14) ++ SIGCONT = syscall.Signal(0x13) ++ SIGEMT = syscall.Signal(0x7) ++ SIGFPE = syscall.Signal(0x8) ++ SIGHUP = syscall.Signal(0x1) ++ SIGILL = syscall.Signal(0x4) ++ SIGINFO = syscall.Signal(0x1d) ++ SIGINT = syscall.Signal(0x2) ++ SIGIO = syscall.Signal(0x17) ++ SIGIOT = syscall.Signal(0x6) ++ SIGKILL = syscall.Signal(0x9) ++ SIGPIPE = syscall.Signal(0xd) ++ SIGPROF = syscall.Signal(0x1b) ++ SIGPWR = syscall.Signal(0x20) ++ SIGQUIT = syscall.Signal(0x3) ++ SIGSEGV = syscall.Signal(0xb) ++ SIGSTOP = syscall.Signal(0x11) ++ SIGSYS = syscall.Signal(0xc) ++ SIGTERM = syscall.Signal(0xf) ++ SIGTRAP = syscall.Signal(0x5) ++ SIGTSTP = syscall.Signal(0x12) ++ SIGTTIN = syscall.Signal(0x15) ++ SIGTTOU = syscall.Signal(0x16) ++ SIGURG = syscall.Signal(0x10) ++ SIGUSR1 = syscall.Signal(0x1e) ++ SIGUSR2 = syscall.Signal(0x1f) ++ SIGVTALRM = syscall.Signal(0x1a) ++ SIGWINCH = syscall.Signal(0x1c) ++ SIGXCPU = syscall.Signal(0x18) ++ SIGXFSZ = syscall.Signal(0x19) ++) ++ ++// Error table ++var errors = [...]string{ ++ 1: "operation not permitted", ++ 2: "no such file or directory", ++ 3: "no such process", ++ 4: "interrupted system call", ++ 5: "input/output error", ++ 6: "device not configured", ++ 7: "argument list too long", ++ 8: "exec format error", ++ 9: "bad file descriptor", ++ 10: "no child processes", ++ 11: "resource deadlock avoided", ++ 12: "cannot allocate memory", ++ 13: "permission denied", ++ 14: "bad address", ++ 15: "block device required", ++ 16: "device busy", ++ 17: "file exists", ++ 18: "cross-device link", ++ 19: "operation not supported by device", ++ 20: "not a directory", ++ 21: "is a directory", ++ 22: "invalid argument", ++ 23: "too many open files in system", ++ 24: "too many open files", ++ 25: "inappropriate ioctl for device", ++ 26: "text file busy", ++ 27: "file too large", ++ 28: "no space left on device", ++ 29: "illegal seek", ++ 30: "read-only file system", ++ 31: "too many links", ++ 32: "broken pipe", ++ 33: "numerical argument out of domain", ++ 34: "result too large or too small", ++ 35: "resource temporarily unavailable", ++ 36: "operation now in progress", ++ 37: "operation already in progress", ++ 38: "socket operation on non-socket", ++ 39: "destination address required", ++ 40: "message too long", ++ 41: "protocol wrong type for socket", ++ 42: "protocol option not available", ++ 43: "protocol not supported", ++ 44: "socket type not supported", ++ 45: "operation not supported", ++ 46: "protocol family not supported", ++ 47: "address family not supported by protocol family", ++ 48: "address already in use", ++ 49: "can't assign requested address", ++ 50: "network is down", ++ 51: "network is unreachable", ++ 52: "network dropped connection on reset", ++ 53: "software caused connection abort", ++ 54: "connection reset by peer", ++ 55: "no buffer space available", ++ 56: "socket is already connected", ++ 57: "socket is not connected", ++ 58: "can't send after socket shutdown", ++ 59: "too many references: can't splice", ++ 60: "connection timed out", ++ 61: "connection refused", ++ 62: "too many levels of symbolic links", ++ 63: "file name too long", ++ 64: "host is down", ++ 65: "no route to host", ++ 66: "directory not empty", ++ 67: "too many processes", ++ 68: "too many users", ++ 69: "disc quota exceeded", ++ 70: "stale NFS file handle", ++ 71: "too many levels of remote in path", ++ 72: "RPC struct is bad", ++ 73: "RPC version wrong", ++ 74: "RPC prog. not avail", ++ 75: "program version wrong", ++ 76: "bad procedure for program", ++ 77: "no locks available", ++ 78: "function not implemented", ++ 79: "inappropriate file type or format", ++ 80: "authentication error", ++ 81: "need authenticator", ++ 82: "identifier removed", ++ 83: "no message of desired type", ++ 84: "value too large to be stored in data type", ++ 85: "illegal byte sequence", ++ 86: "not supported", ++ 87: "operation Canceled", ++ 88: "bad or Corrupt message", ++ 89: "no message available", ++ 90: "no STREAM resources", ++ 91: "not a STREAM", ++ 92: "STREAM ioctl timeout", ++ 93: "attribute not found", ++ 94: "multihop attempted", ++ 95: "link has been severed", ++ 96: "protocol error", ++} ++ ++// Signal table ++var signals = [...]string{ ++ 1: "hangup", ++ 2: "interrupt", ++ 3: "quit", ++ 4: "illegal instruction", ++ 5: "trace/BPT trap", ++ 6: "abort trap", ++ 7: "EMT trap", ++ 8: "floating point exception", ++ 9: "killed", ++ 10: "bus error", ++ 11: "segmentation fault", ++ 12: "bad system call", ++ 13: "broken pipe", ++ 14: "alarm clock", ++ 15: "terminated", ++ 16: "urgent I/O condition", ++ 17: "stopped (signal)", ++ 18: "stopped", ++ 19: "continued", ++ 20: "child exited", ++ 21: "stopped (tty input)", ++ 22: "stopped (tty output)", ++ 23: "I/O possible", ++ 24: "cputime limit exceeded", ++ 25: "filesize limit exceeded", ++ 26: "virtual timer expired", ++ 27: "profiling timer expired", ++ 28: "window size changes", ++ 29: "information request", ++ 30: "user defined signal 1", ++ 31: "user defined signal 2", ++ 32: "power fail/restart", ++} +diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go +new file mode 100644 +index 0000000..3322e99 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go +@@ -0,0 +1,1584 @@ ++// mkerrors.sh -m32 ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build 386,openbsd ++ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- -m32 _const.go ++ ++package unix ++ ++import "syscall" ++ ++const ( ++ AF_APPLETALK = 0x10 ++ AF_BLUETOOTH = 0x20 ++ AF_CCITT = 0xa ++ AF_CHAOS = 0x5 ++ AF_CNT = 0x15 ++ AF_COIP = 0x14 ++ AF_DATAKIT = 0x9 ++ AF_DECnet = 0xc ++ AF_DLI = 0xd ++ AF_E164 = 0x1a ++ AF_ECMA = 0x8 ++ AF_ENCAP = 0x1c ++ AF_HYLINK = 0xf ++ AF_IMPLINK = 0x3 ++ AF_INET = 0x2 ++ AF_INET6 = 0x18 ++ AF_IPX = 0x17 ++ AF_ISDN = 0x1a ++ AF_ISO = 0x7 ++ AF_KEY = 0x1e ++ AF_LAT = 0xe ++ AF_LINK = 0x12 ++ AF_LOCAL = 0x1 ++ AF_MAX = 0x24 ++ AF_MPLS = 0x21 ++ AF_NATM = 0x1b ++ AF_NS = 0x6 ++ AF_OSI = 0x7 ++ AF_PUP = 0x4 ++ AF_ROUTE = 0x11 ++ AF_SIP = 0x1d ++ AF_SNA = 0xb ++ AF_UNIX = 0x1 ++ AF_UNSPEC = 0x0 ++ ARPHRD_ETHER = 0x1 ++ ARPHRD_FRELAY = 0xf ++ ARPHRD_IEEE1394 = 0x18 ++ ARPHRD_IEEE802 = 0x6 ++ B0 = 0x0 ++ B110 = 0x6e ++ B115200 = 0x1c200 ++ B1200 = 0x4b0 ++ B134 = 0x86 ++ B14400 = 0x3840 ++ B150 = 0x96 ++ B1800 = 0x708 ++ B19200 = 0x4b00 ++ B200 = 0xc8 ++ B230400 = 0x38400 ++ B2400 = 0x960 ++ B28800 = 0x7080 ++ B300 = 0x12c ++ B38400 = 0x9600 ++ B4800 = 0x12c0 ++ B50 = 0x32 ++ B57600 = 0xe100 ++ B600 = 0x258 ++ B7200 = 0x1c20 ++ B75 = 0x4b ++ B76800 = 0x12c00 ++ B9600 = 0x2580 ++ BIOCFLUSH = 0x20004268 ++ BIOCGBLEN = 0x40044266 ++ BIOCGDIRFILT = 0x4004427c ++ BIOCGDLT = 0x4004426a ++ BIOCGDLTLIST = 0xc008427b ++ BIOCGETIF = 0x4020426b ++ BIOCGFILDROP = 0x40044278 ++ BIOCGHDRCMPLT = 0x40044274 ++ BIOCGRSIG = 0x40044273 ++ BIOCGRTIMEOUT = 0x400c426e ++ BIOCGSTATS = 0x4008426f ++ BIOCIMMEDIATE = 0x80044270 ++ BIOCLOCK = 0x20004276 ++ BIOCPROMISC = 0x20004269 ++ BIOCSBLEN = 0xc0044266 ++ BIOCSDIRFILT = 0x8004427d ++ BIOCSDLT = 0x8004427a ++ BIOCSETF = 0x80084267 ++ BIOCSETIF = 0x8020426c ++ BIOCSETWF = 0x80084277 ++ BIOCSFILDROP = 0x80044279 ++ BIOCSHDRCMPLT = 0x80044275 ++ BIOCSRSIG = 0x80044272 ++ BIOCSRTIMEOUT = 0x800c426d ++ BIOCVERSION = 0x40044271 ++ BPF_A = 0x10 ++ BPF_ABS = 0x20 ++ BPF_ADD = 0x0 ++ BPF_ALIGNMENT = 0x4 ++ BPF_ALU = 0x4 ++ BPF_AND = 0x50 ++ BPF_B = 0x10 ++ BPF_DIRECTION_IN = 0x1 ++ BPF_DIRECTION_OUT = 0x2 ++ BPF_DIV = 0x30 ++ BPF_H = 0x8 ++ BPF_IMM = 0x0 ++ BPF_IND = 0x40 ++ BPF_JA = 0x0 ++ BPF_JEQ = 0x10 ++ BPF_JGE = 0x30 ++ BPF_JGT = 0x20 ++ BPF_JMP = 0x5 ++ BPF_JSET = 0x40 ++ BPF_K = 0x0 ++ BPF_LD = 0x0 ++ BPF_LDX = 0x1 ++ BPF_LEN = 0x80 ++ BPF_LSH = 0x60 ++ BPF_MAJOR_VERSION = 0x1 ++ BPF_MAXBUFSIZE = 0x200000 ++ BPF_MAXINSNS = 0x200 ++ BPF_MEM = 0x60 ++ BPF_MEMWORDS = 0x10 ++ BPF_MINBUFSIZE = 0x20 ++ BPF_MINOR_VERSION = 0x1 ++ BPF_MISC = 0x7 ++ BPF_MSH = 0xa0 ++ BPF_MUL = 0x20 ++ BPF_NEG = 0x80 ++ BPF_OR = 0x40 ++ BPF_RELEASE = 0x30bb6 ++ BPF_RET = 0x6 ++ BPF_RSH = 0x70 ++ BPF_ST = 0x2 ++ BPF_STX = 0x3 ++ BPF_SUB = 0x10 ++ BPF_TAX = 0x0 ++ BPF_TXA = 0x80 ++ BPF_W = 0x0 ++ BPF_X = 0x8 ++ BRKINT = 0x2 ++ CFLUSH = 0xf ++ CLOCAL = 0x8000 ++ CREAD = 0x800 ++ CS5 = 0x0 ++ CS6 = 0x100 ++ CS7 = 0x200 ++ CS8 = 0x300 ++ CSIZE = 0x300 ++ CSTART = 0x11 ++ CSTATUS = 0xff ++ CSTOP = 0x13 ++ CSTOPB = 0x400 ++ CSUSP = 0x1a ++ CTL_MAXNAME = 0xc ++ CTL_NET = 0x4 ++ DIOCOSFPFLUSH = 0x2000444e ++ DLT_ARCNET = 0x7 ++ DLT_ATM_RFC1483 = 0xb ++ DLT_AX25 = 0x3 ++ DLT_CHAOS = 0x5 ++ DLT_C_HDLC = 0x68 ++ DLT_EN10MB = 0x1 ++ DLT_EN3MB = 0x2 ++ DLT_ENC = 0xd ++ DLT_FDDI = 0xa ++ DLT_IEEE802 = 0x6 ++ DLT_IEEE802_11 = 0x69 ++ DLT_IEEE802_11_RADIO = 0x7f ++ DLT_LOOP = 0xc ++ DLT_MPLS = 0xdb ++ DLT_NULL = 0x0 ++ DLT_PFLOG = 0x75 ++ DLT_PFSYNC = 0x12 ++ DLT_PPP = 0x9 ++ DLT_PPP_BSDOS = 0x10 ++ DLT_PPP_ETHER = 0x33 ++ DLT_PPP_SERIAL = 0x32 ++ DLT_PRONET = 0x4 ++ DLT_RAW = 0xe ++ DLT_SLIP = 0x8 ++ DLT_SLIP_BSDOS = 0xf ++ DT_BLK = 0x6 ++ DT_CHR = 0x2 ++ DT_DIR = 0x4 ++ DT_FIFO = 0x1 ++ DT_LNK = 0xa ++ DT_REG = 0x8 ++ DT_SOCK = 0xc ++ DT_UNKNOWN = 0x0 ++ ECHO = 0x8 ++ ECHOCTL = 0x40 ++ ECHOE = 0x2 ++ ECHOK = 0x4 ++ ECHOKE = 0x1 ++ ECHONL = 0x10 ++ ECHOPRT = 0x20 ++ EMT_TAGOVF = 0x1 ++ EMUL_ENABLED = 0x1 ++ EMUL_NATIVE = 0x2 ++ ENDRUNDISC = 0x9 ++ ETHERMIN = 0x2e ++ ETHERMTU = 0x5dc ++ ETHERTYPE_8023 = 0x4 ++ ETHERTYPE_AARP = 0x80f3 ++ ETHERTYPE_ACCTON = 0x8390 ++ ETHERTYPE_AEONIC = 0x8036 ++ ETHERTYPE_ALPHA = 0x814a ++ ETHERTYPE_AMBER = 0x6008 ++ ETHERTYPE_AMOEBA = 0x8145 ++ ETHERTYPE_AOE = 0x88a2 ++ ETHERTYPE_APOLLO = 0x80f7 ++ ETHERTYPE_APOLLODOMAIN = 0x8019 ++ ETHERTYPE_APPLETALK = 0x809b ++ ETHERTYPE_APPLITEK = 0x80c7 ++ ETHERTYPE_ARGONAUT = 0x803a ++ ETHERTYPE_ARP = 0x806 ++ ETHERTYPE_AT = 0x809b ++ ETHERTYPE_ATALK = 0x809b ++ ETHERTYPE_ATOMIC = 0x86df ++ ETHERTYPE_ATT = 0x8069 ++ ETHERTYPE_ATTSTANFORD = 0x8008 ++ ETHERTYPE_AUTOPHON = 0x806a ++ ETHERTYPE_AXIS = 0x8856 ++ ETHERTYPE_BCLOOP = 0x9003 ++ ETHERTYPE_BOFL = 0x8102 ++ ETHERTYPE_CABLETRON = 0x7034 ++ ETHERTYPE_CHAOS = 0x804 ++ ETHERTYPE_COMDESIGN = 0x806c ++ ETHERTYPE_COMPUGRAPHIC = 0x806d ++ ETHERTYPE_COUNTERPOINT = 0x8062 ++ ETHERTYPE_CRONUS = 0x8004 ++ ETHERTYPE_CRONUSVLN = 0x8003 ++ ETHERTYPE_DCA = 0x1234 ++ ETHERTYPE_DDE = 0x807b ++ ETHERTYPE_DEBNI = 0xaaaa ++ ETHERTYPE_DECAM = 0x8048 ++ ETHERTYPE_DECCUST = 0x6006 ++ ETHERTYPE_DECDIAG = 0x6005 ++ ETHERTYPE_DECDNS = 0x803c ++ ETHERTYPE_DECDTS = 0x803e ++ ETHERTYPE_DECEXPER = 0x6000 ++ ETHERTYPE_DECLAST = 0x8041 ++ ETHERTYPE_DECLTM = 0x803f ++ ETHERTYPE_DECMUMPS = 0x6009 ++ ETHERTYPE_DECNETBIOS = 0x8040 ++ ETHERTYPE_DELTACON = 0x86de ++ ETHERTYPE_DIDDLE = 0x4321 ++ ETHERTYPE_DLOG1 = 0x660 ++ ETHERTYPE_DLOG2 = 0x661 ++ ETHERTYPE_DN = 0x6003 ++ ETHERTYPE_DOGFIGHT = 0x1989 ++ ETHERTYPE_DSMD = 0x8039 ++ ETHERTYPE_ECMA = 0x803 ++ ETHERTYPE_ENCRYPT = 0x803d ++ ETHERTYPE_ES = 0x805d ++ ETHERTYPE_EXCELAN = 0x8010 ++ ETHERTYPE_EXPERDATA = 0x8049 ++ ETHERTYPE_FLIP = 0x8146 ++ ETHERTYPE_FLOWCONTROL = 0x8808 ++ ETHERTYPE_FRARP = 0x808 ++ ETHERTYPE_GENDYN = 0x8068 ++ ETHERTYPE_HAYES = 0x8130 ++ ETHERTYPE_HIPPI_FP = 0x8180 ++ ETHERTYPE_HITACHI = 0x8820 ++ ETHERTYPE_HP = 0x8005 ++ ETHERTYPE_IEEEPUP = 0xa00 ++ ETHERTYPE_IEEEPUPAT = 0xa01 ++ ETHERTYPE_IMLBL = 0x4c42 ++ ETHERTYPE_IMLBLDIAG = 0x424c ++ ETHERTYPE_IP = 0x800 ++ ETHERTYPE_IPAS = 0x876c ++ ETHERTYPE_IPV6 = 0x86dd ++ ETHERTYPE_IPX = 0x8137 ++ ETHERTYPE_IPXNEW = 0x8037 ++ ETHERTYPE_KALPANA = 0x8582 ++ ETHERTYPE_LANBRIDGE = 0x8038 ++ ETHERTYPE_LANPROBE = 0x8888 ++ ETHERTYPE_LAT = 0x6004 ++ ETHERTYPE_LBACK = 0x9000 ++ ETHERTYPE_LITTLE = 0x8060 ++ ETHERTYPE_LLDP = 0x88cc ++ ETHERTYPE_LOGICRAFT = 0x8148 ++ ETHERTYPE_LOOPBACK = 0x9000 ++ ETHERTYPE_MATRA = 0x807a ++ ETHERTYPE_MAX = 0xffff ++ ETHERTYPE_MERIT = 0x807c ++ ETHERTYPE_MICP = 0x873a ++ ETHERTYPE_MOPDL = 0x6001 ++ ETHERTYPE_MOPRC = 0x6002 ++ ETHERTYPE_MOTOROLA = 0x818d ++ ETHERTYPE_MPLS = 0x8847 ++ ETHERTYPE_MPLS_MCAST = 0x8848 ++ ETHERTYPE_MUMPS = 0x813f ++ ETHERTYPE_NBPCC = 0x3c04 ++ ETHERTYPE_NBPCLAIM = 0x3c09 ++ ETHERTYPE_NBPCLREQ = 0x3c05 ++ ETHERTYPE_NBPCLRSP = 0x3c06 ++ ETHERTYPE_NBPCREQ = 0x3c02 ++ ETHERTYPE_NBPCRSP = 0x3c03 ++ ETHERTYPE_NBPDG = 0x3c07 ++ ETHERTYPE_NBPDGB = 0x3c08 ++ ETHERTYPE_NBPDLTE = 0x3c0a ++ ETHERTYPE_NBPRAR = 0x3c0c ++ ETHERTYPE_NBPRAS = 0x3c0b ++ ETHERTYPE_NBPRST = 0x3c0d ++ ETHERTYPE_NBPSCD = 0x3c01 ++ ETHERTYPE_NBPVCD = 0x3c00 ++ ETHERTYPE_NBS = 0x802 ++ ETHERTYPE_NCD = 0x8149 ++ ETHERTYPE_NESTAR = 0x8006 ++ ETHERTYPE_NETBEUI = 0x8191 ++ ETHERTYPE_NOVELL = 0x8138 ++ ETHERTYPE_NS = 0x600 ++ ETHERTYPE_NSAT = 0x601 ++ ETHERTYPE_NSCOMPAT = 0x807 ++ ETHERTYPE_NTRAILER = 0x10 ++ ETHERTYPE_OS9 = 0x7007 ++ ETHERTYPE_OS9NET = 0x7009 ++ ETHERTYPE_PACER = 0x80c6 ++ ETHERTYPE_PAE = 0x888e ++ ETHERTYPE_PCS = 0x4242 ++ ETHERTYPE_PLANNING = 0x8044 ++ ETHERTYPE_PPP = 0x880b ++ ETHERTYPE_PPPOE = 0x8864 ++ ETHERTYPE_PPPOEDISC = 0x8863 ++ ETHERTYPE_PRIMENTS = 0x7031 ++ ETHERTYPE_PUP = 0x200 ++ ETHERTYPE_PUPAT = 0x200 ++ ETHERTYPE_QINQ = 0x88a8 ++ ETHERTYPE_RACAL = 0x7030 ++ ETHERTYPE_RATIONAL = 0x8150 ++ ETHERTYPE_RAWFR = 0x6559 ++ ETHERTYPE_RCL = 0x1995 ++ ETHERTYPE_RDP = 0x8739 ++ ETHERTYPE_RETIX = 0x80f2 ++ ETHERTYPE_REVARP = 0x8035 ++ ETHERTYPE_SCA = 0x6007 ++ ETHERTYPE_SECTRA = 0x86db ++ ETHERTYPE_SECUREDATA = 0x876d ++ ETHERTYPE_SGITW = 0x817e ++ ETHERTYPE_SG_BOUNCE = 0x8016 ++ ETHERTYPE_SG_DIAG = 0x8013 ++ ETHERTYPE_SG_NETGAMES = 0x8014 ++ ETHERTYPE_SG_RESV = 0x8015 ++ ETHERTYPE_SIMNET = 0x5208 ++ ETHERTYPE_SLOW = 0x8809 ++ ETHERTYPE_SNA = 0x80d5 ++ ETHERTYPE_SNMP = 0x814c ++ ETHERTYPE_SONIX = 0xfaf5 ++ ETHERTYPE_SPIDER = 0x809f ++ ETHERTYPE_SPRITE = 0x500 ++ ETHERTYPE_STP = 0x8181 ++ ETHERTYPE_TALARIS = 0x812b ++ ETHERTYPE_TALARISMC = 0x852b ++ ETHERTYPE_TCPCOMP = 0x876b ++ ETHERTYPE_TCPSM = 0x9002 ++ ETHERTYPE_TEC = 0x814f ++ ETHERTYPE_TIGAN = 0x802f ++ ETHERTYPE_TRAIL = 0x1000 ++ ETHERTYPE_TRANSETHER = 0x6558 ++ ETHERTYPE_TYMSHARE = 0x802e ++ ETHERTYPE_UBBST = 0x7005 ++ ETHERTYPE_UBDEBUG = 0x900 ++ ETHERTYPE_UBDIAGLOOP = 0x7002 ++ ETHERTYPE_UBDL = 0x7000 ++ ETHERTYPE_UBNIU = 0x7001 ++ ETHERTYPE_UBNMC = 0x7003 ++ ETHERTYPE_VALID = 0x1600 ++ ETHERTYPE_VARIAN = 0x80dd ++ ETHERTYPE_VAXELN = 0x803b ++ ETHERTYPE_VEECO = 0x8067 ++ ETHERTYPE_VEXP = 0x805b ++ ETHERTYPE_VGLAB = 0x8131 ++ ETHERTYPE_VINES = 0xbad ++ ETHERTYPE_VINESECHO = 0xbaf ++ ETHERTYPE_VINESLOOP = 0xbae ++ ETHERTYPE_VITAL = 0xff00 ++ ETHERTYPE_VLAN = 0x8100 ++ ETHERTYPE_VLTLMAN = 0x8080 ++ ETHERTYPE_VPROD = 0x805c ++ ETHERTYPE_VURESERVED = 0x8147 ++ ETHERTYPE_WATERLOO = 0x8130 ++ ETHERTYPE_WELLFLEET = 0x8103 ++ ETHERTYPE_X25 = 0x805 ++ ETHERTYPE_X75 = 0x801 ++ ETHERTYPE_XNSSM = 0x9001 ++ ETHERTYPE_XTP = 0x817d ++ ETHER_ADDR_LEN = 0x6 ++ ETHER_ALIGN = 0x2 ++ ETHER_CRC_LEN = 0x4 ++ ETHER_CRC_POLY_BE = 0x4c11db6 ++ ETHER_CRC_POLY_LE = 0xedb88320 ++ ETHER_HDR_LEN = 0xe ++ ETHER_MAX_DIX_LEN = 0x600 ++ ETHER_MAX_LEN = 0x5ee ++ ETHER_MIN_LEN = 0x40 ++ ETHER_TYPE_LEN = 0x2 ++ ETHER_VLAN_ENCAP_LEN = 0x4 ++ EVFILT_AIO = -0x3 ++ EVFILT_PROC = -0x5 ++ EVFILT_READ = -0x1 ++ EVFILT_SIGNAL = -0x6 ++ EVFILT_SYSCOUNT = 0x7 ++ EVFILT_TIMER = -0x7 ++ EVFILT_VNODE = -0x4 ++ EVFILT_WRITE = -0x2 ++ EV_ADD = 0x1 ++ EV_CLEAR = 0x20 ++ EV_DELETE = 0x2 ++ EV_DISABLE = 0x8 ++ EV_ENABLE = 0x4 ++ EV_EOF = 0x8000 ++ EV_ERROR = 0x4000 ++ EV_FLAG1 = 0x2000 ++ EV_ONESHOT = 0x10 ++ EV_SYSFLAGS = 0xf000 ++ EXTA = 0x4b00 ++ EXTB = 0x9600 ++ EXTPROC = 0x800 ++ FD_CLOEXEC = 0x1 ++ FD_SETSIZE = 0x400 ++ FLUSHO = 0x800000 ++ F_DUPFD = 0x0 ++ F_DUPFD_CLOEXEC = 0xa ++ F_GETFD = 0x1 ++ F_GETFL = 0x3 ++ F_GETLK = 0x7 ++ F_GETOWN = 0x5 ++ F_OK = 0x0 ++ F_RDLCK = 0x1 ++ F_SETFD = 0x2 ++ F_SETFL = 0x4 ++ F_SETLK = 0x8 ++ F_SETLKW = 0x9 ++ F_SETOWN = 0x6 ++ F_UNLCK = 0x2 ++ F_WRLCK = 0x3 ++ HUPCL = 0x4000 ++ ICANON = 0x100 ++ ICMP6_FILTER = 0x12 ++ ICRNL = 0x100 ++ IEXTEN = 0x400 ++ IFAN_ARRIVAL = 0x0 ++ IFAN_DEPARTURE = 0x1 ++ IFA_ROUTE = 0x1 ++ IFF_ALLMULTI = 0x200 ++ IFF_BROADCAST = 0x2 ++ IFF_CANTCHANGE = 0x8e52 ++ IFF_DEBUG = 0x4 ++ IFF_LINK0 = 0x1000 ++ IFF_LINK1 = 0x2000 ++ IFF_LINK2 = 0x4000 ++ IFF_LOOPBACK = 0x8 ++ IFF_MULTICAST = 0x8000 ++ IFF_NOARP = 0x80 ++ IFF_NOTRAILERS = 0x20 ++ IFF_OACTIVE = 0x400 ++ IFF_POINTOPOINT = 0x10 ++ IFF_PROMISC = 0x100 ++ IFF_RUNNING = 0x40 ++ IFF_SIMPLEX = 0x800 ++ IFF_UP = 0x1 ++ IFNAMSIZ = 0x10 ++ IFT_1822 = 0x2 ++ IFT_A12MPPSWITCH = 0x82 ++ IFT_AAL2 = 0xbb ++ IFT_AAL5 = 0x31 ++ IFT_ADSL = 0x5e ++ IFT_AFLANE8023 = 0x3b ++ IFT_AFLANE8025 = 0x3c ++ IFT_ARAP = 0x58 ++ IFT_ARCNET = 0x23 ++ IFT_ARCNETPLUS = 0x24 ++ IFT_ASYNC = 0x54 ++ IFT_ATM = 0x25 ++ IFT_ATMDXI = 0x69 ++ IFT_ATMFUNI = 0x6a ++ IFT_ATMIMA = 0x6b ++ IFT_ATMLOGICAL = 0x50 ++ IFT_ATMRADIO = 0xbd ++ IFT_ATMSUBINTERFACE = 0x86 ++ IFT_ATMVCIENDPT = 0xc2 ++ IFT_ATMVIRTUAL = 0x95 ++ IFT_BGPPOLICYACCOUNTING = 0xa2 ++ IFT_BLUETOOTH = 0xf8 ++ IFT_BRIDGE = 0xd1 ++ IFT_BSC = 0x53 ++ IFT_CARP = 0xf7 ++ IFT_CCTEMUL = 0x3d ++ IFT_CEPT = 0x13 ++ IFT_CES = 0x85 ++ IFT_CHANNEL = 0x46 ++ IFT_CNR = 0x55 ++ IFT_COFFEE = 0x84 ++ IFT_COMPOSITELINK = 0x9b ++ IFT_DCN = 0x8d ++ IFT_DIGITALPOWERLINE = 0x8a ++ IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba ++ IFT_DLSW = 0x4a ++ IFT_DOCSCABLEDOWNSTREAM = 0x80 ++ IFT_DOCSCABLEMACLAYER = 0x7f ++ IFT_DOCSCABLEUPSTREAM = 0x81 ++ IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd ++ IFT_DS0 = 0x51 ++ IFT_DS0BUNDLE = 0x52 ++ IFT_DS1FDL = 0xaa ++ IFT_DS3 = 0x1e ++ IFT_DTM = 0x8c ++ IFT_DUMMY = 0xf1 ++ IFT_DVBASILN = 0xac ++ IFT_DVBASIOUT = 0xad ++ IFT_DVBRCCDOWNSTREAM = 0x93 ++ IFT_DVBRCCMACLAYER = 0x92 ++ IFT_DVBRCCUPSTREAM = 0x94 ++ IFT_ECONET = 0xce ++ IFT_ENC = 0xf4 ++ IFT_EON = 0x19 ++ IFT_EPLRS = 0x57 ++ IFT_ESCON = 0x49 ++ IFT_ETHER = 0x6 ++ IFT_FAITH = 0xf3 ++ IFT_FAST = 0x7d ++ IFT_FASTETHER = 0x3e ++ IFT_FASTETHERFX = 0x45 ++ IFT_FDDI = 0xf ++ IFT_FIBRECHANNEL = 0x38 ++ IFT_FRAMERELAYINTERCONNECT = 0x3a ++ IFT_FRAMERELAYMPI = 0x5c ++ IFT_FRDLCIENDPT = 0xc1 ++ IFT_FRELAY = 0x20 ++ IFT_FRELAYDCE = 0x2c ++ IFT_FRF16MFRBUNDLE = 0xa3 ++ IFT_FRFORWARD = 0x9e ++ IFT_G703AT2MB = 0x43 ++ IFT_G703AT64K = 0x42 ++ IFT_GIF = 0xf0 ++ IFT_GIGABITETHERNET = 0x75 ++ IFT_GR303IDT = 0xb2 ++ IFT_GR303RDT = 0xb1 ++ IFT_H323GATEKEEPER = 0xa4 ++ IFT_H323PROXY = 0xa5 ++ IFT_HDH1822 = 0x3 ++ IFT_HDLC = 0x76 ++ IFT_HDSL2 = 0xa8 ++ IFT_HIPERLAN2 = 0xb7 ++ IFT_HIPPI = 0x2f ++ IFT_HIPPIINTERFACE = 0x39 ++ IFT_HOSTPAD = 0x5a ++ IFT_HSSI = 0x2e ++ IFT_HY = 0xe ++ IFT_IBM370PARCHAN = 0x48 ++ IFT_IDSL = 0x9a ++ IFT_IEEE1394 = 0x90 ++ IFT_IEEE80211 = 0x47 ++ IFT_IEEE80212 = 0x37 ++ IFT_IEEE8023ADLAG = 0xa1 ++ IFT_IFGSN = 0x91 ++ IFT_IMT = 0xbe ++ IFT_INFINIBAND = 0xc7 ++ IFT_INTERLEAVE = 0x7c ++ IFT_IP = 0x7e ++ IFT_IPFORWARD = 0x8e ++ IFT_IPOVERATM = 0x72 ++ IFT_IPOVERCDLC = 0x6d ++ IFT_IPOVERCLAW = 0x6e ++ IFT_IPSWITCH = 0x4e ++ IFT_ISDN = 0x3f ++ IFT_ISDNBASIC = 0x14 ++ IFT_ISDNPRIMARY = 0x15 ++ IFT_ISDNS = 0x4b ++ IFT_ISDNU = 0x4c ++ IFT_ISO88022LLC = 0x29 ++ IFT_ISO88023 = 0x7 ++ IFT_ISO88024 = 0x8 ++ IFT_ISO88025 = 0x9 ++ IFT_ISO88025CRFPINT = 0x62 ++ IFT_ISO88025DTR = 0x56 ++ IFT_ISO88025FIBER = 0x73 ++ IFT_ISO88026 = 0xa ++ IFT_ISUP = 0xb3 ++ IFT_L2VLAN = 0x87 ++ IFT_L3IPVLAN = 0x88 ++ IFT_L3IPXVLAN = 0x89 ++ IFT_LAPB = 0x10 ++ IFT_LAPD = 0x4d ++ IFT_LAPF = 0x77 ++ IFT_LINEGROUP = 0xd2 ++ IFT_LOCALTALK = 0x2a ++ IFT_LOOP = 0x18 ++ IFT_MEDIAMAILOVERIP = 0x8b ++ IFT_MFSIGLINK = 0xa7 ++ IFT_MIOX25 = 0x26 ++ IFT_MODEM = 0x30 ++ IFT_MPC = 0x71 ++ IFT_MPLS = 0xa6 ++ IFT_MPLSTUNNEL = 0x96 ++ IFT_MSDSL = 0x8f ++ IFT_MVL = 0xbf ++ IFT_MYRINET = 0x63 ++ IFT_NFAS = 0xaf ++ IFT_NSIP = 0x1b ++ IFT_OPTICALCHANNEL = 0xc3 ++ IFT_OPTICALTRANSPORT = 0xc4 ++ IFT_OTHER = 0x1 ++ IFT_P10 = 0xc ++ IFT_P80 = 0xd ++ IFT_PARA = 0x22 ++ IFT_PFLOG = 0xf5 ++ IFT_PFLOW = 0xf9 ++ IFT_PFSYNC = 0xf6 ++ IFT_PLC = 0xae ++ IFT_PON155 = 0xcf ++ IFT_PON622 = 0xd0 ++ IFT_POS = 0xab ++ IFT_PPP = 0x17 ++ IFT_PPPMULTILINKBUNDLE = 0x6c ++ IFT_PROPATM = 0xc5 ++ IFT_PROPBWAP2MP = 0xb8 ++ IFT_PROPCNLS = 0x59 ++ IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 ++ IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 ++ IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 ++ IFT_PROPMUX = 0x36 ++ IFT_PROPVIRTUAL = 0x35 ++ IFT_PROPWIRELESSP2P = 0x9d ++ IFT_PTPSERIAL = 0x16 ++ IFT_PVC = 0xf2 ++ IFT_Q2931 = 0xc9 ++ IFT_QLLC = 0x44 ++ IFT_RADIOMAC = 0xbc ++ IFT_RADSL = 0x5f ++ IFT_REACHDSL = 0xc0 ++ IFT_RFC1483 = 0x9f ++ IFT_RS232 = 0x21 ++ IFT_RSRB = 0x4f ++ IFT_SDLC = 0x11 ++ IFT_SDSL = 0x60 ++ IFT_SHDSL = 0xa9 ++ IFT_SIP = 0x1f ++ IFT_SIPSIG = 0xcc ++ IFT_SIPTG = 0xcb ++ IFT_SLIP = 0x1c ++ IFT_SMDSDXI = 0x2b ++ IFT_SMDSICIP = 0x34 ++ IFT_SONET = 0x27 ++ IFT_SONETOVERHEADCHANNEL = 0xb9 ++ IFT_SONETPATH = 0x32 ++ IFT_SONETVT = 0x33 ++ IFT_SRP = 0x97 ++ IFT_SS7SIGLINK = 0x9c ++ IFT_STACKTOSTACK = 0x6f ++ IFT_STARLAN = 0xb ++ IFT_T1 = 0x12 ++ IFT_TDLC = 0x74 ++ IFT_TELINK = 0xc8 ++ IFT_TERMPAD = 0x5b ++ IFT_TR008 = 0xb0 ++ IFT_TRANSPHDLC = 0x7b ++ IFT_TUNNEL = 0x83 ++ IFT_ULTRA = 0x1d ++ IFT_USB = 0xa0 ++ IFT_V11 = 0x40 ++ IFT_V35 = 0x2d ++ IFT_V36 = 0x41 ++ IFT_V37 = 0x78 ++ IFT_VDSL = 0x61 ++ IFT_VIRTUALIPADDRESS = 0x70 ++ IFT_VIRTUALTG = 0xca ++ IFT_VOICEDID = 0xd5 ++ IFT_VOICEEM = 0x64 ++ IFT_VOICEEMFGD = 0xd3 ++ IFT_VOICEENCAP = 0x67 ++ IFT_VOICEFGDEANA = 0xd4 ++ IFT_VOICEFXO = 0x65 ++ IFT_VOICEFXS = 0x66 ++ IFT_VOICEOVERATM = 0x98 ++ IFT_VOICEOVERCABLE = 0xc6 ++ IFT_VOICEOVERFRAMERELAY = 0x99 ++ IFT_VOICEOVERIP = 0x68 ++ IFT_X213 = 0x5d ++ IFT_X25 = 0x5 ++ IFT_X25DDN = 0x4 ++ IFT_X25HUNTGROUP = 0x7a ++ IFT_X25MLP = 0x79 ++ IFT_X25PLE = 0x28 ++ IFT_XETHER = 0x1a ++ IGNBRK = 0x1 ++ IGNCR = 0x80 ++ IGNPAR = 0x4 ++ IMAXBEL = 0x2000 ++ INLCR = 0x40 ++ INPCK = 0x10 ++ IN_CLASSA_HOST = 0xffffff ++ IN_CLASSA_MAX = 0x80 ++ IN_CLASSA_NET = 0xff000000 ++ IN_CLASSA_NSHIFT = 0x18 ++ IN_CLASSB_HOST = 0xffff ++ IN_CLASSB_MAX = 0x10000 ++ IN_CLASSB_NET = 0xffff0000 ++ IN_CLASSB_NSHIFT = 0x10 ++ IN_CLASSC_HOST = 0xff ++ IN_CLASSC_NET = 0xffffff00 ++ IN_CLASSC_NSHIFT = 0x8 ++ IN_CLASSD_HOST = 0xfffffff ++ IN_CLASSD_NET = 0xf0000000 ++ IN_CLASSD_NSHIFT = 0x1c ++ IN_LOOPBACKNET = 0x7f ++ IN_RFC3021_HOST = 0x1 ++ IN_RFC3021_NET = 0xfffffffe ++ IN_RFC3021_NSHIFT = 0x1f ++ IPPROTO_AH = 0x33 ++ IPPROTO_CARP = 0x70 ++ IPPROTO_DIVERT = 0x102 ++ IPPROTO_DIVERT_INIT = 0x2 ++ IPPROTO_DIVERT_RESP = 0x1 ++ IPPROTO_DONE = 0x101 ++ IPPROTO_DSTOPTS = 0x3c ++ IPPROTO_EGP = 0x8 ++ IPPROTO_ENCAP = 0x62 ++ IPPROTO_EON = 0x50 ++ IPPROTO_ESP = 0x32 ++ IPPROTO_ETHERIP = 0x61 ++ IPPROTO_FRAGMENT = 0x2c ++ IPPROTO_GGP = 0x3 ++ IPPROTO_GRE = 0x2f ++ IPPROTO_HOPOPTS = 0x0 ++ IPPROTO_ICMP = 0x1 ++ IPPROTO_ICMPV6 = 0x3a ++ IPPROTO_IDP = 0x16 ++ IPPROTO_IGMP = 0x2 ++ IPPROTO_IP = 0x0 ++ IPPROTO_IPCOMP = 0x6c ++ IPPROTO_IPIP = 0x4 ++ IPPROTO_IPV4 = 0x4 ++ IPPROTO_IPV6 = 0x29 ++ IPPROTO_MAX = 0x100 ++ IPPROTO_MAXID = 0x103 ++ IPPROTO_MOBILE = 0x37 ++ IPPROTO_MPLS = 0x89 ++ IPPROTO_NONE = 0x3b ++ IPPROTO_PFSYNC = 0xf0 ++ IPPROTO_PIM = 0x67 ++ IPPROTO_PUP = 0xc ++ IPPROTO_RAW = 0xff ++ IPPROTO_ROUTING = 0x2b ++ IPPROTO_RSVP = 0x2e ++ IPPROTO_TCP = 0x6 ++ IPPROTO_TP = 0x1d ++ IPPROTO_UDP = 0x11 ++ IPV6_AUTH_LEVEL = 0x35 ++ IPV6_AUTOFLOWLABEL = 0x3b ++ IPV6_CHECKSUM = 0x1a ++ IPV6_DEFAULT_MULTICAST_HOPS = 0x1 ++ IPV6_DEFAULT_MULTICAST_LOOP = 0x1 ++ IPV6_DEFHLIM = 0x40 ++ IPV6_DONTFRAG = 0x3e ++ IPV6_DSTOPTS = 0x32 ++ IPV6_ESP_NETWORK_LEVEL = 0x37 ++ IPV6_ESP_TRANS_LEVEL = 0x36 ++ IPV6_FAITH = 0x1d ++ IPV6_FLOWINFO_MASK = 0xffffff0f ++ IPV6_FLOWLABEL_MASK = 0xffff0f00 ++ IPV6_FRAGTTL = 0x78 ++ IPV6_HLIMDEC = 0x1 ++ IPV6_HOPLIMIT = 0x2f ++ IPV6_HOPOPTS = 0x31 ++ IPV6_IPCOMP_LEVEL = 0x3c ++ IPV6_JOIN_GROUP = 0xc ++ IPV6_LEAVE_GROUP = 0xd ++ IPV6_MAXHLIM = 0xff ++ IPV6_MAXPACKET = 0xffff ++ IPV6_MMTU = 0x500 ++ IPV6_MULTICAST_HOPS = 0xa ++ IPV6_MULTICAST_IF = 0x9 ++ IPV6_MULTICAST_LOOP = 0xb ++ IPV6_NEXTHOP = 0x30 ++ IPV6_OPTIONS = 0x1 ++ IPV6_PATHMTU = 0x2c ++ IPV6_PIPEX = 0x3f ++ IPV6_PKTINFO = 0x2e ++ IPV6_PORTRANGE = 0xe ++ IPV6_PORTRANGE_DEFAULT = 0x0 ++ IPV6_PORTRANGE_HIGH = 0x1 ++ IPV6_PORTRANGE_LOW = 0x2 ++ IPV6_RECVDSTOPTS = 0x28 ++ IPV6_RECVDSTPORT = 0x40 ++ IPV6_RECVHOPLIMIT = 0x25 ++ IPV6_RECVHOPOPTS = 0x27 ++ IPV6_RECVPATHMTU = 0x2b ++ IPV6_RECVPKTINFO = 0x24 ++ IPV6_RECVRTHDR = 0x26 ++ IPV6_RECVTCLASS = 0x39 ++ IPV6_RTABLE = 0x1021 ++ IPV6_RTHDR = 0x33 ++ IPV6_RTHDRDSTOPTS = 0x23 ++ IPV6_RTHDR_LOOSE = 0x0 ++ IPV6_RTHDR_STRICT = 0x1 ++ IPV6_RTHDR_TYPE_0 = 0x0 ++ IPV6_SOCKOPT_RESERVED1 = 0x3 ++ IPV6_TCLASS = 0x3d ++ IPV6_UNICAST_HOPS = 0x4 ++ IPV6_USE_MIN_MTU = 0x2a ++ IPV6_V6ONLY = 0x1b ++ IPV6_VERSION = 0x60 ++ IPV6_VERSION_MASK = 0xf0 ++ IP_ADD_MEMBERSHIP = 0xc ++ IP_AUTH_LEVEL = 0x14 ++ IP_DEFAULT_MULTICAST_LOOP = 0x1 ++ IP_DEFAULT_MULTICAST_TTL = 0x1 ++ IP_DF = 0x4000 ++ IP_DIVERTFL = 0x1022 ++ IP_DROP_MEMBERSHIP = 0xd ++ IP_ESP_NETWORK_LEVEL = 0x16 ++ IP_ESP_TRANS_LEVEL = 0x15 ++ IP_HDRINCL = 0x2 ++ IP_IPCOMP_LEVEL = 0x1d ++ IP_IPSECFLOWINFO = 0x24 ++ IP_IPSEC_LOCAL_AUTH = 0x1b ++ IP_IPSEC_LOCAL_CRED = 0x19 ++ IP_IPSEC_LOCAL_ID = 0x17 ++ IP_IPSEC_REMOTE_AUTH = 0x1c ++ IP_IPSEC_REMOTE_CRED = 0x1a ++ IP_IPSEC_REMOTE_ID = 0x18 ++ IP_MAXPACKET = 0xffff ++ IP_MAX_MEMBERSHIPS = 0xfff ++ IP_MF = 0x2000 ++ IP_MINTTL = 0x20 ++ IP_MIN_MEMBERSHIPS = 0xf ++ IP_MSS = 0x240 ++ IP_MULTICAST_IF = 0x9 ++ IP_MULTICAST_LOOP = 0xb ++ IP_MULTICAST_TTL = 0xa ++ IP_OFFMASK = 0x1fff ++ IP_OPTIONS = 0x1 ++ IP_PIPEX = 0x22 ++ IP_PORTRANGE = 0x13 ++ IP_PORTRANGE_DEFAULT = 0x0 ++ IP_PORTRANGE_HIGH = 0x1 ++ IP_PORTRANGE_LOW = 0x2 ++ IP_RECVDSTADDR = 0x7 ++ IP_RECVDSTPORT = 0x21 ++ IP_RECVIF = 0x1e ++ IP_RECVOPTS = 0x5 ++ IP_RECVRETOPTS = 0x6 ++ IP_RECVRTABLE = 0x23 ++ IP_RECVTTL = 0x1f ++ IP_RETOPTS = 0x8 ++ IP_RF = 0x8000 ++ IP_RTABLE = 0x1021 ++ IP_TOS = 0x3 ++ IP_TTL = 0x4 ++ ISIG = 0x80 ++ ISTRIP = 0x20 ++ IXANY = 0x800 ++ IXOFF = 0x400 ++ IXON = 0x200 ++ LCNT_OVERLOAD_FLUSH = 0x6 ++ LOCK_EX = 0x2 ++ LOCK_NB = 0x4 ++ LOCK_SH = 0x1 ++ LOCK_UN = 0x8 ++ MADV_DONTNEED = 0x4 ++ MADV_FREE = 0x6 ++ MADV_NORMAL = 0x0 ++ MADV_RANDOM = 0x1 ++ MADV_SEQUENTIAL = 0x2 ++ MADV_SPACEAVAIL = 0x5 ++ MADV_WILLNEED = 0x3 ++ MAP_ANON = 0x1000 ++ MAP_COPY = 0x4 ++ MAP_FILE = 0x0 ++ MAP_FIXED = 0x10 ++ MAP_FLAGMASK = 0x1ff7 ++ MAP_HASSEMAPHORE = 0x200 ++ MAP_INHERIT = 0x80 ++ MAP_INHERIT_COPY = 0x1 ++ MAP_INHERIT_DONATE_COPY = 0x3 ++ MAP_INHERIT_NONE = 0x2 ++ MAP_INHERIT_SHARE = 0x0 ++ MAP_NOEXTEND = 0x100 ++ MAP_NORESERVE = 0x40 ++ MAP_PRIVATE = 0x2 ++ MAP_RENAME = 0x20 ++ MAP_SHARED = 0x1 ++ MAP_TRYFIXED = 0x400 ++ MCL_CURRENT = 0x1 ++ MCL_FUTURE = 0x2 ++ MSG_BCAST = 0x100 ++ MSG_CTRUNC = 0x20 ++ MSG_DONTROUTE = 0x4 ++ MSG_DONTWAIT = 0x80 ++ MSG_EOR = 0x8 ++ MSG_MCAST = 0x200 ++ MSG_NOSIGNAL = 0x400 ++ MSG_OOB = 0x1 ++ MSG_PEEK = 0x2 ++ MSG_TRUNC = 0x10 ++ MSG_WAITALL = 0x40 ++ MS_ASYNC = 0x1 ++ MS_INVALIDATE = 0x4 ++ MS_SYNC = 0x2 ++ NAME_MAX = 0xff ++ NET_RT_DUMP = 0x1 ++ NET_RT_FLAGS = 0x2 ++ NET_RT_IFLIST = 0x3 ++ NET_RT_MAXID = 0x6 ++ NET_RT_STATS = 0x4 ++ NET_RT_TABLE = 0x5 ++ NOFLSH = 0x80000000 ++ NOTE_ATTRIB = 0x8 ++ NOTE_CHILD = 0x4 ++ NOTE_DELETE = 0x1 ++ NOTE_EOF = 0x2 ++ NOTE_EXEC = 0x20000000 ++ NOTE_EXIT = 0x80000000 ++ NOTE_EXTEND = 0x4 ++ NOTE_FORK = 0x40000000 ++ NOTE_LINK = 0x10 ++ NOTE_LOWAT = 0x1 ++ NOTE_PCTRLMASK = 0xf0000000 ++ NOTE_PDATAMASK = 0xfffff ++ NOTE_RENAME = 0x20 ++ NOTE_REVOKE = 0x40 ++ NOTE_TRACK = 0x1 ++ NOTE_TRACKERR = 0x2 ++ NOTE_TRUNCATE = 0x80 ++ NOTE_WRITE = 0x2 ++ OCRNL = 0x10 ++ ONLCR = 0x2 ++ ONLRET = 0x80 ++ ONOCR = 0x40 ++ ONOEOT = 0x8 ++ OPOST = 0x1 ++ O_ACCMODE = 0x3 ++ O_APPEND = 0x8 ++ O_ASYNC = 0x40 ++ O_CLOEXEC = 0x10000 ++ O_CREAT = 0x200 ++ O_DIRECTORY = 0x20000 ++ O_DSYNC = 0x80 ++ O_EXCL = 0x800 ++ O_EXLOCK = 0x20 ++ O_FSYNC = 0x80 ++ O_NDELAY = 0x4 ++ O_NOCTTY = 0x8000 ++ O_NOFOLLOW = 0x100 ++ O_NONBLOCK = 0x4 ++ O_RDONLY = 0x0 ++ O_RDWR = 0x2 ++ O_RSYNC = 0x80 ++ O_SHLOCK = 0x10 ++ O_SYNC = 0x80 ++ O_TRUNC = 0x400 ++ O_WRONLY = 0x1 ++ PARENB = 0x1000 ++ PARMRK = 0x8 ++ PARODD = 0x2000 ++ PENDIN = 0x20000000 ++ PF_FLUSH = 0x1 ++ PRIO_PGRP = 0x1 ++ PRIO_PROCESS = 0x0 ++ PRIO_USER = 0x2 ++ PROT_EXEC = 0x4 ++ PROT_NONE = 0x0 ++ PROT_READ = 0x1 ++ PROT_WRITE = 0x2 ++ PT_MASK = 0x3ff000 ++ RLIMIT_CORE = 0x4 ++ RLIMIT_CPU = 0x0 ++ RLIMIT_DATA = 0x2 ++ RLIMIT_FSIZE = 0x1 ++ RLIMIT_NOFILE = 0x8 ++ RLIMIT_STACK = 0x3 ++ RLIM_INFINITY = 0x7fffffffffffffff ++ RTAX_AUTHOR = 0x6 ++ RTAX_BRD = 0x7 ++ RTAX_DST = 0x0 ++ RTAX_GATEWAY = 0x1 ++ RTAX_GENMASK = 0x3 ++ RTAX_IFA = 0x5 ++ RTAX_IFP = 0x4 ++ RTAX_LABEL = 0xa ++ RTAX_MAX = 0xb ++ RTAX_NETMASK = 0x2 ++ RTAX_SRC = 0x8 ++ RTAX_SRCMASK = 0x9 ++ RTA_AUTHOR = 0x40 ++ RTA_BRD = 0x80 ++ RTA_DST = 0x1 ++ RTA_GATEWAY = 0x2 ++ RTA_GENMASK = 0x8 ++ RTA_IFA = 0x20 ++ RTA_IFP = 0x10 ++ RTA_LABEL = 0x400 ++ RTA_NETMASK = 0x4 ++ RTA_SRC = 0x100 ++ RTA_SRCMASK = 0x200 ++ RTF_ANNOUNCE = 0x4000 ++ RTF_BLACKHOLE = 0x1000 ++ RTF_CLONED = 0x10000 ++ RTF_CLONING = 0x100 ++ RTF_DONE = 0x40 ++ RTF_DYNAMIC = 0x10 ++ RTF_FMASK = 0x10f808 ++ RTF_GATEWAY = 0x2 ++ RTF_HOST = 0x4 ++ RTF_LLINFO = 0x400 ++ RTF_MASK = 0x80 ++ RTF_MODIFIED = 0x20 ++ RTF_MPATH = 0x40000 ++ RTF_MPLS = 0x100000 ++ RTF_PERMANENT_ARP = 0x2000 ++ RTF_PROTO1 = 0x8000 ++ RTF_PROTO2 = 0x4000 ++ RTF_PROTO3 = 0x2000 ++ RTF_REJECT = 0x8 ++ RTF_SOURCE = 0x20000 ++ RTF_STATIC = 0x800 ++ RTF_TUNNEL = 0x100000 ++ RTF_UP = 0x1 ++ RTF_USETRAILERS = 0x8000 ++ RTF_XRESOLVE = 0x200 ++ RTM_ADD = 0x1 ++ RTM_CHANGE = 0x3 ++ RTM_DELADDR = 0xd ++ RTM_DELETE = 0x2 ++ RTM_DESYNC = 0x10 ++ RTM_GET = 0x4 ++ RTM_IFANNOUNCE = 0xf ++ RTM_IFINFO = 0xe ++ RTM_LOCK = 0x8 ++ RTM_LOSING = 0x5 ++ RTM_MAXSIZE = 0x800 ++ RTM_MISS = 0x7 ++ RTM_NEWADDR = 0xc ++ RTM_REDIRECT = 0x6 ++ RTM_RESOLVE = 0xb ++ RTM_RTTUNIT = 0xf4240 ++ RTM_VERSION = 0x5 ++ RTV_EXPIRE = 0x4 ++ RTV_HOPCOUNT = 0x2 ++ RTV_MTU = 0x1 ++ RTV_RPIPE = 0x8 ++ RTV_RTT = 0x40 ++ RTV_RTTVAR = 0x80 ++ RTV_SPIPE = 0x10 ++ RTV_SSTHRESH = 0x20 ++ RT_TABLEID_MAX = 0xff ++ RUSAGE_CHILDREN = -0x1 ++ RUSAGE_SELF = 0x0 ++ RUSAGE_THREAD = 0x1 ++ SCM_RIGHTS = 0x1 ++ SCM_TIMESTAMP = 0x4 ++ SHUT_RD = 0x0 ++ SHUT_RDWR = 0x2 ++ SHUT_WR = 0x1 ++ SIOCADDMULTI = 0x80206931 ++ SIOCAIFADDR = 0x8040691a ++ SIOCAIFGROUP = 0x80246987 ++ SIOCALIFADDR = 0x8218691c ++ SIOCATMARK = 0x40047307 ++ SIOCBRDGADD = 0x8054693c ++ SIOCBRDGADDS = 0x80546941 ++ SIOCBRDGARL = 0x806e694d ++ SIOCBRDGDADDR = 0x81286947 ++ SIOCBRDGDEL = 0x8054693d ++ SIOCBRDGDELS = 0x80546942 ++ SIOCBRDGFLUSH = 0x80546948 ++ SIOCBRDGFRL = 0x806e694e ++ SIOCBRDGGCACHE = 0xc0146941 ++ SIOCBRDGGFD = 0xc0146952 ++ SIOCBRDGGHT = 0xc0146951 ++ SIOCBRDGGIFFLGS = 0xc054693e ++ SIOCBRDGGMA = 0xc0146953 ++ SIOCBRDGGPARAM = 0xc03c6958 ++ SIOCBRDGGPRI = 0xc0146950 ++ SIOCBRDGGRL = 0xc028694f ++ SIOCBRDGGSIFS = 0xc054693c ++ SIOCBRDGGTO = 0xc0146946 ++ SIOCBRDGIFS = 0xc0546942 ++ SIOCBRDGRTS = 0xc0186943 ++ SIOCBRDGSADDR = 0xc1286944 ++ SIOCBRDGSCACHE = 0x80146940 ++ SIOCBRDGSFD = 0x80146952 ++ SIOCBRDGSHT = 0x80146951 ++ SIOCBRDGSIFCOST = 0x80546955 ++ SIOCBRDGSIFFLGS = 0x8054693f ++ SIOCBRDGSIFPRIO = 0x80546954 ++ SIOCBRDGSMA = 0x80146953 ++ SIOCBRDGSPRI = 0x80146950 ++ SIOCBRDGSPROTO = 0x8014695a ++ SIOCBRDGSTO = 0x80146945 ++ SIOCBRDGSTXHC = 0x80146959 ++ SIOCDELMULTI = 0x80206932 ++ SIOCDIFADDR = 0x80206919 ++ SIOCDIFGROUP = 0x80246989 ++ SIOCDIFPHYADDR = 0x80206949 ++ SIOCDLIFADDR = 0x8218691e ++ SIOCGETKALIVE = 0xc01869a4 ++ SIOCGETLABEL = 0x8020699a ++ SIOCGETPFLOW = 0xc02069fe ++ SIOCGETPFSYNC = 0xc02069f8 ++ SIOCGETSGCNT = 0xc0147534 ++ SIOCGETVIFCNT = 0xc0147533 ++ SIOCGETVLAN = 0xc0206990 ++ SIOCGHIWAT = 0x40047301 ++ SIOCGIFADDR = 0xc0206921 ++ SIOCGIFASYNCMAP = 0xc020697c ++ SIOCGIFBRDADDR = 0xc0206923 ++ SIOCGIFCONF = 0xc0086924 ++ SIOCGIFDATA = 0xc020691b ++ SIOCGIFDESCR = 0xc0206981 ++ SIOCGIFDSTADDR = 0xc0206922 ++ SIOCGIFFLAGS = 0xc0206911 ++ SIOCGIFGATTR = 0xc024698b ++ SIOCGIFGENERIC = 0xc020693a ++ SIOCGIFGMEMB = 0xc024698a ++ SIOCGIFGROUP = 0xc0246988 ++ SIOCGIFHARDMTU = 0xc02069a5 ++ SIOCGIFMEDIA = 0xc0286936 ++ SIOCGIFMETRIC = 0xc0206917 ++ SIOCGIFMTU = 0xc020697e ++ SIOCGIFNETMASK = 0xc0206925 ++ SIOCGIFPDSTADDR = 0xc0206948 ++ SIOCGIFPRIORITY = 0xc020699c ++ SIOCGIFPSRCADDR = 0xc0206947 ++ SIOCGIFRDOMAIN = 0xc02069a0 ++ SIOCGIFRTLABEL = 0xc0206983 ++ SIOCGIFTIMESLOT = 0xc0206986 ++ SIOCGIFXFLAGS = 0xc020699e ++ SIOCGLIFADDR = 0xc218691d ++ SIOCGLIFPHYADDR = 0xc218694b ++ SIOCGLIFPHYRTABLE = 0xc02069a2 ++ SIOCGLIFPHYTTL = 0xc02069a9 ++ SIOCGLOWAT = 0x40047303 ++ SIOCGPGRP = 0x40047309 ++ SIOCGSPPPPARAMS = 0xc0206994 ++ SIOCGVH = 0xc02069f6 ++ SIOCGVNETID = 0xc02069a7 ++ SIOCIFCREATE = 0x8020697a ++ SIOCIFDESTROY = 0x80206979 ++ SIOCIFGCLONERS = 0xc00c6978 ++ SIOCSETKALIVE = 0x801869a3 ++ SIOCSETLABEL = 0x80206999 ++ SIOCSETPFLOW = 0x802069fd ++ SIOCSETPFSYNC = 0x802069f7 ++ SIOCSETVLAN = 0x8020698f ++ SIOCSHIWAT = 0x80047300 ++ SIOCSIFADDR = 0x8020690c ++ SIOCSIFASYNCMAP = 0x8020697d ++ SIOCSIFBRDADDR = 0x80206913 ++ SIOCSIFDESCR = 0x80206980 ++ SIOCSIFDSTADDR = 0x8020690e ++ SIOCSIFFLAGS = 0x80206910 ++ SIOCSIFGATTR = 0x8024698c ++ SIOCSIFGENERIC = 0x80206939 ++ SIOCSIFLLADDR = 0x8020691f ++ SIOCSIFMEDIA = 0xc0206935 ++ SIOCSIFMETRIC = 0x80206918 ++ SIOCSIFMTU = 0x8020697f ++ SIOCSIFNETMASK = 0x80206916 ++ SIOCSIFPHYADDR = 0x80406946 ++ SIOCSIFPRIORITY = 0x8020699b ++ SIOCSIFRDOMAIN = 0x8020699f ++ SIOCSIFRTLABEL = 0x80206982 ++ SIOCSIFTIMESLOT = 0x80206985 ++ SIOCSIFXFLAGS = 0x8020699d ++ SIOCSLIFPHYADDR = 0x8218694a ++ SIOCSLIFPHYRTABLE = 0x802069a1 ++ SIOCSLIFPHYTTL = 0x802069a8 ++ SIOCSLOWAT = 0x80047302 ++ SIOCSPGRP = 0x80047308 ++ SIOCSSPPPPARAMS = 0x80206993 ++ SIOCSVH = 0xc02069f5 ++ SIOCSVNETID = 0x802069a6 ++ SOCK_DGRAM = 0x2 ++ SOCK_RAW = 0x3 ++ SOCK_RDM = 0x4 ++ SOCK_SEQPACKET = 0x5 ++ SOCK_STREAM = 0x1 ++ SOL_SOCKET = 0xffff ++ SOMAXCONN = 0x80 ++ SO_ACCEPTCONN = 0x2 ++ SO_BINDANY = 0x1000 ++ SO_BROADCAST = 0x20 ++ SO_DEBUG = 0x1 ++ SO_DONTROUTE = 0x10 ++ SO_ERROR = 0x1007 ++ SO_KEEPALIVE = 0x8 ++ SO_LINGER = 0x80 ++ SO_NETPROC = 0x1020 ++ SO_OOBINLINE = 0x100 ++ SO_PEERCRED = 0x1022 ++ SO_RCVBUF = 0x1002 ++ SO_RCVLOWAT = 0x1004 ++ SO_RCVTIMEO = 0x1006 ++ SO_REUSEADDR = 0x4 ++ SO_REUSEPORT = 0x200 ++ SO_RTABLE = 0x1021 ++ SO_SNDBUF = 0x1001 ++ SO_SNDLOWAT = 0x1003 ++ SO_SNDTIMEO = 0x1005 ++ SO_SPLICE = 0x1023 ++ SO_TIMESTAMP = 0x800 ++ SO_TYPE = 0x1008 ++ SO_USELOOPBACK = 0x40 ++ TCIFLUSH = 0x1 ++ TCIOFLUSH = 0x3 ++ TCOFLUSH = 0x2 ++ TCP_MAXBURST = 0x4 ++ TCP_MAXSEG = 0x2 ++ TCP_MAXWIN = 0xffff ++ TCP_MAX_SACK = 0x3 ++ TCP_MAX_WINSHIFT = 0xe ++ TCP_MD5SIG = 0x4 ++ TCP_MSS = 0x200 ++ TCP_NODELAY = 0x1 ++ TCP_NOPUSH = 0x10 ++ TCP_NSTATES = 0xb ++ TCP_SACK_ENABLE = 0x8 ++ TCSAFLUSH = 0x2 ++ TIOCCBRK = 0x2000747a ++ TIOCCDTR = 0x20007478 ++ TIOCCONS = 0x80047462 ++ TIOCDRAIN = 0x2000745e ++ TIOCEXCL = 0x2000740d ++ TIOCEXT = 0x80047460 ++ TIOCFLAG_CLOCAL = 0x2 ++ TIOCFLAG_CRTSCTS = 0x4 ++ TIOCFLAG_MDMBUF = 0x8 ++ TIOCFLAG_PPS = 0x10 ++ TIOCFLAG_SOFTCAR = 0x1 ++ TIOCFLUSH = 0x80047410 ++ TIOCGETA = 0x402c7413 ++ TIOCGETD = 0x4004741a ++ TIOCGFLAGS = 0x4004745d ++ TIOCGPGRP = 0x40047477 ++ TIOCGSID = 0x40047463 ++ TIOCGTSTAMP = 0x400c745b ++ TIOCGWINSZ = 0x40087468 ++ TIOCMBIC = 0x8004746b ++ TIOCMBIS = 0x8004746c ++ TIOCMGET = 0x4004746a ++ TIOCMODG = 0x4004746a ++ TIOCMODS = 0x8004746d ++ TIOCMSET = 0x8004746d ++ TIOCM_CAR = 0x40 ++ TIOCM_CD = 0x40 ++ TIOCM_CTS = 0x20 ++ TIOCM_DSR = 0x100 ++ TIOCM_DTR = 0x2 ++ TIOCM_LE = 0x1 ++ TIOCM_RI = 0x80 ++ TIOCM_RNG = 0x80 ++ TIOCM_RTS = 0x4 ++ TIOCM_SR = 0x10 ++ TIOCM_ST = 0x8 ++ TIOCNOTTY = 0x20007471 ++ TIOCNXCL = 0x2000740e ++ TIOCOUTQ = 0x40047473 ++ TIOCPKT = 0x80047470 ++ TIOCPKT_DATA = 0x0 ++ TIOCPKT_DOSTOP = 0x20 ++ TIOCPKT_FLUSHREAD = 0x1 ++ TIOCPKT_FLUSHWRITE = 0x2 ++ TIOCPKT_IOCTL = 0x40 ++ TIOCPKT_NOSTOP = 0x10 ++ TIOCPKT_START = 0x8 ++ TIOCPKT_STOP = 0x4 ++ TIOCREMOTE = 0x80047469 ++ TIOCSBRK = 0x2000747b ++ TIOCSCTTY = 0x20007461 ++ TIOCSDTR = 0x20007479 ++ TIOCSETA = 0x802c7414 ++ TIOCSETAF = 0x802c7416 ++ TIOCSETAW = 0x802c7415 ++ TIOCSETD = 0x8004741b ++ TIOCSFLAGS = 0x8004745c ++ TIOCSIG = 0x8004745f ++ TIOCSPGRP = 0x80047476 ++ TIOCSTART = 0x2000746e ++ TIOCSTAT = 0x80047465 ++ TIOCSTI = 0x80017472 ++ TIOCSTOP = 0x2000746f ++ TIOCSTSTAMP = 0x8008745a ++ TIOCSWINSZ = 0x80087467 ++ TIOCUCNTL = 0x80047466 ++ TOSTOP = 0x400000 ++ VDISCARD = 0xf ++ VDSUSP = 0xb ++ VEOF = 0x0 ++ VEOL = 0x1 ++ VEOL2 = 0x2 ++ VERASE = 0x3 ++ VINTR = 0x8 ++ VKILL = 0x5 ++ VLNEXT = 0xe ++ VMIN = 0x10 ++ VQUIT = 0x9 ++ VREPRINT = 0x6 ++ VSTART = 0xc ++ VSTATUS = 0x12 ++ VSTOP = 0xd ++ VSUSP = 0xa ++ VTIME = 0x11 ++ VWERASE = 0x4 ++ WALTSIG = 0x4 ++ WCONTINUED = 0x8 ++ WCOREFLAG = 0x80 ++ WNOHANG = 0x1 ++ WSTOPPED = 0x7f ++ WUNTRACED = 0x2 ++) ++ ++// Errors ++const ( ++ E2BIG = syscall.Errno(0x7) ++ EACCES = syscall.Errno(0xd) ++ EADDRINUSE = syscall.Errno(0x30) ++ EADDRNOTAVAIL = syscall.Errno(0x31) ++ EAFNOSUPPORT = syscall.Errno(0x2f) ++ EAGAIN = syscall.Errno(0x23) ++ EALREADY = syscall.Errno(0x25) ++ EAUTH = syscall.Errno(0x50) ++ EBADF = syscall.Errno(0x9) ++ EBADRPC = syscall.Errno(0x48) ++ EBUSY = syscall.Errno(0x10) ++ ECANCELED = syscall.Errno(0x58) ++ ECHILD = syscall.Errno(0xa) ++ ECONNABORTED = syscall.Errno(0x35) ++ ECONNREFUSED = syscall.Errno(0x3d) ++ ECONNRESET = syscall.Errno(0x36) ++ EDEADLK = syscall.Errno(0xb) ++ EDESTADDRREQ = syscall.Errno(0x27) ++ EDOM = syscall.Errno(0x21) ++ EDQUOT = syscall.Errno(0x45) ++ EEXIST = syscall.Errno(0x11) ++ EFAULT = syscall.Errno(0xe) ++ EFBIG = syscall.Errno(0x1b) ++ EFTYPE = syscall.Errno(0x4f) ++ EHOSTDOWN = syscall.Errno(0x40) ++ EHOSTUNREACH = syscall.Errno(0x41) ++ EIDRM = syscall.Errno(0x59) ++ EILSEQ = syscall.Errno(0x54) ++ EINPROGRESS = syscall.Errno(0x24) ++ EINTR = syscall.Errno(0x4) ++ EINVAL = syscall.Errno(0x16) ++ EIO = syscall.Errno(0x5) ++ EIPSEC = syscall.Errno(0x52) ++ EISCONN = syscall.Errno(0x38) ++ EISDIR = syscall.Errno(0x15) ++ ELAST = syscall.Errno(0x5b) ++ ELOOP = syscall.Errno(0x3e) ++ EMEDIUMTYPE = syscall.Errno(0x56) ++ EMFILE = syscall.Errno(0x18) ++ EMLINK = syscall.Errno(0x1f) ++ EMSGSIZE = syscall.Errno(0x28) ++ ENAMETOOLONG = syscall.Errno(0x3f) ++ ENEEDAUTH = syscall.Errno(0x51) ++ ENETDOWN = syscall.Errno(0x32) ++ ENETRESET = syscall.Errno(0x34) ++ ENETUNREACH = syscall.Errno(0x33) ++ ENFILE = syscall.Errno(0x17) ++ ENOATTR = syscall.Errno(0x53) ++ ENOBUFS = syscall.Errno(0x37) ++ ENODEV = syscall.Errno(0x13) ++ ENOENT = syscall.Errno(0x2) ++ ENOEXEC = syscall.Errno(0x8) ++ ENOLCK = syscall.Errno(0x4d) ++ ENOMEDIUM = syscall.Errno(0x55) ++ ENOMEM = syscall.Errno(0xc) ++ ENOMSG = syscall.Errno(0x5a) ++ ENOPROTOOPT = syscall.Errno(0x2a) ++ ENOSPC = syscall.Errno(0x1c) ++ ENOSYS = syscall.Errno(0x4e) ++ ENOTBLK = syscall.Errno(0xf) ++ ENOTCONN = syscall.Errno(0x39) ++ ENOTDIR = syscall.Errno(0x14) ++ ENOTEMPTY = syscall.Errno(0x42) ++ ENOTSOCK = syscall.Errno(0x26) ++ ENOTSUP = syscall.Errno(0x5b) ++ ENOTTY = syscall.Errno(0x19) ++ ENXIO = syscall.Errno(0x6) ++ EOPNOTSUPP = syscall.Errno(0x2d) ++ EOVERFLOW = syscall.Errno(0x57) ++ EPERM = syscall.Errno(0x1) ++ EPFNOSUPPORT = syscall.Errno(0x2e) ++ EPIPE = syscall.Errno(0x20) ++ EPROCLIM = syscall.Errno(0x43) ++ EPROCUNAVAIL = syscall.Errno(0x4c) ++ EPROGMISMATCH = syscall.Errno(0x4b) ++ EPROGUNAVAIL = syscall.Errno(0x4a) ++ EPROTONOSUPPORT = syscall.Errno(0x2b) ++ EPROTOTYPE = syscall.Errno(0x29) ++ ERANGE = syscall.Errno(0x22) ++ EREMOTE = syscall.Errno(0x47) ++ EROFS = syscall.Errno(0x1e) ++ ERPCMISMATCH = syscall.Errno(0x49) ++ ESHUTDOWN = syscall.Errno(0x3a) ++ ESOCKTNOSUPPORT = syscall.Errno(0x2c) ++ ESPIPE = syscall.Errno(0x1d) ++ ESRCH = syscall.Errno(0x3) ++ ESTALE = syscall.Errno(0x46) ++ ETIMEDOUT = syscall.Errno(0x3c) ++ ETOOMANYREFS = syscall.Errno(0x3b) ++ ETXTBSY = syscall.Errno(0x1a) ++ EUSERS = syscall.Errno(0x44) ++ EWOULDBLOCK = syscall.Errno(0x23) ++ EXDEV = syscall.Errno(0x12) ++) ++ ++// Signals ++const ( ++ SIGABRT = syscall.Signal(0x6) ++ SIGALRM = syscall.Signal(0xe) ++ SIGBUS = syscall.Signal(0xa) ++ SIGCHLD = syscall.Signal(0x14) ++ SIGCONT = syscall.Signal(0x13) ++ SIGEMT = syscall.Signal(0x7) ++ SIGFPE = syscall.Signal(0x8) ++ SIGHUP = syscall.Signal(0x1) ++ SIGILL = syscall.Signal(0x4) ++ SIGINFO = syscall.Signal(0x1d) ++ SIGINT = syscall.Signal(0x2) ++ SIGIO = syscall.Signal(0x17) ++ SIGIOT = syscall.Signal(0x6) ++ SIGKILL = syscall.Signal(0x9) ++ SIGPIPE = syscall.Signal(0xd) ++ SIGPROF = syscall.Signal(0x1b) ++ SIGQUIT = syscall.Signal(0x3) ++ SIGSEGV = syscall.Signal(0xb) ++ SIGSTOP = syscall.Signal(0x11) ++ SIGSYS = syscall.Signal(0xc) ++ SIGTERM = syscall.Signal(0xf) ++ SIGTHR = syscall.Signal(0x20) ++ SIGTRAP = syscall.Signal(0x5) ++ SIGTSTP = syscall.Signal(0x12) ++ SIGTTIN = syscall.Signal(0x15) ++ SIGTTOU = syscall.Signal(0x16) ++ SIGURG = syscall.Signal(0x10) ++ SIGUSR1 = syscall.Signal(0x1e) ++ SIGUSR2 = syscall.Signal(0x1f) ++ SIGVTALRM = syscall.Signal(0x1a) ++ SIGWINCH = syscall.Signal(0x1c) ++ SIGXCPU = syscall.Signal(0x18) ++ SIGXFSZ = syscall.Signal(0x19) ++) ++ ++// Error table ++var errors = [...]string{ ++ 1: "operation not permitted", ++ 2: "no such file or directory", ++ 3: "no such process", ++ 4: "interrupted system call", ++ 5: "input/output error", ++ 6: "device not configured", ++ 7: "argument list too long", ++ 8: "exec format error", ++ 9: "bad file descriptor", ++ 10: "no child processes", ++ 11: "resource deadlock avoided", ++ 12: "cannot allocate memory", ++ 13: "permission denied", ++ 14: "bad address", ++ 15: "block device required", ++ 16: "device busy", ++ 17: "file exists", ++ 18: "cross-device link", ++ 19: "operation not supported by device", ++ 20: "not a directory", ++ 21: "is a directory", ++ 22: "invalid argument", ++ 23: "too many open files in system", ++ 24: "too many open files", ++ 25: "inappropriate ioctl for device", ++ 26: "text file busy", ++ 27: "file too large", ++ 28: "no space left on device", ++ 29: "illegal seek", ++ 30: "read-only file system", ++ 31: "too many links", ++ 32: "broken pipe", ++ 33: "numerical argument out of domain", ++ 34: "result too large", ++ 35: "resource temporarily unavailable", ++ 36: "operation now in progress", ++ 37: "operation already in progress", ++ 38: "socket operation on non-socket", ++ 39: "destination address required", ++ 40: "message too long", ++ 41: "protocol wrong type for socket", ++ 42: "protocol not available", ++ 43: "protocol not supported", ++ 44: "socket type not supported", ++ 45: "operation not supported", ++ 46: "protocol family not supported", ++ 47: "address family not supported by protocol family", ++ 48: "address already in use", ++ 49: "can't assign requested address", ++ 50: "network is down", ++ 51: "network is unreachable", ++ 52: "network dropped connection on reset", ++ 53: "software caused connection abort", ++ 54: "connection reset by peer", ++ 55: "no buffer space available", ++ 56: "socket is already connected", ++ 57: "socket is not connected", ++ 58: "can't send after socket shutdown", ++ 59: "too many references: can't splice", ++ 60: "connection timed out", ++ 61: "connection refused", ++ 62: "too many levels of symbolic links", ++ 63: "file name too long", ++ 64: "host is down", ++ 65: "no route to host", ++ 66: "directory not empty", ++ 67: "too many processes", ++ 68: "too many users", ++ 69: "disc quota exceeded", ++ 70: "stale NFS file handle", ++ 71: "too many levels of remote in path", ++ 72: "RPC struct is bad", ++ 73: "RPC version wrong", ++ 74: "RPC prog. not avail", ++ 75: "program version wrong", ++ 76: "bad procedure for program", ++ 77: "no locks available", ++ 78: "function not implemented", ++ 79: "inappropriate file type or format", ++ 80: "authentication error", ++ 81: "need authenticator", ++ 82: "IPsec processing failure", ++ 83: "attribute not found", ++ 84: "illegal byte sequence", ++ 85: "no medium found", ++ 86: "wrong medium type", ++ 87: "value too large to be stored in data type", ++ 88: "operation canceled", ++ 89: "identifier removed", ++ 90: "no message of desired type", ++ 91: "not supported", ++} ++ ++// Signal table ++var signals = [...]string{ ++ 1: "hangup", ++ 2: "interrupt", ++ 3: "quit", ++ 4: "illegal instruction", ++ 5: "trace/BPT trap", ++ 6: "abort trap", ++ 7: "EMT trap", ++ 8: "floating point exception", ++ 9: "killed", ++ 10: "bus error", ++ 11: "segmentation fault", ++ 12: "bad system call", ++ 13: "broken pipe", ++ 14: "alarm clock", ++ 15: "terminated", ++ 16: "urgent I/O condition", ++ 17: "stopped (signal)", ++ 18: "stopped", ++ 19: "continued", ++ 20: "child exited", ++ 21: "stopped (tty input)", ++ 22: "stopped (tty output)", ++ 23: "I/O possible", ++ 24: "cputime limit exceeded", ++ 25: "filesize limit exceeded", ++ 26: "virtual timer expired", ++ 27: "profiling timer expired", ++ 28: "window size changes", ++ 29: "information request", ++ 30: "user defined signal 1", ++ 31: "user defined signal 2", ++ 32: "thread AST", ++} +diff --git a/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go +new file mode 100644 +index 0000000..1758ecc +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go +@@ -0,0 +1,1583 @@ ++// mkerrors.sh -m64 ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build amd64,openbsd ++ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- -m64 _const.go ++ ++package unix ++ ++import "syscall" ++ ++const ( ++ AF_APPLETALK = 0x10 ++ AF_BLUETOOTH = 0x20 ++ AF_CCITT = 0xa ++ AF_CHAOS = 0x5 ++ AF_CNT = 0x15 ++ AF_COIP = 0x14 ++ AF_DATAKIT = 0x9 ++ AF_DECnet = 0xc ++ AF_DLI = 0xd ++ AF_E164 = 0x1a ++ AF_ECMA = 0x8 ++ AF_ENCAP = 0x1c ++ AF_HYLINK = 0xf ++ AF_IMPLINK = 0x3 ++ AF_INET = 0x2 ++ AF_INET6 = 0x18 ++ AF_IPX = 0x17 ++ AF_ISDN = 0x1a ++ AF_ISO = 0x7 ++ AF_KEY = 0x1e ++ AF_LAT = 0xe ++ AF_LINK = 0x12 ++ AF_LOCAL = 0x1 ++ AF_MAX = 0x24 ++ AF_MPLS = 0x21 ++ AF_NATM = 0x1b ++ AF_NS = 0x6 ++ AF_OSI = 0x7 ++ AF_PUP = 0x4 ++ AF_ROUTE = 0x11 ++ AF_SIP = 0x1d ++ AF_SNA = 0xb ++ AF_UNIX = 0x1 ++ AF_UNSPEC = 0x0 ++ ARPHRD_ETHER = 0x1 ++ ARPHRD_FRELAY = 0xf ++ ARPHRD_IEEE1394 = 0x18 ++ ARPHRD_IEEE802 = 0x6 ++ B0 = 0x0 ++ B110 = 0x6e ++ B115200 = 0x1c200 ++ B1200 = 0x4b0 ++ B134 = 0x86 ++ B14400 = 0x3840 ++ B150 = 0x96 ++ B1800 = 0x708 ++ B19200 = 0x4b00 ++ B200 = 0xc8 ++ B230400 = 0x38400 ++ B2400 = 0x960 ++ B28800 = 0x7080 ++ B300 = 0x12c ++ B38400 = 0x9600 ++ B4800 = 0x12c0 ++ B50 = 0x32 ++ B57600 = 0xe100 ++ B600 = 0x258 ++ B7200 = 0x1c20 ++ B75 = 0x4b ++ B76800 = 0x12c00 ++ B9600 = 0x2580 ++ BIOCFLUSH = 0x20004268 ++ BIOCGBLEN = 0x40044266 ++ BIOCGDIRFILT = 0x4004427c ++ BIOCGDLT = 0x4004426a ++ BIOCGDLTLIST = 0xc010427b ++ BIOCGETIF = 0x4020426b ++ BIOCGFILDROP = 0x40044278 ++ BIOCGHDRCMPLT = 0x40044274 ++ BIOCGRSIG = 0x40044273 ++ BIOCGRTIMEOUT = 0x4010426e ++ BIOCGSTATS = 0x4008426f ++ BIOCIMMEDIATE = 0x80044270 ++ BIOCLOCK = 0x20004276 ++ BIOCPROMISC = 0x20004269 ++ BIOCSBLEN = 0xc0044266 ++ BIOCSDIRFILT = 0x8004427d ++ BIOCSDLT = 0x8004427a ++ BIOCSETF = 0x80104267 ++ BIOCSETIF = 0x8020426c ++ BIOCSETWF = 0x80104277 ++ BIOCSFILDROP = 0x80044279 ++ BIOCSHDRCMPLT = 0x80044275 ++ BIOCSRSIG = 0x80044272 ++ BIOCSRTIMEOUT = 0x8010426d ++ BIOCVERSION = 0x40044271 ++ BPF_A = 0x10 ++ BPF_ABS = 0x20 ++ BPF_ADD = 0x0 ++ BPF_ALIGNMENT = 0x4 ++ BPF_ALU = 0x4 ++ BPF_AND = 0x50 ++ BPF_B = 0x10 ++ BPF_DIRECTION_IN = 0x1 ++ BPF_DIRECTION_OUT = 0x2 ++ BPF_DIV = 0x30 ++ BPF_H = 0x8 ++ BPF_IMM = 0x0 ++ BPF_IND = 0x40 ++ BPF_JA = 0x0 ++ BPF_JEQ = 0x10 ++ BPF_JGE = 0x30 ++ BPF_JGT = 0x20 ++ BPF_JMP = 0x5 ++ BPF_JSET = 0x40 ++ BPF_K = 0x0 ++ BPF_LD = 0x0 ++ BPF_LDX = 0x1 ++ BPF_LEN = 0x80 ++ BPF_LSH = 0x60 ++ BPF_MAJOR_VERSION = 0x1 ++ BPF_MAXBUFSIZE = 0x200000 ++ BPF_MAXINSNS = 0x200 ++ BPF_MEM = 0x60 ++ BPF_MEMWORDS = 0x10 ++ BPF_MINBUFSIZE = 0x20 ++ BPF_MINOR_VERSION = 0x1 ++ BPF_MISC = 0x7 ++ BPF_MSH = 0xa0 ++ BPF_MUL = 0x20 ++ BPF_NEG = 0x80 ++ BPF_OR = 0x40 ++ BPF_RELEASE = 0x30bb6 ++ BPF_RET = 0x6 ++ BPF_RSH = 0x70 ++ BPF_ST = 0x2 ++ BPF_STX = 0x3 ++ BPF_SUB = 0x10 ++ BPF_TAX = 0x0 ++ BPF_TXA = 0x80 ++ BPF_W = 0x0 ++ BPF_X = 0x8 ++ BRKINT = 0x2 ++ CFLUSH = 0xf ++ CLOCAL = 0x8000 ++ CREAD = 0x800 ++ CS5 = 0x0 ++ CS6 = 0x100 ++ CS7 = 0x200 ++ CS8 = 0x300 ++ CSIZE = 0x300 ++ CSTART = 0x11 ++ CSTATUS = 0xff ++ CSTOP = 0x13 ++ CSTOPB = 0x400 ++ CSUSP = 0x1a ++ CTL_MAXNAME = 0xc ++ CTL_NET = 0x4 ++ DIOCOSFPFLUSH = 0x2000444e ++ DLT_ARCNET = 0x7 ++ DLT_ATM_RFC1483 = 0xb ++ DLT_AX25 = 0x3 ++ DLT_CHAOS = 0x5 ++ DLT_C_HDLC = 0x68 ++ DLT_EN10MB = 0x1 ++ DLT_EN3MB = 0x2 ++ DLT_ENC = 0xd ++ DLT_FDDI = 0xa ++ DLT_IEEE802 = 0x6 ++ DLT_IEEE802_11 = 0x69 ++ DLT_IEEE802_11_RADIO = 0x7f ++ DLT_LOOP = 0xc ++ DLT_MPLS = 0xdb ++ DLT_NULL = 0x0 ++ DLT_PFLOG = 0x75 ++ DLT_PFSYNC = 0x12 ++ DLT_PPP = 0x9 ++ DLT_PPP_BSDOS = 0x10 ++ DLT_PPP_ETHER = 0x33 ++ DLT_PPP_SERIAL = 0x32 ++ DLT_PRONET = 0x4 ++ DLT_RAW = 0xe ++ DLT_SLIP = 0x8 ++ DLT_SLIP_BSDOS = 0xf ++ DT_BLK = 0x6 ++ DT_CHR = 0x2 ++ DT_DIR = 0x4 ++ DT_FIFO = 0x1 ++ DT_LNK = 0xa ++ DT_REG = 0x8 ++ DT_SOCK = 0xc ++ DT_UNKNOWN = 0x0 ++ ECHO = 0x8 ++ ECHOCTL = 0x40 ++ ECHOE = 0x2 ++ ECHOK = 0x4 ++ ECHOKE = 0x1 ++ ECHONL = 0x10 ++ ECHOPRT = 0x20 ++ EMT_TAGOVF = 0x1 ++ EMUL_ENABLED = 0x1 ++ EMUL_NATIVE = 0x2 ++ ENDRUNDISC = 0x9 ++ ETHERMIN = 0x2e ++ ETHERMTU = 0x5dc ++ ETHERTYPE_8023 = 0x4 ++ ETHERTYPE_AARP = 0x80f3 ++ ETHERTYPE_ACCTON = 0x8390 ++ ETHERTYPE_AEONIC = 0x8036 ++ ETHERTYPE_ALPHA = 0x814a ++ ETHERTYPE_AMBER = 0x6008 ++ ETHERTYPE_AMOEBA = 0x8145 ++ ETHERTYPE_AOE = 0x88a2 ++ ETHERTYPE_APOLLO = 0x80f7 ++ ETHERTYPE_APOLLODOMAIN = 0x8019 ++ ETHERTYPE_APPLETALK = 0x809b ++ ETHERTYPE_APPLITEK = 0x80c7 ++ ETHERTYPE_ARGONAUT = 0x803a ++ ETHERTYPE_ARP = 0x806 ++ ETHERTYPE_AT = 0x809b ++ ETHERTYPE_ATALK = 0x809b ++ ETHERTYPE_ATOMIC = 0x86df ++ ETHERTYPE_ATT = 0x8069 ++ ETHERTYPE_ATTSTANFORD = 0x8008 ++ ETHERTYPE_AUTOPHON = 0x806a ++ ETHERTYPE_AXIS = 0x8856 ++ ETHERTYPE_BCLOOP = 0x9003 ++ ETHERTYPE_BOFL = 0x8102 ++ ETHERTYPE_CABLETRON = 0x7034 ++ ETHERTYPE_CHAOS = 0x804 ++ ETHERTYPE_COMDESIGN = 0x806c ++ ETHERTYPE_COMPUGRAPHIC = 0x806d ++ ETHERTYPE_COUNTERPOINT = 0x8062 ++ ETHERTYPE_CRONUS = 0x8004 ++ ETHERTYPE_CRONUSVLN = 0x8003 ++ ETHERTYPE_DCA = 0x1234 ++ ETHERTYPE_DDE = 0x807b ++ ETHERTYPE_DEBNI = 0xaaaa ++ ETHERTYPE_DECAM = 0x8048 ++ ETHERTYPE_DECCUST = 0x6006 ++ ETHERTYPE_DECDIAG = 0x6005 ++ ETHERTYPE_DECDNS = 0x803c ++ ETHERTYPE_DECDTS = 0x803e ++ ETHERTYPE_DECEXPER = 0x6000 ++ ETHERTYPE_DECLAST = 0x8041 ++ ETHERTYPE_DECLTM = 0x803f ++ ETHERTYPE_DECMUMPS = 0x6009 ++ ETHERTYPE_DECNETBIOS = 0x8040 ++ ETHERTYPE_DELTACON = 0x86de ++ ETHERTYPE_DIDDLE = 0x4321 ++ ETHERTYPE_DLOG1 = 0x660 ++ ETHERTYPE_DLOG2 = 0x661 ++ ETHERTYPE_DN = 0x6003 ++ ETHERTYPE_DOGFIGHT = 0x1989 ++ ETHERTYPE_DSMD = 0x8039 ++ ETHERTYPE_ECMA = 0x803 ++ ETHERTYPE_ENCRYPT = 0x803d ++ ETHERTYPE_ES = 0x805d ++ ETHERTYPE_EXCELAN = 0x8010 ++ ETHERTYPE_EXPERDATA = 0x8049 ++ ETHERTYPE_FLIP = 0x8146 ++ ETHERTYPE_FLOWCONTROL = 0x8808 ++ ETHERTYPE_FRARP = 0x808 ++ ETHERTYPE_GENDYN = 0x8068 ++ ETHERTYPE_HAYES = 0x8130 ++ ETHERTYPE_HIPPI_FP = 0x8180 ++ ETHERTYPE_HITACHI = 0x8820 ++ ETHERTYPE_HP = 0x8005 ++ ETHERTYPE_IEEEPUP = 0xa00 ++ ETHERTYPE_IEEEPUPAT = 0xa01 ++ ETHERTYPE_IMLBL = 0x4c42 ++ ETHERTYPE_IMLBLDIAG = 0x424c ++ ETHERTYPE_IP = 0x800 ++ ETHERTYPE_IPAS = 0x876c ++ ETHERTYPE_IPV6 = 0x86dd ++ ETHERTYPE_IPX = 0x8137 ++ ETHERTYPE_IPXNEW = 0x8037 ++ ETHERTYPE_KALPANA = 0x8582 ++ ETHERTYPE_LANBRIDGE = 0x8038 ++ ETHERTYPE_LANPROBE = 0x8888 ++ ETHERTYPE_LAT = 0x6004 ++ ETHERTYPE_LBACK = 0x9000 ++ ETHERTYPE_LITTLE = 0x8060 ++ ETHERTYPE_LLDP = 0x88cc ++ ETHERTYPE_LOGICRAFT = 0x8148 ++ ETHERTYPE_LOOPBACK = 0x9000 ++ ETHERTYPE_MATRA = 0x807a ++ ETHERTYPE_MAX = 0xffff ++ ETHERTYPE_MERIT = 0x807c ++ ETHERTYPE_MICP = 0x873a ++ ETHERTYPE_MOPDL = 0x6001 ++ ETHERTYPE_MOPRC = 0x6002 ++ ETHERTYPE_MOTOROLA = 0x818d ++ ETHERTYPE_MPLS = 0x8847 ++ ETHERTYPE_MPLS_MCAST = 0x8848 ++ ETHERTYPE_MUMPS = 0x813f ++ ETHERTYPE_NBPCC = 0x3c04 ++ ETHERTYPE_NBPCLAIM = 0x3c09 ++ ETHERTYPE_NBPCLREQ = 0x3c05 ++ ETHERTYPE_NBPCLRSP = 0x3c06 ++ ETHERTYPE_NBPCREQ = 0x3c02 ++ ETHERTYPE_NBPCRSP = 0x3c03 ++ ETHERTYPE_NBPDG = 0x3c07 ++ ETHERTYPE_NBPDGB = 0x3c08 ++ ETHERTYPE_NBPDLTE = 0x3c0a ++ ETHERTYPE_NBPRAR = 0x3c0c ++ ETHERTYPE_NBPRAS = 0x3c0b ++ ETHERTYPE_NBPRST = 0x3c0d ++ ETHERTYPE_NBPSCD = 0x3c01 ++ ETHERTYPE_NBPVCD = 0x3c00 ++ ETHERTYPE_NBS = 0x802 ++ ETHERTYPE_NCD = 0x8149 ++ ETHERTYPE_NESTAR = 0x8006 ++ ETHERTYPE_NETBEUI = 0x8191 ++ ETHERTYPE_NOVELL = 0x8138 ++ ETHERTYPE_NS = 0x600 ++ ETHERTYPE_NSAT = 0x601 ++ ETHERTYPE_NSCOMPAT = 0x807 ++ ETHERTYPE_NTRAILER = 0x10 ++ ETHERTYPE_OS9 = 0x7007 ++ ETHERTYPE_OS9NET = 0x7009 ++ ETHERTYPE_PACER = 0x80c6 ++ ETHERTYPE_PAE = 0x888e ++ ETHERTYPE_PCS = 0x4242 ++ ETHERTYPE_PLANNING = 0x8044 ++ ETHERTYPE_PPP = 0x880b ++ ETHERTYPE_PPPOE = 0x8864 ++ ETHERTYPE_PPPOEDISC = 0x8863 ++ ETHERTYPE_PRIMENTS = 0x7031 ++ ETHERTYPE_PUP = 0x200 ++ ETHERTYPE_PUPAT = 0x200 ++ ETHERTYPE_QINQ = 0x88a8 ++ ETHERTYPE_RACAL = 0x7030 ++ ETHERTYPE_RATIONAL = 0x8150 ++ ETHERTYPE_RAWFR = 0x6559 ++ ETHERTYPE_RCL = 0x1995 ++ ETHERTYPE_RDP = 0x8739 ++ ETHERTYPE_RETIX = 0x80f2 ++ ETHERTYPE_REVARP = 0x8035 ++ ETHERTYPE_SCA = 0x6007 ++ ETHERTYPE_SECTRA = 0x86db ++ ETHERTYPE_SECUREDATA = 0x876d ++ ETHERTYPE_SGITW = 0x817e ++ ETHERTYPE_SG_BOUNCE = 0x8016 ++ ETHERTYPE_SG_DIAG = 0x8013 ++ ETHERTYPE_SG_NETGAMES = 0x8014 ++ ETHERTYPE_SG_RESV = 0x8015 ++ ETHERTYPE_SIMNET = 0x5208 ++ ETHERTYPE_SLOW = 0x8809 ++ ETHERTYPE_SNA = 0x80d5 ++ ETHERTYPE_SNMP = 0x814c ++ ETHERTYPE_SONIX = 0xfaf5 ++ ETHERTYPE_SPIDER = 0x809f ++ ETHERTYPE_SPRITE = 0x500 ++ ETHERTYPE_STP = 0x8181 ++ ETHERTYPE_TALARIS = 0x812b ++ ETHERTYPE_TALARISMC = 0x852b ++ ETHERTYPE_TCPCOMP = 0x876b ++ ETHERTYPE_TCPSM = 0x9002 ++ ETHERTYPE_TEC = 0x814f ++ ETHERTYPE_TIGAN = 0x802f ++ ETHERTYPE_TRAIL = 0x1000 ++ ETHERTYPE_TRANSETHER = 0x6558 ++ ETHERTYPE_TYMSHARE = 0x802e ++ ETHERTYPE_UBBST = 0x7005 ++ ETHERTYPE_UBDEBUG = 0x900 ++ ETHERTYPE_UBDIAGLOOP = 0x7002 ++ ETHERTYPE_UBDL = 0x7000 ++ ETHERTYPE_UBNIU = 0x7001 ++ ETHERTYPE_UBNMC = 0x7003 ++ ETHERTYPE_VALID = 0x1600 ++ ETHERTYPE_VARIAN = 0x80dd ++ ETHERTYPE_VAXELN = 0x803b ++ ETHERTYPE_VEECO = 0x8067 ++ ETHERTYPE_VEXP = 0x805b ++ ETHERTYPE_VGLAB = 0x8131 ++ ETHERTYPE_VINES = 0xbad ++ ETHERTYPE_VINESECHO = 0xbaf ++ ETHERTYPE_VINESLOOP = 0xbae ++ ETHERTYPE_VITAL = 0xff00 ++ ETHERTYPE_VLAN = 0x8100 ++ ETHERTYPE_VLTLMAN = 0x8080 ++ ETHERTYPE_VPROD = 0x805c ++ ETHERTYPE_VURESERVED = 0x8147 ++ ETHERTYPE_WATERLOO = 0x8130 ++ ETHERTYPE_WELLFLEET = 0x8103 ++ ETHERTYPE_X25 = 0x805 ++ ETHERTYPE_X75 = 0x801 ++ ETHERTYPE_XNSSM = 0x9001 ++ ETHERTYPE_XTP = 0x817d ++ ETHER_ADDR_LEN = 0x6 ++ ETHER_ALIGN = 0x2 ++ ETHER_CRC_LEN = 0x4 ++ ETHER_CRC_POLY_BE = 0x4c11db6 ++ ETHER_CRC_POLY_LE = 0xedb88320 ++ ETHER_HDR_LEN = 0xe ++ ETHER_MAX_DIX_LEN = 0x600 ++ ETHER_MAX_LEN = 0x5ee ++ ETHER_MIN_LEN = 0x40 ++ ETHER_TYPE_LEN = 0x2 ++ ETHER_VLAN_ENCAP_LEN = 0x4 ++ EVFILT_AIO = -0x3 ++ EVFILT_PROC = -0x5 ++ EVFILT_READ = -0x1 ++ EVFILT_SIGNAL = -0x6 ++ EVFILT_SYSCOUNT = 0x7 ++ EVFILT_TIMER = -0x7 ++ EVFILT_VNODE = -0x4 ++ EVFILT_WRITE = -0x2 ++ EV_ADD = 0x1 ++ EV_CLEAR = 0x20 ++ EV_DELETE = 0x2 ++ EV_DISABLE = 0x8 ++ EV_ENABLE = 0x4 ++ EV_EOF = 0x8000 ++ EV_ERROR = 0x4000 ++ EV_FLAG1 = 0x2000 ++ EV_ONESHOT = 0x10 ++ EV_SYSFLAGS = 0xf000 ++ EXTA = 0x4b00 ++ EXTB = 0x9600 ++ EXTPROC = 0x800 ++ FD_CLOEXEC = 0x1 ++ FD_SETSIZE = 0x400 ++ FLUSHO = 0x800000 ++ F_DUPFD = 0x0 ++ F_DUPFD_CLOEXEC = 0xa ++ F_GETFD = 0x1 ++ F_GETFL = 0x3 ++ F_GETLK = 0x7 ++ F_GETOWN = 0x5 ++ F_OK = 0x0 ++ F_RDLCK = 0x1 ++ F_SETFD = 0x2 ++ F_SETFL = 0x4 ++ F_SETLK = 0x8 ++ F_SETLKW = 0x9 ++ F_SETOWN = 0x6 ++ F_UNLCK = 0x2 ++ F_WRLCK = 0x3 ++ HUPCL = 0x4000 ++ ICANON = 0x100 ++ ICMP6_FILTER = 0x12 ++ ICRNL = 0x100 ++ IEXTEN = 0x400 ++ IFAN_ARRIVAL = 0x0 ++ IFAN_DEPARTURE = 0x1 ++ IFA_ROUTE = 0x1 ++ IFF_ALLMULTI = 0x200 ++ IFF_BROADCAST = 0x2 ++ IFF_CANTCHANGE = 0x8e52 ++ IFF_DEBUG = 0x4 ++ IFF_LINK0 = 0x1000 ++ IFF_LINK1 = 0x2000 ++ IFF_LINK2 = 0x4000 ++ IFF_LOOPBACK = 0x8 ++ IFF_MULTICAST = 0x8000 ++ IFF_NOARP = 0x80 ++ IFF_NOTRAILERS = 0x20 ++ IFF_OACTIVE = 0x400 ++ IFF_POINTOPOINT = 0x10 ++ IFF_PROMISC = 0x100 ++ IFF_RUNNING = 0x40 ++ IFF_SIMPLEX = 0x800 ++ IFF_UP = 0x1 ++ IFNAMSIZ = 0x10 ++ IFT_1822 = 0x2 ++ IFT_A12MPPSWITCH = 0x82 ++ IFT_AAL2 = 0xbb ++ IFT_AAL5 = 0x31 ++ IFT_ADSL = 0x5e ++ IFT_AFLANE8023 = 0x3b ++ IFT_AFLANE8025 = 0x3c ++ IFT_ARAP = 0x58 ++ IFT_ARCNET = 0x23 ++ IFT_ARCNETPLUS = 0x24 ++ IFT_ASYNC = 0x54 ++ IFT_ATM = 0x25 ++ IFT_ATMDXI = 0x69 ++ IFT_ATMFUNI = 0x6a ++ IFT_ATMIMA = 0x6b ++ IFT_ATMLOGICAL = 0x50 ++ IFT_ATMRADIO = 0xbd ++ IFT_ATMSUBINTERFACE = 0x86 ++ IFT_ATMVCIENDPT = 0xc2 ++ IFT_ATMVIRTUAL = 0x95 ++ IFT_BGPPOLICYACCOUNTING = 0xa2 ++ IFT_BLUETOOTH = 0xf8 ++ IFT_BRIDGE = 0xd1 ++ IFT_BSC = 0x53 ++ IFT_CARP = 0xf7 ++ IFT_CCTEMUL = 0x3d ++ IFT_CEPT = 0x13 ++ IFT_CES = 0x85 ++ IFT_CHANNEL = 0x46 ++ IFT_CNR = 0x55 ++ IFT_COFFEE = 0x84 ++ IFT_COMPOSITELINK = 0x9b ++ IFT_DCN = 0x8d ++ IFT_DIGITALPOWERLINE = 0x8a ++ IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba ++ IFT_DLSW = 0x4a ++ IFT_DOCSCABLEDOWNSTREAM = 0x80 ++ IFT_DOCSCABLEMACLAYER = 0x7f ++ IFT_DOCSCABLEUPSTREAM = 0x81 ++ IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd ++ IFT_DS0 = 0x51 ++ IFT_DS0BUNDLE = 0x52 ++ IFT_DS1FDL = 0xaa ++ IFT_DS3 = 0x1e ++ IFT_DTM = 0x8c ++ IFT_DUMMY = 0xf1 ++ IFT_DVBASILN = 0xac ++ IFT_DVBASIOUT = 0xad ++ IFT_DVBRCCDOWNSTREAM = 0x93 ++ IFT_DVBRCCMACLAYER = 0x92 ++ IFT_DVBRCCUPSTREAM = 0x94 ++ IFT_ECONET = 0xce ++ IFT_ENC = 0xf4 ++ IFT_EON = 0x19 ++ IFT_EPLRS = 0x57 ++ IFT_ESCON = 0x49 ++ IFT_ETHER = 0x6 ++ IFT_FAITH = 0xf3 ++ IFT_FAST = 0x7d ++ IFT_FASTETHER = 0x3e ++ IFT_FASTETHERFX = 0x45 ++ IFT_FDDI = 0xf ++ IFT_FIBRECHANNEL = 0x38 ++ IFT_FRAMERELAYINTERCONNECT = 0x3a ++ IFT_FRAMERELAYMPI = 0x5c ++ IFT_FRDLCIENDPT = 0xc1 ++ IFT_FRELAY = 0x20 ++ IFT_FRELAYDCE = 0x2c ++ IFT_FRF16MFRBUNDLE = 0xa3 ++ IFT_FRFORWARD = 0x9e ++ IFT_G703AT2MB = 0x43 ++ IFT_G703AT64K = 0x42 ++ IFT_GIF = 0xf0 ++ IFT_GIGABITETHERNET = 0x75 ++ IFT_GR303IDT = 0xb2 ++ IFT_GR303RDT = 0xb1 ++ IFT_H323GATEKEEPER = 0xa4 ++ IFT_H323PROXY = 0xa5 ++ IFT_HDH1822 = 0x3 ++ IFT_HDLC = 0x76 ++ IFT_HDSL2 = 0xa8 ++ IFT_HIPERLAN2 = 0xb7 ++ IFT_HIPPI = 0x2f ++ IFT_HIPPIINTERFACE = 0x39 ++ IFT_HOSTPAD = 0x5a ++ IFT_HSSI = 0x2e ++ IFT_HY = 0xe ++ IFT_IBM370PARCHAN = 0x48 ++ IFT_IDSL = 0x9a ++ IFT_IEEE1394 = 0x90 ++ IFT_IEEE80211 = 0x47 ++ IFT_IEEE80212 = 0x37 ++ IFT_IEEE8023ADLAG = 0xa1 ++ IFT_IFGSN = 0x91 ++ IFT_IMT = 0xbe ++ IFT_INFINIBAND = 0xc7 ++ IFT_INTERLEAVE = 0x7c ++ IFT_IP = 0x7e ++ IFT_IPFORWARD = 0x8e ++ IFT_IPOVERATM = 0x72 ++ IFT_IPOVERCDLC = 0x6d ++ IFT_IPOVERCLAW = 0x6e ++ IFT_IPSWITCH = 0x4e ++ IFT_ISDN = 0x3f ++ IFT_ISDNBASIC = 0x14 ++ IFT_ISDNPRIMARY = 0x15 ++ IFT_ISDNS = 0x4b ++ IFT_ISDNU = 0x4c ++ IFT_ISO88022LLC = 0x29 ++ IFT_ISO88023 = 0x7 ++ IFT_ISO88024 = 0x8 ++ IFT_ISO88025 = 0x9 ++ IFT_ISO88025CRFPINT = 0x62 ++ IFT_ISO88025DTR = 0x56 ++ IFT_ISO88025FIBER = 0x73 ++ IFT_ISO88026 = 0xa ++ IFT_ISUP = 0xb3 ++ IFT_L2VLAN = 0x87 ++ IFT_L3IPVLAN = 0x88 ++ IFT_L3IPXVLAN = 0x89 ++ IFT_LAPB = 0x10 ++ IFT_LAPD = 0x4d ++ IFT_LAPF = 0x77 ++ IFT_LINEGROUP = 0xd2 ++ IFT_LOCALTALK = 0x2a ++ IFT_LOOP = 0x18 ++ IFT_MEDIAMAILOVERIP = 0x8b ++ IFT_MFSIGLINK = 0xa7 ++ IFT_MIOX25 = 0x26 ++ IFT_MODEM = 0x30 ++ IFT_MPC = 0x71 ++ IFT_MPLS = 0xa6 ++ IFT_MPLSTUNNEL = 0x96 ++ IFT_MSDSL = 0x8f ++ IFT_MVL = 0xbf ++ IFT_MYRINET = 0x63 ++ IFT_NFAS = 0xaf ++ IFT_NSIP = 0x1b ++ IFT_OPTICALCHANNEL = 0xc3 ++ IFT_OPTICALTRANSPORT = 0xc4 ++ IFT_OTHER = 0x1 ++ IFT_P10 = 0xc ++ IFT_P80 = 0xd ++ IFT_PARA = 0x22 ++ IFT_PFLOG = 0xf5 ++ IFT_PFLOW = 0xf9 ++ IFT_PFSYNC = 0xf6 ++ IFT_PLC = 0xae ++ IFT_PON155 = 0xcf ++ IFT_PON622 = 0xd0 ++ IFT_POS = 0xab ++ IFT_PPP = 0x17 ++ IFT_PPPMULTILINKBUNDLE = 0x6c ++ IFT_PROPATM = 0xc5 ++ IFT_PROPBWAP2MP = 0xb8 ++ IFT_PROPCNLS = 0x59 ++ IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 ++ IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 ++ IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 ++ IFT_PROPMUX = 0x36 ++ IFT_PROPVIRTUAL = 0x35 ++ IFT_PROPWIRELESSP2P = 0x9d ++ IFT_PTPSERIAL = 0x16 ++ IFT_PVC = 0xf2 ++ IFT_Q2931 = 0xc9 ++ IFT_QLLC = 0x44 ++ IFT_RADIOMAC = 0xbc ++ IFT_RADSL = 0x5f ++ IFT_REACHDSL = 0xc0 ++ IFT_RFC1483 = 0x9f ++ IFT_RS232 = 0x21 ++ IFT_RSRB = 0x4f ++ IFT_SDLC = 0x11 ++ IFT_SDSL = 0x60 ++ IFT_SHDSL = 0xa9 ++ IFT_SIP = 0x1f ++ IFT_SIPSIG = 0xcc ++ IFT_SIPTG = 0xcb ++ IFT_SLIP = 0x1c ++ IFT_SMDSDXI = 0x2b ++ IFT_SMDSICIP = 0x34 ++ IFT_SONET = 0x27 ++ IFT_SONETOVERHEADCHANNEL = 0xb9 ++ IFT_SONETPATH = 0x32 ++ IFT_SONETVT = 0x33 ++ IFT_SRP = 0x97 ++ IFT_SS7SIGLINK = 0x9c ++ IFT_STACKTOSTACK = 0x6f ++ IFT_STARLAN = 0xb ++ IFT_T1 = 0x12 ++ IFT_TDLC = 0x74 ++ IFT_TELINK = 0xc8 ++ IFT_TERMPAD = 0x5b ++ IFT_TR008 = 0xb0 ++ IFT_TRANSPHDLC = 0x7b ++ IFT_TUNNEL = 0x83 ++ IFT_ULTRA = 0x1d ++ IFT_USB = 0xa0 ++ IFT_V11 = 0x40 ++ IFT_V35 = 0x2d ++ IFT_V36 = 0x41 ++ IFT_V37 = 0x78 ++ IFT_VDSL = 0x61 ++ IFT_VIRTUALIPADDRESS = 0x70 ++ IFT_VIRTUALTG = 0xca ++ IFT_VOICEDID = 0xd5 ++ IFT_VOICEEM = 0x64 ++ IFT_VOICEEMFGD = 0xd3 ++ IFT_VOICEENCAP = 0x67 ++ IFT_VOICEFGDEANA = 0xd4 ++ IFT_VOICEFXO = 0x65 ++ IFT_VOICEFXS = 0x66 ++ IFT_VOICEOVERATM = 0x98 ++ IFT_VOICEOVERCABLE = 0xc6 ++ IFT_VOICEOVERFRAMERELAY = 0x99 ++ IFT_VOICEOVERIP = 0x68 ++ IFT_X213 = 0x5d ++ IFT_X25 = 0x5 ++ IFT_X25DDN = 0x4 ++ IFT_X25HUNTGROUP = 0x7a ++ IFT_X25MLP = 0x79 ++ IFT_X25PLE = 0x28 ++ IFT_XETHER = 0x1a ++ IGNBRK = 0x1 ++ IGNCR = 0x80 ++ IGNPAR = 0x4 ++ IMAXBEL = 0x2000 ++ INLCR = 0x40 ++ INPCK = 0x10 ++ IN_CLASSA_HOST = 0xffffff ++ IN_CLASSA_MAX = 0x80 ++ IN_CLASSA_NET = 0xff000000 ++ IN_CLASSA_NSHIFT = 0x18 ++ IN_CLASSB_HOST = 0xffff ++ IN_CLASSB_MAX = 0x10000 ++ IN_CLASSB_NET = 0xffff0000 ++ IN_CLASSB_NSHIFT = 0x10 ++ IN_CLASSC_HOST = 0xff ++ IN_CLASSC_NET = 0xffffff00 ++ IN_CLASSC_NSHIFT = 0x8 ++ IN_CLASSD_HOST = 0xfffffff ++ IN_CLASSD_NET = 0xf0000000 ++ IN_CLASSD_NSHIFT = 0x1c ++ IN_LOOPBACKNET = 0x7f ++ IN_RFC3021_HOST = 0x1 ++ IN_RFC3021_NET = 0xfffffffe ++ IN_RFC3021_NSHIFT = 0x1f ++ IPPROTO_AH = 0x33 ++ IPPROTO_CARP = 0x70 ++ IPPROTO_DIVERT = 0x102 ++ IPPROTO_DIVERT_INIT = 0x2 ++ IPPROTO_DIVERT_RESP = 0x1 ++ IPPROTO_DONE = 0x101 ++ IPPROTO_DSTOPTS = 0x3c ++ IPPROTO_EGP = 0x8 ++ IPPROTO_ENCAP = 0x62 ++ IPPROTO_EON = 0x50 ++ IPPROTO_ESP = 0x32 ++ IPPROTO_ETHERIP = 0x61 ++ IPPROTO_FRAGMENT = 0x2c ++ IPPROTO_GGP = 0x3 ++ IPPROTO_GRE = 0x2f ++ IPPROTO_HOPOPTS = 0x0 ++ IPPROTO_ICMP = 0x1 ++ IPPROTO_ICMPV6 = 0x3a ++ IPPROTO_IDP = 0x16 ++ IPPROTO_IGMP = 0x2 ++ IPPROTO_IP = 0x0 ++ IPPROTO_IPCOMP = 0x6c ++ IPPROTO_IPIP = 0x4 ++ IPPROTO_IPV4 = 0x4 ++ IPPROTO_IPV6 = 0x29 ++ IPPROTO_MAX = 0x100 ++ IPPROTO_MAXID = 0x103 ++ IPPROTO_MOBILE = 0x37 ++ IPPROTO_MPLS = 0x89 ++ IPPROTO_NONE = 0x3b ++ IPPROTO_PFSYNC = 0xf0 ++ IPPROTO_PIM = 0x67 ++ IPPROTO_PUP = 0xc ++ IPPROTO_RAW = 0xff ++ IPPROTO_ROUTING = 0x2b ++ IPPROTO_RSVP = 0x2e ++ IPPROTO_TCP = 0x6 ++ IPPROTO_TP = 0x1d ++ IPPROTO_UDP = 0x11 ++ IPV6_AUTH_LEVEL = 0x35 ++ IPV6_AUTOFLOWLABEL = 0x3b ++ IPV6_CHECKSUM = 0x1a ++ IPV6_DEFAULT_MULTICAST_HOPS = 0x1 ++ IPV6_DEFAULT_MULTICAST_LOOP = 0x1 ++ IPV6_DEFHLIM = 0x40 ++ IPV6_DONTFRAG = 0x3e ++ IPV6_DSTOPTS = 0x32 ++ IPV6_ESP_NETWORK_LEVEL = 0x37 ++ IPV6_ESP_TRANS_LEVEL = 0x36 ++ IPV6_FAITH = 0x1d ++ IPV6_FLOWINFO_MASK = 0xffffff0f ++ IPV6_FLOWLABEL_MASK = 0xffff0f00 ++ IPV6_FRAGTTL = 0x78 ++ IPV6_HLIMDEC = 0x1 ++ IPV6_HOPLIMIT = 0x2f ++ IPV6_HOPOPTS = 0x31 ++ IPV6_IPCOMP_LEVEL = 0x3c ++ IPV6_JOIN_GROUP = 0xc ++ IPV6_LEAVE_GROUP = 0xd ++ IPV6_MAXHLIM = 0xff ++ IPV6_MAXPACKET = 0xffff ++ IPV6_MMTU = 0x500 ++ IPV6_MULTICAST_HOPS = 0xa ++ IPV6_MULTICAST_IF = 0x9 ++ IPV6_MULTICAST_LOOP = 0xb ++ IPV6_NEXTHOP = 0x30 ++ IPV6_OPTIONS = 0x1 ++ IPV6_PATHMTU = 0x2c ++ IPV6_PIPEX = 0x3f ++ IPV6_PKTINFO = 0x2e ++ IPV6_PORTRANGE = 0xe ++ IPV6_PORTRANGE_DEFAULT = 0x0 ++ IPV6_PORTRANGE_HIGH = 0x1 ++ IPV6_PORTRANGE_LOW = 0x2 ++ IPV6_RECVDSTOPTS = 0x28 ++ IPV6_RECVDSTPORT = 0x40 ++ IPV6_RECVHOPLIMIT = 0x25 ++ IPV6_RECVHOPOPTS = 0x27 ++ IPV6_RECVPATHMTU = 0x2b ++ IPV6_RECVPKTINFO = 0x24 ++ IPV6_RECVRTHDR = 0x26 ++ IPV6_RECVTCLASS = 0x39 ++ IPV6_RTABLE = 0x1021 ++ IPV6_RTHDR = 0x33 ++ IPV6_RTHDRDSTOPTS = 0x23 ++ IPV6_RTHDR_LOOSE = 0x0 ++ IPV6_RTHDR_STRICT = 0x1 ++ IPV6_RTHDR_TYPE_0 = 0x0 ++ IPV6_SOCKOPT_RESERVED1 = 0x3 ++ IPV6_TCLASS = 0x3d ++ IPV6_UNICAST_HOPS = 0x4 ++ IPV6_USE_MIN_MTU = 0x2a ++ IPV6_V6ONLY = 0x1b ++ IPV6_VERSION = 0x60 ++ IPV6_VERSION_MASK = 0xf0 ++ IP_ADD_MEMBERSHIP = 0xc ++ IP_AUTH_LEVEL = 0x14 ++ IP_DEFAULT_MULTICAST_LOOP = 0x1 ++ IP_DEFAULT_MULTICAST_TTL = 0x1 ++ IP_DF = 0x4000 ++ IP_DIVERTFL = 0x1022 ++ IP_DROP_MEMBERSHIP = 0xd ++ IP_ESP_NETWORK_LEVEL = 0x16 ++ IP_ESP_TRANS_LEVEL = 0x15 ++ IP_HDRINCL = 0x2 ++ IP_IPCOMP_LEVEL = 0x1d ++ IP_IPSECFLOWINFO = 0x24 ++ IP_IPSEC_LOCAL_AUTH = 0x1b ++ IP_IPSEC_LOCAL_CRED = 0x19 ++ IP_IPSEC_LOCAL_ID = 0x17 ++ IP_IPSEC_REMOTE_AUTH = 0x1c ++ IP_IPSEC_REMOTE_CRED = 0x1a ++ IP_IPSEC_REMOTE_ID = 0x18 ++ IP_MAXPACKET = 0xffff ++ IP_MAX_MEMBERSHIPS = 0xfff ++ IP_MF = 0x2000 ++ IP_MINTTL = 0x20 ++ IP_MIN_MEMBERSHIPS = 0xf ++ IP_MSS = 0x240 ++ IP_MULTICAST_IF = 0x9 ++ IP_MULTICAST_LOOP = 0xb ++ IP_MULTICAST_TTL = 0xa ++ IP_OFFMASK = 0x1fff ++ IP_OPTIONS = 0x1 ++ IP_PIPEX = 0x22 ++ IP_PORTRANGE = 0x13 ++ IP_PORTRANGE_DEFAULT = 0x0 ++ IP_PORTRANGE_HIGH = 0x1 ++ IP_PORTRANGE_LOW = 0x2 ++ IP_RECVDSTADDR = 0x7 ++ IP_RECVDSTPORT = 0x21 ++ IP_RECVIF = 0x1e ++ IP_RECVOPTS = 0x5 ++ IP_RECVRETOPTS = 0x6 ++ IP_RECVRTABLE = 0x23 ++ IP_RECVTTL = 0x1f ++ IP_RETOPTS = 0x8 ++ IP_RF = 0x8000 ++ IP_RTABLE = 0x1021 ++ IP_TOS = 0x3 ++ IP_TTL = 0x4 ++ ISIG = 0x80 ++ ISTRIP = 0x20 ++ IXANY = 0x800 ++ IXOFF = 0x400 ++ IXON = 0x200 ++ LCNT_OVERLOAD_FLUSH = 0x6 ++ LOCK_EX = 0x2 ++ LOCK_NB = 0x4 ++ LOCK_SH = 0x1 ++ LOCK_UN = 0x8 ++ MADV_DONTNEED = 0x4 ++ MADV_FREE = 0x6 ++ MADV_NORMAL = 0x0 ++ MADV_RANDOM = 0x1 ++ MADV_SEQUENTIAL = 0x2 ++ MADV_SPACEAVAIL = 0x5 ++ MADV_WILLNEED = 0x3 ++ MAP_ANON = 0x1000 ++ MAP_COPY = 0x4 ++ MAP_FILE = 0x0 ++ MAP_FIXED = 0x10 ++ MAP_FLAGMASK = 0x1ff7 ++ MAP_HASSEMAPHORE = 0x200 ++ MAP_INHERIT = 0x80 ++ MAP_INHERIT_COPY = 0x1 ++ MAP_INHERIT_DONATE_COPY = 0x3 ++ MAP_INHERIT_NONE = 0x2 ++ MAP_INHERIT_SHARE = 0x0 ++ MAP_NOEXTEND = 0x100 ++ MAP_NORESERVE = 0x40 ++ MAP_PRIVATE = 0x2 ++ MAP_RENAME = 0x20 ++ MAP_SHARED = 0x1 ++ MAP_TRYFIXED = 0x400 ++ MCL_CURRENT = 0x1 ++ MCL_FUTURE = 0x2 ++ MSG_BCAST = 0x100 ++ MSG_CTRUNC = 0x20 ++ MSG_DONTROUTE = 0x4 ++ MSG_DONTWAIT = 0x80 ++ MSG_EOR = 0x8 ++ MSG_MCAST = 0x200 ++ MSG_NOSIGNAL = 0x400 ++ MSG_OOB = 0x1 ++ MSG_PEEK = 0x2 ++ MSG_TRUNC = 0x10 ++ MSG_WAITALL = 0x40 ++ MS_ASYNC = 0x1 ++ MS_INVALIDATE = 0x4 ++ MS_SYNC = 0x2 ++ NAME_MAX = 0xff ++ NET_RT_DUMP = 0x1 ++ NET_RT_FLAGS = 0x2 ++ NET_RT_IFLIST = 0x3 ++ NET_RT_MAXID = 0x6 ++ NET_RT_STATS = 0x4 ++ NET_RT_TABLE = 0x5 ++ NOFLSH = 0x80000000 ++ NOTE_ATTRIB = 0x8 ++ NOTE_CHILD = 0x4 ++ NOTE_DELETE = 0x1 ++ NOTE_EOF = 0x2 ++ NOTE_EXEC = 0x20000000 ++ NOTE_EXIT = 0x80000000 ++ NOTE_EXTEND = 0x4 ++ NOTE_FORK = 0x40000000 ++ NOTE_LINK = 0x10 ++ NOTE_LOWAT = 0x1 ++ NOTE_PCTRLMASK = 0xf0000000 ++ NOTE_PDATAMASK = 0xfffff ++ NOTE_RENAME = 0x20 ++ NOTE_REVOKE = 0x40 ++ NOTE_TRACK = 0x1 ++ NOTE_TRACKERR = 0x2 ++ NOTE_TRUNCATE = 0x80 ++ NOTE_WRITE = 0x2 ++ OCRNL = 0x10 ++ ONLCR = 0x2 ++ ONLRET = 0x80 ++ ONOCR = 0x40 ++ ONOEOT = 0x8 ++ OPOST = 0x1 ++ O_ACCMODE = 0x3 ++ O_APPEND = 0x8 ++ O_ASYNC = 0x40 ++ O_CLOEXEC = 0x10000 ++ O_CREAT = 0x200 ++ O_DIRECTORY = 0x20000 ++ O_DSYNC = 0x80 ++ O_EXCL = 0x800 ++ O_EXLOCK = 0x20 ++ O_FSYNC = 0x80 ++ O_NDELAY = 0x4 ++ O_NOCTTY = 0x8000 ++ O_NOFOLLOW = 0x100 ++ O_NONBLOCK = 0x4 ++ O_RDONLY = 0x0 ++ O_RDWR = 0x2 ++ O_RSYNC = 0x80 ++ O_SHLOCK = 0x10 ++ O_SYNC = 0x80 ++ O_TRUNC = 0x400 ++ O_WRONLY = 0x1 ++ PARENB = 0x1000 ++ PARMRK = 0x8 ++ PARODD = 0x2000 ++ PENDIN = 0x20000000 ++ PF_FLUSH = 0x1 ++ PRIO_PGRP = 0x1 ++ PRIO_PROCESS = 0x0 ++ PRIO_USER = 0x2 ++ PROT_EXEC = 0x4 ++ PROT_NONE = 0x0 ++ PROT_READ = 0x1 ++ PROT_WRITE = 0x2 ++ RLIMIT_CORE = 0x4 ++ RLIMIT_CPU = 0x0 ++ RLIMIT_DATA = 0x2 ++ RLIMIT_FSIZE = 0x1 ++ RLIMIT_NOFILE = 0x8 ++ RLIMIT_STACK = 0x3 ++ RLIM_INFINITY = 0x7fffffffffffffff ++ RTAX_AUTHOR = 0x6 ++ RTAX_BRD = 0x7 ++ RTAX_DST = 0x0 ++ RTAX_GATEWAY = 0x1 ++ RTAX_GENMASK = 0x3 ++ RTAX_IFA = 0x5 ++ RTAX_IFP = 0x4 ++ RTAX_LABEL = 0xa ++ RTAX_MAX = 0xb ++ RTAX_NETMASK = 0x2 ++ RTAX_SRC = 0x8 ++ RTAX_SRCMASK = 0x9 ++ RTA_AUTHOR = 0x40 ++ RTA_BRD = 0x80 ++ RTA_DST = 0x1 ++ RTA_GATEWAY = 0x2 ++ RTA_GENMASK = 0x8 ++ RTA_IFA = 0x20 ++ RTA_IFP = 0x10 ++ RTA_LABEL = 0x400 ++ RTA_NETMASK = 0x4 ++ RTA_SRC = 0x100 ++ RTA_SRCMASK = 0x200 ++ RTF_ANNOUNCE = 0x4000 ++ RTF_BLACKHOLE = 0x1000 ++ RTF_CLONED = 0x10000 ++ RTF_CLONING = 0x100 ++ RTF_DONE = 0x40 ++ RTF_DYNAMIC = 0x10 ++ RTF_FMASK = 0x10f808 ++ RTF_GATEWAY = 0x2 ++ RTF_HOST = 0x4 ++ RTF_LLINFO = 0x400 ++ RTF_MASK = 0x80 ++ RTF_MODIFIED = 0x20 ++ RTF_MPATH = 0x40000 ++ RTF_MPLS = 0x100000 ++ RTF_PERMANENT_ARP = 0x2000 ++ RTF_PROTO1 = 0x8000 ++ RTF_PROTO2 = 0x4000 ++ RTF_PROTO3 = 0x2000 ++ RTF_REJECT = 0x8 ++ RTF_SOURCE = 0x20000 ++ RTF_STATIC = 0x800 ++ RTF_TUNNEL = 0x100000 ++ RTF_UP = 0x1 ++ RTF_USETRAILERS = 0x8000 ++ RTF_XRESOLVE = 0x200 ++ RTM_ADD = 0x1 ++ RTM_CHANGE = 0x3 ++ RTM_DELADDR = 0xd ++ RTM_DELETE = 0x2 ++ RTM_DESYNC = 0x10 ++ RTM_GET = 0x4 ++ RTM_IFANNOUNCE = 0xf ++ RTM_IFINFO = 0xe ++ RTM_LOCK = 0x8 ++ RTM_LOSING = 0x5 ++ RTM_MAXSIZE = 0x800 ++ RTM_MISS = 0x7 ++ RTM_NEWADDR = 0xc ++ RTM_REDIRECT = 0x6 ++ RTM_RESOLVE = 0xb ++ RTM_RTTUNIT = 0xf4240 ++ RTM_VERSION = 0x5 ++ RTV_EXPIRE = 0x4 ++ RTV_HOPCOUNT = 0x2 ++ RTV_MTU = 0x1 ++ RTV_RPIPE = 0x8 ++ RTV_RTT = 0x40 ++ RTV_RTTVAR = 0x80 ++ RTV_SPIPE = 0x10 ++ RTV_SSTHRESH = 0x20 ++ RT_TABLEID_MAX = 0xff ++ RUSAGE_CHILDREN = -0x1 ++ RUSAGE_SELF = 0x0 ++ RUSAGE_THREAD = 0x1 ++ SCM_RIGHTS = 0x1 ++ SCM_TIMESTAMP = 0x4 ++ SHUT_RD = 0x0 ++ SHUT_RDWR = 0x2 ++ SHUT_WR = 0x1 ++ SIOCADDMULTI = 0x80206931 ++ SIOCAIFADDR = 0x8040691a ++ SIOCAIFGROUP = 0x80286987 ++ SIOCALIFADDR = 0x8218691c ++ SIOCATMARK = 0x40047307 ++ SIOCBRDGADD = 0x8058693c ++ SIOCBRDGADDS = 0x80586941 ++ SIOCBRDGARL = 0x806e694d ++ SIOCBRDGDADDR = 0x81286947 ++ SIOCBRDGDEL = 0x8058693d ++ SIOCBRDGDELS = 0x80586942 ++ SIOCBRDGFLUSH = 0x80586948 ++ SIOCBRDGFRL = 0x806e694e ++ SIOCBRDGGCACHE = 0xc0146941 ++ SIOCBRDGGFD = 0xc0146952 ++ SIOCBRDGGHT = 0xc0146951 ++ SIOCBRDGGIFFLGS = 0xc058693e ++ SIOCBRDGGMA = 0xc0146953 ++ SIOCBRDGGPARAM = 0xc0406958 ++ SIOCBRDGGPRI = 0xc0146950 ++ SIOCBRDGGRL = 0xc030694f ++ SIOCBRDGGSIFS = 0xc058693c ++ SIOCBRDGGTO = 0xc0146946 ++ SIOCBRDGIFS = 0xc0586942 ++ SIOCBRDGRTS = 0xc0206943 ++ SIOCBRDGSADDR = 0xc1286944 ++ SIOCBRDGSCACHE = 0x80146940 ++ SIOCBRDGSFD = 0x80146952 ++ SIOCBRDGSHT = 0x80146951 ++ SIOCBRDGSIFCOST = 0x80586955 ++ SIOCBRDGSIFFLGS = 0x8058693f ++ SIOCBRDGSIFPRIO = 0x80586954 ++ SIOCBRDGSMA = 0x80146953 ++ SIOCBRDGSPRI = 0x80146950 ++ SIOCBRDGSPROTO = 0x8014695a ++ SIOCBRDGSTO = 0x80146945 ++ SIOCBRDGSTXHC = 0x80146959 ++ SIOCDELMULTI = 0x80206932 ++ SIOCDIFADDR = 0x80206919 ++ SIOCDIFGROUP = 0x80286989 ++ SIOCDIFPHYADDR = 0x80206949 ++ SIOCDLIFADDR = 0x8218691e ++ SIOCGETKALIVE = 0xc01869a4 ++ SIOCGETLABEL = 0x8020699a ++ SIOCGETPFLOW = 0xc02069fe ++ SIOCGETPFSYNC = 0xc02069f8 ++ SIOCGETSGCNT = 0xc0207534 ++ SIOCGETVIFCNT = 0xc0287533 ++ SIOCGETVLAN = 0xc0206990 ++ SIOCGHIWAT = 0x40047301 ++ SIOCGIFADDR = 0xc0206921 ++ SIOCGIFASYNCMAP = 0xc020697c ++ SIOCGIFBRDADDR = 0xc0206923 ++ SIOCGIFCONF = 0xc0106924 ++ SIOCGIFDATA = 0xc020691b ++ SIOCGIFDESCR = 0xc0206981 ++ SIOCGIFDSTADDR = 0xc0206922 ++ SIOCGIFFLAGS = 0xc0206911 ++ SIOCGIFGATTR = 0xc028698b ++ SIOCGIFGENERIC = 0xc020693a ++ SIOCGIFGMEMB = 0xc028698a ++ SIOCGIFGROUP = 0xc0286988 ++ SIOCGIFHARDMTU = 0xc02069a5 ++ SIOCGIFMEDIA = 0xc0306936 ++ SIOCGIFMETRIC = 0xc0206917 ++ SIOCGIFMTU = 0xc020697e ++ SIOCGIFNETMASK = 0xc0206925 ++ SIOCGIFPDSTADDR = 0xc0206948 ++ SIOCGIFPRIORITY = 0xc020699c ++ SIOCGIFPSRCADDR = 0xc0206947 ++ SIOCGIFRDOMAIN = 0xc02069a0 ++ SIOCGIFRTLABEL = 0xc0206983 ++ SIOCGIFTIMESLOT = 0xc0206986 ++ SIOCGIFXFLAGS = 0xc020699e ++ SIOCGLIFADDR = 0xc218691d ++ SIOCGLIFPHYADDR = 0xc218694b ++ SIOCGLIFPHYRTABLE = 0xc02069a2 ++ SIOCGLIFPHYTTL = 0xc02069a9 ++ SIOCGLOWAT = 0x40047303 ++ SIOCGPGRP = 0x40047309 ++ SIOCGSPPPPARAMS = 0xc0206994 ++ SIOCGVH = 0xc02069f6 ++ SIOCGVNETID = 0xc02069a7 ++ SIOCIFCREATE = 0x8020697a ++ SIOCIFDESTROY = 0x80206979 ++ SIOCIFGCLONERS = 0xc0106978 ++ SIOCSETKALIVE = 0x801869a3 ++ SIOCSETLABEL = 0x80206999 ++ SIOCSETPFLOW = 0x802069fd ++ SIOCSETPFSYNC = 0x802069f7 ++ SIOCSETVLAN = 0x8020698f ++ SIOCSHIWAT = 0x80047300 ++ SIOCSIFADDR = 0x8020690c ++ SIOCSIFASYNCMAP = 0x8020697d ++ SIOCSIFBRDADDR = 0x80206913 ++ SIOCSIFDESCR = 0x80206980 ++ SIOCSIFDSTADDR = 0x8020690e ++ SIOCSIFFLAGS = 0x80206910 ++ SIOCSIFGATTR = 0x8028698c ++ SIOCSIFGENERIC = 0x80206939 ++ SIOCSIFLLADDR = 0x8020691f ++ SIOCSIFMEDIA = 0xc0206935 ++ SIOCSIFMETRIC = 0x80206918 ++ SIOCSIFMTU = 0x8020697f ++ SIOCSIFNETMASK = 0x80206916 ++ SIOCSIFPHYADDR = 0x80406946 ++ SIOCSIFPRIORITY = 0x8020699b ++ SIOCSIFRDOMAIN = 0x8020699f ++ SIOCSIFRTLABEL = 0x80206982 ++ SIOCSIFTIMESLOT = 0x80206985 ++ SIOCSIFXFLAGS = 0x8020699d ++ SIOCSLIFPHYADDR = 0x8218694a ++ SIOCSLIFPHYRTABLE = 0x802069a1 ++ SIOCSLIFPHYTTL = 0x802069a8 ++ SIOCSLOWAT = 0x80047302 ++ SIOCSPGRP = 0x80047308 ++ SIOCSSPPPPARAMS = 0x80206993 ++ SIOCSVH = 0xc02069f5 ++ SIOCSVNETID = 0x802069a6 ++ SOCK_DGRAM = 0x2 ++ SOCK_RAW = 0x3 ++ SOCK_RDM = 0x4 ++ SOCK_SEQPACKET = 0x5 ++ SOCK_STREAM = 0x1 ++ SOL_SOCKET = 0xffff ++ SOMAXCONN = 0x80 ++ SO_ACCEPTCONN = 0x2 ++ SO_BINDANY = 0x1000 ++ SO_BROADCAST = 0x20 ++ SO_DEBUG = 0x1 ++ SO_DONTROUTE = 0x10 ++ SO_ERROR = 0x1007 ++ SO_KEEPALIVE = 0x8 ++ SO_LINGER = 0x80 ++ SO_NETPROC = 0x1020 ++ SO_OOBINLINE = 0x100 ++ SO_PEERCRED = 0x1022 ++ SO_RCVBUF = 0x1002 ++ SO_RCVLOWAT = 0x1004 ++ SO_RCVTIMEO = 0x1006 ++ SO_REUSEADDR = 0x4 ++ SO_REUSEPORT = 0x200 ++ SO_RTABLE = 0x1021 ++ SO_SNDBUF = 0x1001 ++ SO_SNDLOWAT = 0x1003 ++ SO_SNDTIMEO = 0x1005 ++ SO_SPLICE = 0x1023 ++ SO_TIMESTAMP = 0x800 ++ SO_TYPE = 0x1008 ++ SO_USELOOPBACK = 0x40 ++ TCIFLUSH = 0x1 ++ TCIOFLUSH = 0x3 ++ TCOFLUSH = 0x2 ++ TCP_MAXBURST = 0x4 ++ TCP_MAXSEG = 0x2 ++ TCP_MAXWIN = 0xffff ++ TCP_MAX_SACK = 0x3 ++ TCP_MAX_WINSHIFT = 0xe ++ TCP_MD5SIG = 0x4 ++ TCP_MSS = 0x200 ++ TCP_NODELAY = 0x1 ++ TCP_NOPUSH = 0x10 ++ TCP_NSTATES = 0xb ++ TCP_SACK_ENABLE = 0x8 ++ TCSAFLUSH = 0x2 ++ TIOCCBRK = 0x2000747a ++ TIOCCDTR = 0x20007478 ++ TIOCCONS = 0x80047462 ++ TIOCDRAIN = 0x2000745e ++ TIOCEXCL = 0x2000740d ++ TIOCEXT = 0x80047460 ++ TIOCFLAG_CLOCAL = 0x2 ++ TIOCFLAG_CRTSCTS = 0x4 ++ TIOCFLAG_MDMBUF = 0x8 ++ TIOCFLAG_PPS = 0x10 ++ TIOCFLAG_SOFTCAR = 0x1 ++ TIOCFLUSH = 0x80047410 ++ TIOCGETA = 0x402c7413 ++ TIOCGETD = 0x4004741a ++ TIOCGFLAGS = 0x4004745d ++ TIOCGPGRP = 0x40047477 ++ TIOCGSID = 0x40047463 ++ TIOCGTSTAMP = 0x4010745b ++ TIOCGWINSZ = 0x40087468 ++ TIOCMBIC = 0x8004746b ++ TIOCMBIS = 0x8004746c ++ TIOCMGET = 0x4004746a ++ TIOCMODG = 0x4004746a ++ TIOCMODS = 0x8004746d ++ TIOCMSET = 0x8004746d ++ TIOCM_CAR = 0x40 ++ TIOCM_CD = 0x40 ++ TIOCM_CTS = 0x20 ++ TIOCM_DSR = 0x100 ++ TIOCM_DTR = 0x2 ++ TIOCM_LE = 0x1 ++ TIOCM_RI = 0x80 ++ TIOCM_RNG = 0x80 ++ TIOCM_RTS = 0x4 ++ TIOCM_SR = 0x10 ++ TIOCM_ST = 0x8 ++ TIOCNOTTY = 0x20007471 ++ TIOCNXCL = 0x2000740e ++ TIOCOUTQ = 0x40047473 ++ TIOCPKT = 0x80047470 ++ TIOCPKT_DATA = 0x0 ++ TIOCPKT_DOSTOP = 0x20 ++ TIOCPKT_FLUSHREAD = 0x1 ++ TIOCPKT_FLUSHWRITE = 0x2 ++ TIOCPKT_IOCTL = 0x40 ++ TIOCPKT_NOSTOP = 0x10 ++ TIOCPKT_START = 0x8 ++ TIOCPKT_STOP = 0x4 ++ TIOCREMOTE = 0x80047469 ++ TIOCSBRK = 0x2000747b ++ TIOCSCTTY = 0x20007461 ++ TIOCSDTR = 0x20007479 ++ TIOCSETA = 0x802c7414 ++ TIOCSETAF = 0x802c7416 ++ TIOCSETAW = 0x802c7415 ++ TIOCSETD = 0x8004741b ++ TIOCSFLAGS = 0x8004745c ++ TIOCSIG = 0x8004745f ++ TIOCSPGRP = 0x80047476 ++ TIOCSTART = 0x2000746e ++ TIOCSTAT = 0x80047465 ++ TIOCSTI = 0x80017472 ++ TIOCSTOP = 0x2000746f ++ TIOCSTSTAMP = 0x8008745a ++ TIOCSWINSZ = 0x80087467 ++ TIOCUCNTL = 0x80047466 ++ TOSTOP = 0x400000 ++ VDISCARD = 0xf ++ VDSUSP = 0xb ++ VEOF = 0x0 ++ VEOL = 0x1 ++ VEOL2 = 0x2 ++ VERASE = 0x3 ++ VINTR = 0x8 ++ VKILL = 0x5 ++ VLNEXT = 0xe ++ VMIN = 0x10 ++ VQUIT = 0x9 ++ VREPRINT = 0x6 ++ VSTART = 0xc ++ VSTATUS = 0x12 ++ VSTOP = 0xd ++ VSUSP = 0xa ++ VTIME = 0x11 ++ VWERASE = 0x4 ++ WALTSIG = 0x4 ++ WCONTINUED = 0x8 ++ WCOREFLAG = 0x80 ++ WNOHANG = 0x1 ++ WSTOPPED = 0x7f ++ WUNTRACED = 0x2 ++) ++ ++// Errors ++const ( ++ E2BIG = syscall.Errno(0x7) ++ EACCES = syscall.Errno(0xd) ++ EADDRINUSE = syscall.Errno(0x30) ++ EADDRNOTAVAIL = syscall.Errno(0x31) ++ EAFNOSUPPORT = syscall.Errno(0x2f) ++ EAGAIN = syscall.Errno(0x23) ++ EALREADY = syscall.Errno(0x25) ++ EAUTH = syscall.Errno(0x50) ++ EBADF = syscall.Errno(0x9) ++ EBADRPC = syscall.Errno(0x48) ++ EBUSY = syscall.Errno(0x10) ++ ECANCELED = syscall.Errno(0x58) ++ ECHILD = syscall.Errno(0xa) ++ ECONNABORTED = syscall.Errno(0x35) ++ ECONNREFUSED = syscall.Errno(0x3d) ++ ECONNRESET = syscall.Errno(0x36) ++ EDEADLK = syscall.Errno(0xb) ++ EDESTADDRREQ = syscall.Errno(0x27) ++ EDOM = syscall.Errno(0x21) ++ EDQUOT = syscall.Errno(0x45) ++ EEXIST = syscall.Errno(0x11) ++ EFAULT = syscall.Errno(0xe) ++ EFBIG = syscall.Errno(0x1b) ++ EFTYPE = syscall.Errno(0x4f) ++ EHOSTDOWN = syscall.Errno(0x40) ++ EHOSTUNREACH = syscall.Errno(0x41) ++ EIDRM = syscall.Errno(0x59) ++ EILSEQ = syscall.Errno(0x54) ++ EINPROGRESS = syscall.Errno(0x24) ++ EINTR = syscall.Errno(0x4) ++ EINVAL = syscall.Errno(0x16) ++ EIO = syscall.Errno(0x5) ++ EIPSEC = syscall.Errno(0x52) ++ EISCONN = syscall.Errno(0x38) ++ EISDIR = syscall.Errno(0x15) ++ ELAST = syscall.Errno(0x5b) ++ ELOOP = syscall.Errno(0x3e) ++ EMEDIUMTYPE = syscall.Errno(0x56) ++ EMFILE = syscall.Errno(0x18) ++ EMLINK = syscall.Errno(0x1f) ++ EMSGSIZE = syscall.Errno(0x28) ++ ENAMETOOLONG = syscall.Errno(0x3f) ++ ENEEDAUTH = syscall.Errno(0x51) ++ ENETDOWN = syscall.Errno(0x32) ++ ENETRESET = syscall.Errno(0x34) ++ ENETUNREACH = syscall.Errno(0x33) ++ ENFILE = syscall.Errno(0x17) ++ ENOATTR = syscall.Errno(0x53) ++ ENOBUFS = syscall.Errno(0x37) ++ ENODEV = syscall.Errno(0x13) ++ ENOENT = syscall.Errno(0x2) ++ ENOEXEC = syscall.Errno(0x8) ++ ENOLCK = syscall.Errno(0x4d) ++ ENOMEDIUM = syscall.Errno(0x55) ++ ENOMEM = syscall.Errno(0xc) ++ ENOMSG = syscall.Errno(0x5a) ++ ENOPROTOOPT = syscall.Errno(0x2a) ++ ENOSPC = syscall.Errno(0x1c) ++ ENOSYS = syscall.Errno(0x4e) ++ ENOTBLK = syscall.Errno(0xf) ++ ENOTCONN = syscall.Errno(0x39) ++ ENOTDIR = syscall.Errno(0x14) ++ ENOTEMPTY = syscall.Errno(0x42) ++ ENOTSOCK = syscall.Errno(0x26) ++ ENOTSUP = syscall.Errno(0x5b) ++ ENOTTY = syscall.Errno(0x19) ++ ENXIO = syscall.Errno(0x6) ++ EOPNOTSUPP = syscall.Errno(0x2d) ++ EOVERFLOW = syscall.Errno(0x57) ++ EPERM = syscall.Errno(0x1) ++ EPFNOSUPPORT = syscall.Errno(0x2e) ++ EPIPE = syscall.Errno(0x20) ++ EPROCLIM = syscall.Errno(0x43) ++ EPROCUNAVAIL = syscall.Errno(0x4c) ++ EPROGMISMATCH = syscall.Errno(0x4b) ++ EPROGUNAVAIL = syscall.Errno(0x4a) ++ EPROTONOSUPPORT = syscall.Errno(0x2b) ++ EPROTOTYPE = syscall.Errno(0x29) ++ ERANGE = syscall.Errno(0x22) ++ EREMOTE = syscall.Errno(0x47) ++ EROFS = syscall.Errno(0x1e) ++ ERPCMISMATCH = syscall.Errno(0x49) ++ ESHUTDOWN = syscall.Errno(0x3a) ++ ESOCKTNOSUPPORT = syscall.Errno(0x2c) ++ ESPIPE = syscall.Errno(0x1d) ++ ESRCH = syscall.Errno(0x3) ++ ESTALE = syscall.Errno(0x46) ++ ETIMEDOUT = syscall.Errno(0x3c) ++ ETOOMANYREFS = syscall.Errno(0x3b) ++ ETXTBSY = syscall.Errno(0x1a) ++ EUSERS = syscall.Errno(0x44) ++ EWOULDBLOCK = syscall.Errno(0x23) ++ EXDEV = syscall.Errno(0x12) ++) ++ ++// Signals ++const ( ++ SIGABRT = syscall.Signal(0x6) ++ SIGALRM = syscall.Signal(0xe) ++ SIGBUS = syscall.Signal(0xa) ++ SIGCHLD = syscall.Signal(0x14) ++ SIGCONT = syscall.Signal(0x13) ++ SIGEMT = syscall.Signal(0x7) ++ SIGFPE = syscall.Signal(0x8) ++ SIGHUP = syscall.Signal(0x1) ++ SIGILL = syscall.Signal(0x4) ++ SIGINFO = syscall.Signal(0x1d) ++ SIGINT = syscall.Signal(0x2) ++ SIGIO = syscall.Signal(0x17) ++ SIGIOT = syscall.Signal(0x6) ++ SIGKILL = syscall.Signal(0x9) ++ SIGPIPE = syscall.Signal(0xd) ++ SIGPROF = syscall.Signal(0x1b) ++ SIGQUIT = syscall.Signal(0x3) ++ SIGSEGV = syscall.Signal(0xb) ++ SIGSTOP = syscall.Signal(0x11) ++ SIGSYS = syscall.Signal(0xc) ++ SIGTERM = syscall.Signal(0xf) ++ SIGTHR = syscall.Signal(0x20) ++ SIGTRAP = syscall.Signal(0x5) ++ SIGTSTP = syscall.Signal(0x12) ++ SIGTTIN = syscall.Signal(0x15) ++ SIGTTOU = syscall.Signal(0x16) ++ SIGURG = syscall.Signal(0x10) ++ SIGUSR1 = syscall.Signal(0x1e) ++ SIGUSR2 = syscall.Signal(0x1f) ++ SIGVTALRM = syscall.Signal(0x1a) ++ SIGWINCH = syscall.Signal(0x1c) ++ SIGXCPU = syscall.Signal(0x18) ++ SIGXFSZ = syscall.Signal(0x19) ++) ++ ++// Error table ++var errors = [...]string{ ++ 1: "operation not permitted", ++ 2: "no such file or directory", ++ 3: "no such process", ++ 4: "interrupted system call", ++ 5: "input/output error", ++ 6: "device not configured", ++ 7: "argument list too long", ++ 8: "exec format error", ++ 9: "bad file descriptor", ++ 10: "no child processes", ++ 11: "resource deadlock avoided", ++ 12: "cannot allocate memory", ++ 13: "permission denied", ++ 14: "bad address", ++ 15: "block device required", ++ 16: "device busy", ++ 17: "file exists", ++ 18: "cross-device link", ++ 19: "operation not supported by device", ++ 20: "not a directory", ++ 21: "is a directory", ++ 22: "invalid argument", ++ 23: "too many open files in system", ++ 24: "too many open files", ++ 25: "inappropriate ioctl for device", ++ 26: "text file busy", ++ 27: "file too large", ++ 28: "no space left on device", ++ 29: "illegal seek", ++ 30: "read-only file system", ++ 31: "too many links", ++ 32: "broken pipe", ++ 33: "numerical argument out of domain", ++ 34: "result too large", ++ 35: "resource temporarily unavailable", ++ 36: "operation now in progress", ++ 37: "operation already in progress", ++ 38: "socket operation on non-socket", ++ 39: "destination address required", ++ 40: "message too long", ++ 41: "protocol wrong type for socket", ++ 42: "protocol not available", ++ 43: "protocol not supported", ++ 44: "socket type not supported", ++ 45: "operation not supported", ++ 46: "protocol family not supported", ++ 47: "address family not supported by protocol family", ++ 48: "address already in use", ++ 49: "can't assign requested address", ++ 50: "network is down", ++ 51: "network is unreachable", ++ 52: "network dropped connection on reset", ++ 53: "software caused connection abort", ++ 54: "connection reset by peer", ++ 55: "no buffer space available", ++ 56: "socket is already connected", ++ 57: "socket is not connected", ++ 58: "can't send after socket shutdown", ++ 59: "too many references: can't splice", ++ 60: "connection timed out", ++ 61: "connection refused", ++ 62: "too many levels of symbolic links", ++ 63: "file name too long", ++ 64: "host is down", ++ 65: "no route to host", ++ 66: "directory not empty", ++ 67: "too many processes", ++ 68: "too many users", ++ 69: "disc quota exceeded", ++ 70: "stale NFS file handle", ++ 71: "too many levels of remote in path", ++ 72: "RPC struct is bad", ++ 73: "RPC version wrong", ++ 74: "RPC prog. not avail", ++ 75: "program version wrong", ++ 76: "bad procedure for program", ++ 77: "no locks available", ++ 78: "function not implemented", ++ 79: "inappropriate file type or format", ++ 80: "authentication error", ++ 81: "need authenticator", ++ 82: "IPsec processing failure", ++ 83: "attribute not found", ++ 84: "illegal byte sequence", ++ 85: "no medium found", ++ 86: "wrong medium type", ++ 87: "value too large to be stored in data type", ++ 88: "operation canceled", ++ 89: "identifier removed", ++ 90: "no message of desired type", ++ 91: "not supported", ++} ++ ++// Signal table ++var signals = [...]string{ ++ 1: "hangup", ++ 2: "interrupt", ++ 3: "quit", ++ 4: "illegal instruction", ++ 5: "trace/BPT trap", ++ 6: "abort trap", ++ 7: "EMT trap", ++ 8: "floating point exception", ++ 9: "killed", ++ 10: "bus error", ++ 11: "segmentation fault", ++ 12: "bad system call", ++ 13: "broken pipe", ++ 14: "alarm clock", ++ 15: "terminated", ++ 16: "urgent I/O condition", ++ 17: "stopped (signal)", ++ 18: "stopped", ++ 19: "continued", ++ 20: "child exited", ++ 21: "stopped (tty input)", ++ 22: "stopped (tty output)", ++ 23: "I/O possible", ++ 24: "cputime limit exceeded", ++ 25: "filesize limit exceeded", ++ 26: "virtual timer expired", ++ 27: "profiling timer expired", ++ 28: "window size changes", ++ 29: "information request", ++ 30: "user defined signal 1", ++ 31: "user defined signal 2", ++ 32: "thread AST", ++} +diff --git a/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go +new file mode 100644 +index 0000000..a08922b +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go +@@ -0,0 +1,1436 @@ ++// mkerrors.sh -m64 ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build amd64,solaris ++ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- -m64 _const.go ++ ++package unix ++ ++import "syscall" ++ ++const ( ++ AF_802 = 0x12 ++ AF_APPLETALK = 0x10 ++ AF_CCITT = 0xa ++ AF_CHAOS = 0x5 ++ AF_DATAKIT = 0x9 ++ AF_DECnet = 0xc ++ AF_DLI = 0xd ++ AF_ECMA = 0x8 ++ AF_FILE = 0x1 ++ AF_GOSIP = 0x16 ++ AF_HYLINK = 0xf ++ AF_IMPLINK = 0x3 ++ AF_INET = 0x2 ++ AF_INET6 = 0x1a ++ AF_INET_OFFLOAD = 0x1e ++ AF_IPX = 0x17 ++ AF_KEY = 0x1b ++ AF_LAT = 0xe ++ AF_LINK = 0x19 ++ AF_LOCAL = 0x1 ++ AF_MAX = 0x20 ++ AF_NBS = 0x7 ++ AF_NCA = 0x1c ++ AF_NIT = 0x11 ++ AF_NS = 0x6 ++ AF_OSI = 0x13 ++ AF_OSINET = 0x15 ++ AF_PACKET = 0x20 ++ AF_POLICY = 0x1d ++ AF_PUP = 0x4 ++ AF_ROUTE = 0x18 ++ AF_SNA = 0xb ++ AF_TRILL = 0x1f ++ AF_UNIX = 0x1 ++ AF_UNSPEC = 0x0 ++ AF_X25 = 0x14 ++ ARPHRD_ARCNET = 0x7 ++ ARPHRD_ATM = 0x10 ++ ARPHRD_AX25 = 0x3 ++ ARPHRD_CHAOS = 0x5 ++ ARPHRD_EETHER = 0x2 ++ ARPHRD_ETHER = 0x1 ++ ARPHRD_FC = 0x12 ++ ARPHRD_FRAME = 0xf ++ ARPHRD_HDLC = 0x11 ++ ARPHRD_IB = 0x20 ++ ARPHRD_IEEE802 = 0x6 ++ ARPHRD_IPATM = 0x13 ++ ARPHRD_METRICOM = 0x17 ++ ARPHRD_TUNNEL = 0x1f ++ B0 = 0x0 ++ B110 = 0x3 ++ B115200 = 0x12 ++ B1200 = 0x9 ++ B134 = 0x4 ++ B150 = 0x5 ++ B153600 = 0x13 ++ B1800 = 0xa ++ B19200 = 0xe ++ B200 = 0x6 ++ B230400 = 0x14 ++ B2400 = 0xb ++ B300 = 0x7 ++ B307200 = 0x15 ++ B38400 = 0xf ++ B460800 = 0x16 ++ B4800 = 0xc ++ B50 = 0x1 ++ B57600 = 0x10 ++ B600 = 0x8 ++ B75 = 0x2 ++ B76800 = 0x11 ++ B921600 = 0x17 ++ B9600 = 0xd ++ BIOCFLUSH = 0x20004268 ++ BIOCGBLEN = 0x40044266 ++ BIOCGDLT = 0x4004426a ++ BIOCGDLTLIST = -0x3fefbd89 ++ BIOCGDLTLIST32 = -0x3ff7bd89 ++ BIOCGETIF = 0x4020426b ++ BIOCGETLIF = 0x4078426b ++ BIOCGHDRCMPLT = 0x40044274 ++ BIOCGRTIMEOUT = 0x4010427b ++ BIOCGRTIMEOUT32 = 0x4008427b ++ BIOCGSEESENT = 0x40044278 ++ BIOCGSTATS = 0x4080426f ++ BIOCGSTATSOLD = 0x4008426f ++ BIOCIMMEDIATE = -0x7ffbbd90 ++ BIOCPROMISC = 0x20004269 ++ BIOCSBLEN = -0x3ffbbd9a ++ BIOCSDLT = -0x7ffbbd8a ++ BIOCSETF = -0x7fefbd99 ++ BIOCSETF32 = -0x7ff7bd99 ++ BIOCSETIF = -0x7fdfbd94 ++ BIOCSETLIF = -0x7f87bd94 ++ BIOCSHDRCMPLT = -0x7ffbbd8b ++ BIOCSRTIMEOUT = -0x7fefbd86 ++ BIOCSRTIMEOUT32 = -0x7ff7bd86 ++ BIOCSSEESENT = -0x7ffbbd87 ++ BIOCSTCPF = -0x7fefbd8e ++ BIOCSUDPF = -0x7fefbd8d ++ BIOCVERSION = 0x40044271 ++ BPF_A = 0x10 ++ BPF_ABS = 0x20 ++ BPF_ADD = 0x0 ++ BPF_ALIGNMENT = 0x4 ++ BPF_ALU = 0x4 ++ BPF_AND = 0x50 ++ BPF_B = 0x10 ++ BPF_DFLTBUFSIZE = 0x100000 ++ BPF_DIV = 0x30 ++ BPF_H = 0x8 ++ BPF_IMM = 0x0 ++ BPF_IND = 0x40 ++ BPF_JA = 0x0 ++ BPF_JEQ = 0x10 ++ BPF_JGE = 0x30 ++ BPF_JGT = 0x20 ++ BPF_JMP = 0x5 ++ BPF_JSET = 0x40 ++ BPF_K = 0x0 ++ BPF_LD = 0x0 ++ BPF_LDX = 0x1 ++ BPF_LEN = 0x80 ++ BPF_LSH = 0x60 ++ BPF_MAJOR_VERSION = 0x1 ++ BPF_MAXBUFSIZE = 0x1000000 ++ BPF_MAXINSNS = 0x200 ++ BPF_MEM = 0x60 ++ BPF_MEMWORDS = 0x10 ++ BPF_MINBUFSIZE = 0x20 ++ BPF_MINOR_VERSION = 0x1 ++ BPF_MISC = 0x7 ++ BPF_MSH = 0xa0 ++ BPF_MUL = 0x20 ++ BPF_NEG = 0x80 ++ BPF_OR = 0x40 ++ BPF_RELEASE = 0x30bb6 ++ BPF_RET = 0x6 ++ BPF_RSH = 0x70 ++ BPF_ST = 0x2 ++ BPF_STX = 0x3 ++ BPF_SUB = 0x10 ++ BPF_TAX = 0x0 ++ BPF_TXA = 0x80 ++ BPF_W = 0x0 ++ BPF_X = 0x8 ++ BRKINT = 0x2 ++ CFLUSH = 0xf ++ CLOCAL = 0x800 ++ CLOCK_HIGHRES = 0x4 ++ CLOCK_LEVEL = 0xa ++ CLOCK_MONOTONIC = 0x4 ++ CLOCK_PROCESS_CPUTIME_ID = 0x5 ++ CLOCK_PROF = 0x2 ++ CLOCK_REALTIME = 0x3 ++ CLOCK_THREAD_CPUTIME_ID = 0x2 ++ CLOCK_VIRTUAL = 0x1 ++ CREAD = 0x80 ++ CS5 = 0x0 ++ CS6 = 0x10 ++ CS7 = 0x20 ++ CS8 = 0x30 ++ CSIZE = 0x30 ++ CSTART = 0x11 ++ CSTATUS = 0x14 ++ CSTOP = 0x13 ++ CSTOPB = 0x40 ++ CSUSP = 0x1a ++ CSWTCH = 0x1a ++ DLT_AIRONET_HEADER = 0x78 ++ DLT_APPLE_IP_OVER_IEEE1394 = 0x8a ++ DLT_ARCNET = 0x7 ++ DLT_ARCNET_LINUX = 0x81 ++ DLT_ATM_CLIP = 0x13 ++ DLT_ATM_RFC1483 = 0xb ++ DLT_AURORA = 0x7e ++ DLT_AX25 = 0x3 ++ DLT_BACNET_MS_TP = 0xa5 ++ DLT_CHAOS = 0x5 ++ DLT_CISCO_IOS = 0x76 ++ DLT_C_HDLC = 0x68 ++ DLT_DOCSIS = 0x8f ++ DLT_ECONET = 0x73 ++ DLT_EN10MB = 0x1 ++ DLT_EN3MB = 0x2 ++ DLT_ENC = 0x6d ++ DLT_ERF_ETH = 0xaf ++ DLT_ERF_POS = 0xb0 ++ DLT_FDDI = 0xa ++ DLT_FRELAY = 0x6b ++ DLT_GCOM_SERIAL = 0xad ++ DLT_GCOM_T1E1 = 0xac ++ DLT_GPF_F = 0xab ++ DLT_GPF_T = 0xaa ++ DLT_GPRS_LLC = 0xa9 ++ DLT_HDLC = 0x10 ++ DLT_HHDLC = 0x79 ++ DLT_HIPPI = 0xf ++ DLT_IBM_SN = 0x92 ++ DLT_IBM_SP = 0x91 ++ DLT_IEEE802 = 0x6 ++ DLT_IEEE802_11 = 0x69 ++ DLT_IEEE802_11_RADIO = 0x7f ++ DLT_IEEE802_11_RADIO_AVS = 0xa3 ++ DLT_IPNET = 0xe2 ++ DLT_IPOIB = 0xa2 ++ DLT_IP_OVER_FC = 0x7a ++ DLT_JUNIPER_ATM1 = 0x89 ++ DLT_JUNIPER_ATM2 = 0x87 ++ DLT_JUNIPER_CHDLC = 0xb5 ++ DLT_JUNIPER_ES = 0x84 ++ DLT_JUNIPER_ETHER = 0xb2 ++ DLT_JUNIPER_FRELAY = 0xb4 ++ DLT_JUNIPER_GGSN = 0x85 ++ DLT_JUNIPER_MFR = 0x86 ++ DLT_JUNIPER_MLFR = 0x83 ++ DLT_JUNIPER_MLPPP = 0x82 ++ DLT_JUNIPER_MONITOR = 0xa4 ++ DLT_JUNIPER_PIC_PEER = 0xae ++ DLT_JUNIPER_PPP = 0xb3 ++ DLT_JUNIPER_PPPOE = 0xa7 ++ DLT_JUNIPER_PPPOE_ATM = 0xa8 ++ DLT_JUNIPER_SERVICES = 0x88 ++ DLT_LINUX_IRDA = 0x90 ++ DLT_LINUX_LAPD = 0xb1 ++ DLT_LINUX_SLL = 0x71 ++ DLT_LOOP = 0x6c ++ DLT_LTALK = 0x72 ++ DLT_MTP2 = 0x8c ++ DLT_MTP2_WITH_PHDR = 0x8b ++ DLT_MTP3 = 0x8d ++ DLT_NULL = 0x0 ++ DLT_PCI_EXP = 0x7d ++ DLT_PFLOG = 0x75 ++ DLT_PFSYNC = 0x12 ++ DLT_PPP = 0x9 ++ DLT_PPP_BSDOS = 0xe ++ DLT_PPP_PPPD = 0xa6 ++ DLT_PRISM_HEADER = 0x77 ++ DLT_PRONET = 0x4 ++ DLT_RAW = 0xc ++ DLT_RAWAF_MASK = 0x2240000 ++ DLT_RIO = 0x7c ++ DLT_SCCP = 0x8e ++ DLT_SLIP = 0x8 ++ DLT_SLIP_BSDOS = 0xd ++ DLT_SUNATM = 0x7b ++ DLT_SYMANTEC_FIREWALL = 0x63 ++ DLT_TZSP = 0x80 ++ ECHO = 0x8 ++ ECHOCTL = 0x200 ++ ECHOE = 0x10 ++ ECHOK = 0x20 ++ ECHOKE = 0x800 ++ ECHONL = 0x40 ++ ECHOPRT = 0x400 ++ EMPTY_SET = 0x0 ++ EMT_CPCOVF = 0x1 ++ EQUALITY_CHECK = 0x0 ++ EXTA = 0xe ++ EXTB = 0xf ++ FD_CLOEXEC = 0x1 ++ FD_NFDBITS = 0x40 ++ FD_SETSIZE = 0x10000 ++ FLUSHALL = 0x1 ++ FLUSHDATA = 0x0 ++ FLUSHO = 0x2000 ++ F_ALLOCSP = 0xa ++ F_ALLOCSP64 = 0xa ++ F_BADFD = 0x2e ++ F_BLKSIZE = 0x13 ++ F_BLOCKS = 0x12 ++ F_CHKFL = 0x8 ++ F_COMPAT = 0x8 ++ F_DUP2FD = 0x9 ++ F_DUP2FD_CLOEXEC = 0x24 ++ F_DUPFD = 0x0 ++ F_DUPFD_CLOEXEC = 0x25 ++ F_FREESP = 0xb ++ F_FREESP64 = 0xb ++ F_GETFD = 0x1 ++ F_GETFL = 0x3 ++ F_GETLK = 0xe ++ F_GETLK64 = 0xe ++ F_GETOWN = 0x17 ++ F_GETXFL = 0x2d ++ F_HASREMOTELOCKS = 0x1a ++ F_ISSTREAM = 0xd ++ F_MANDDNY = 0x10 ++ F_MDACC = 0x20 ++ F_NODNY = 0x0 ++ F_NPRIV = 0x10 ++ F_PRIV = 0xf ++ F_QUOTACTL = 0x11 ++ F_RDACC = 0x1 ++ F_RDDNY = 0x1 ++ F_RDLCK = 0x1 ++ F_REVOKE = 0x19 ++ F_RMACC = 0x4 ++ F_RMDNY = 0x4 ++ F_RWACC = 0x3 ++ F_RWDNY = 0x3 ++ F_SETFD = 0x2 ++ F_SETFL = 0x4 ++ F_SETLK = 0x6 ++ F_SETLK64 = 0x6 ++ F_SETLK64_NBMAND = 0x2a ++ F_SETLKW = 0x7 ++ F_SETLKW64 = 0x7 ++ F_SETLK_NBMAND = 0x2a ++ F_SETOWN = 0x18 ++ F_SHARE = 0x28 ++ F_SHARE_NBMAND = 0x2b ++ F_UNLCK = 0x3 ++ F_UNLKSYS = 0x4 ++ F_UNSHARE = 0x29 ++ F_WRACC = 0x2 ++ F_WRDNY = 0x2 ++ F_WRLCK = 0x2 ++ HUPCL = 0x400 ++ ICANON = 0x2 ++ ICRNL = 0x100 ++ IEXTEN = 0x8000 ++ IFF_ADDRCONF = 0x80000 ++ IFF_ALLMULTI = 0x200 ++ IFF_ANYCAST = 0x400000 ++ IFF_BROADCAST = 0x2 ++ IFF_CANTCHANGE = 0x7f203003b5a ++ IFF_COS_ENABLED = 0x200000000 ++ IFF_DEBUG = 0x4 ++ IFF_DEPRECATED = 0x40000 ++ IFF_DHCPRUNNING = 0x4000 ++ IFF_DUPLICATE = 0x4000000000 ++ IFF_FAILED = 0x10000000 ++ IFF_FIXEDMTU = 0x1000000000 ++ IFF_INACTIVE = 0x40000000 ++ IFF_INTELLIGENT = 0x400 ++ IFF_IPMP = 0x8000000000 ++ IFF_IPMP_CANTCHANGE = 0x10000000 ++ IFF_IPMP_INVALID = 0x1ec200080 ++ IFF_IPV4 = 0x1000000 ++ IFF_IPV6 = 0x2000000 ++ IFF_L3PROTECT = 0x40000000000 ++ IFF_LOOPBACK = 0x8 ++ IFF_MULTICAST = 0x800 ++ IFF_MULTI_BCAST = 0x1000 ++ IFF_NOACCEPT = 0x4000000 ++ IFF_NOARP = 0x80 ++ IFF_NOFAILOVER = 0x8000000 ++ IFF_NOLINKLOCAL = 0x20000000000 ++ IFF_NOLOCAL = 0x20000 ++ IFF_NONUD = 0x200000 ++ IFF_NORTEXCH = 0x800000 ++ IFF_NOTRAILERS = 0x20 ++ IFF_NOXMIT = 0x10000 ++ IFF_OFFLINE = 0x80000000 ++ IFF_POINTOPOINT = 0x10 ++ IFF_PREFERRED = 0x400000000 ++ IFF_PRIVATE = 0x8000 ++ IFF_PROMISC = 0x100 ++ IFF_ROUTER = 0x100000 ++ IFF_RUNNING = 0x40 ++ IFF_STANDBY = 0x20000000 ++ IFF_TEMPORARY = 0x800000000 ++ IFF_UNNUMBERED = 0x2000 ++ IFF_UP = 0x1 ++ IFF_VIRTUAL = 0x2000000000 ++ IFF_VRRP = 0x10000000000 ++ IFF_XRESOLV = 0x100000000 ++ IFNAMSIZ = 0x10 ++ IFT_1822 = 0x2 ++ IFT_6TO4 = 0xca ++ IFT_AAL5 = 0x31 ++ IFT_ARCNET = 0x23 ++ IFT_ARCNETPLUS = 0x24 ++ IFT_ATM = 0x25 ++ IFT_CEPT = 0x13 ++ IFT_DS3 = 0x1e ++ IFT_EON = 0x19 ++ IFT_ETHER = 0x6 ++ IFT_FDDI = 0xf ++ IFT_FRELAY = 0x20 ++ IFT_FRELAYDCE = 0x2c ++ IFT_HDH1822 = 0x3 ++ IFT_HIPPI = 0x2f ++ IFT_HSSI = 0x2e ++ IFT_HY = 0xe ++ IFT_IB = 0xc7 ++ IFT_IPV4 = 0xc8 ++ IFT_IPV6 = 0xc9 ++ IFT_ISDNBASIC = 0x14 ++ IFT_ISDNPRIMARY = 0x15 ++ IFT_ISO88022LLC = 0x29 ++ IFT_ISO88023 = 0x7 ++ IFT_ISO88024 = 0x8 ++ IFT_ISO88025 = 0x9 ++ IFT_ISO88026 = 0xa ++ IFT_LAPB = 0x10 ++ IFT_LOCALTALK = 0x2a ++ IFT_LOOP = 0x18 ++ IFT_MIOX25 = 0x26 ++ IFT_MODEM = 0x30 ++ IFT_NSIP = 0x1b ++ IFT_OTHER = 0x1 ++ IFT_P10 = 0xc ++ IFT_P80 = 0xd ++ IFT_PARA = 0x22 ++ IFT_PPP = 0x17 ++ IFT_PROPMUX = 0x36 ++ IFT_PROPVIRTUAL = 0x35 ++ IFT_PTPSERIAL = 0x16 ++ IFT_RS232 = 0x21 ++ IFT_SDLC = 0x11 ++ IFT_SIP = 0x1f ++ IFT_SLIP = 0x1c ++ IFT_SMDSDXI = 0x2b ++ IFT_SMDSICIP = 0x34 ++ IFT_SONET = 0x27 ++ IFT_SONETPATH = 0x32 ++ IFT_SONETVT = 0x33 ++ IFT_STARLAN = 0xb ++ IFT_T1 = 0x12 ++ IFT_ULTRA = 0x1d ++ IFT_V35 = 0x2d ++ IFT_X25 = 0x5 ++ IFT_X25DDN = 0x4 ++ IFT_X25PLE = 0x28 ++ IFT_XETHER = 0x1a ++ IGNBRK = 0x1 ++ IGNCR = 0x80 ++ IGNPAR = 0x4 ++ IMAXBEL = 0x2000 ++ INLCR = 0x40 ++ INPCK = 0x10 ++ IN_AUTOCONF_MASK = 0xffff0000 ++ IN_AUTOCONF_NET = 0xa9fe0000 ++ IN_CLASSA_HOST = 0xffffff ++ IN_CLASSA_MAX = 0x80 ++ IN_CLASSA_NET = 0xff000000 ++ IN_CLASSA_NSHIFT = 0x18 ++ IN_CLASSB_HOST = 0xffff ++ IN_CLASSB_MAX = 0x10000 ++ IN_CLASSB_NET = 0xffff0000 ++ IN_CLASSB_NSHIFT = 0x10 ++ IN_CLASSC_HOST = 0xff ++ IN_CLASSC_NET = 0xffffff00 ++ IN_CLASSC_NSHIFT = 0x8 ++ IN_CLASSD_HOST = 0xfffffff ++ IN_CLASSD_NET = 0xf0000000 ++ IN_CLASSD_NSHIFT = 0x1c ++ IN_CLASSE_NET = 0xffffffff ++ IN_LOOPBACKNET = 0x7f ++ IN_PRIVATE12_MASK = 0xfff00000 ++ IN_PRIVATE12_NET = 0xac100000 ++ IN_PRIVATE16_MASK = 0xffff0000 ++ IN_PRIVATE16_NET = 0xc0a80000 ++ IN_PRIVATE8_MASK = 0xff000000 ++ IN_PRIVATE8_NET = 0xa000000 ++ IPPROTO_AH = 0x33 ++ IPPROTO_DSTOPTS = 0x3c ++ IPPROTO_EGP = 0x8 ++ IPPROTO_ENCAP = 0x4 ++ IPPROTO_EON = 0x50 ++ IPPROTO_ESP = 0x32 ++ IPPROTO_FRAGMENT = 0x2c ++ IPPROTO_GGP = 0x3 ++ IPPROTO_HELLO = 0x3f ++ IPPROTO_HOPOPTS = 0x0 ++ IPPROTO_ICMP = 0x1 ++ IPPROTO_ICMPV6 = 0x3a ++ IPPROTO_IDP = 0x16 ++ IPPROTO_IGMP = 0x2 ++ IPPROTO_IP = 0x0 ++ IPPROTO_IPV6 = 0x29 ++ IPPROTO_MAX = 0x100 ++ IPPROTO_ND = 0x4d ++ IPPROTO_NONE = 0x3b ++ IPPROTO_OSPF = 0x59 ++ IPPROTO_PIM = 0x67 ++ IPPROTO_PUP = 0xc ++ IPPROTO_RAW = 0xff ++ IPPROTO_ROUTING = 0x2b ++ IPPROTO_RSVP = 0x2e ++ IPPROTO_SCTP = 0x84 ++ IPPROTO_TCP = 0x6 ++ IPPROTO_UDP = 0x11 ++ IPV6_ADD_MEMBERSHIP = 0x9 ++ IPV6_BOUND_IF = 0x41 ++ IPV6_CHECKSUM = 0x18 ++ IPV6_DONTFRAG = 0x21 ++ IPV6_DROP_MEMBERSHIP = 0xa ++ IPV6_DSTOPTS = 0xf ++ IPV6_FLOWINFO_FLOWLABEL = 0xffff0f00 ++ IPV6_FLOWINFO_TCLASS = 0xf00f ++ IPV6_HOPLIMIT = 0xc ++ IPV6_HOPOPTS = 0xe ++ IPV6_JOIN_GROUP = 0x9 ++ IPV6_LEAVE_GROUP = 0xa ++ IPV6_MULTICAST_HOPS = 0x7 ++ IPV6_MULTICAST_IF = 0x6 ++ IPV6_MULTICAST_LOOP = 0x8 ++ IPV6_NEXTHOP = 0xd ++ IPV6_PAD1_OPT = 0x0 ++ IPV6_PATHMTU = 0x25 ++ IPV6_PKTINFO = 0xb ++ IPV6_PREFER_SRC_CGA = 0x20 ++ IPV6_PREFER_SRC_CGADEFAULT = 0x10 ++ IPV6_PREFER_SRC_CGAMASK = 0x30 ++ IPV6_PREFER_SRC_COA = 0x2 ++ IPV6_PREFER_SRC_DEFAULT = 0x15 ++ IPV6_PREFER_SRC_HOME = 0x1 ++ IPV6_PREFER_SRC_MASK = 0x3f ++ IPV6_PREFER_SRC_MIPDEFAULT = 0x1 ++ IPV6_PREFER_SRC_MIPMASK = 0x3 ++ IPV6_PREFER_SRC_NONCGA = 0x10 ++ IPV6_PREFER_SRC_PUBLIC = 0x4 ++ IPV6_PREFER_SRC_TMP = 0x8 ++ IPV6_PREFER_SRC_TMPDEFAULT = 0x4 ++ IPV6_PREFER_SRC_TMPMASK = 0xc ++ IPV6_RECVDSTOPTS = 0x28 ++ IPV6_RECVHOPLIMIT = 0x13 ++ IPV6_RECVHOPOPTS = 0x14 ++ IPV6_RECVPATHMTU = 0x24 ++ IPV6_RECVPKTINFO = 0x12 ++ IPV6_RECVRTHDR = 0x16 ++ IPV6_RECVRTHDRDSTOPTS = 0x17 ++ IPV6_RECVTCLASS = 0x19 ++ IPV6_RTHDR = 0x10 ++ IPV6_RTHDRDSTOPTS = 0x11 ++ IPV6_RTHDR_TYPE_0 = 0x0 ++ IPV6_SEC_OPT = 0x22 ++ IPV6_SRC_PREFERENCES = 0x23 ++ IPV6_TCLASS = 0x26 ++ IPV6_UNICAST_HOPS = 0x5 ++ IPV6_UNSPEC_SRC = 0x42 ++ IPV6_USE_MIN_MTU = 0x20 ++ IPV6_V6ONLY = 0x27 ++ IP_ADD_MEMBERSHIP = 0x13 ++ IP_ADD_SOURCE_MEMBERSHIP = 0x17 ++ IP_BLOCK_SOURCE = 0x15 ++ IP_BOUND_IF = 0x41 ++ IP_BROADCAST = 0x106 ++ IP_BROADCAST_TTL = 0x43 ++ IP_DEFAULT_MULTICAST_LOOP = 0x1 ++ IP_DEFAULT_MULTICAST_TTL = 0x1 ++ IP_DF = 0x4000 ++ IP_DHCPINIT_IF = 0x45 ++ IP_DONTFRAG = 0x1b ++ IP_DONTROUTE = 0x105 ++ IP_DROP_MEMBERSHIP = 0x14 ++ IP_DROP_SOURCE_MEMBERSHIP = 0x18 ++ IP_HDRINCL = 0x2 ++ IP_MAXPACKET = 0xffff ++ IP_MF = 0x2000 ++ IP_MSS = 0x240 ++ IP_MULTICAST_IF = 0x10 ++ IP_MULTICAST_LOOP = 0x12 ++ IP_MULTICAST_TTL = 0x11 ++ IP_NEXTHOP = 0x19 ++ IP_OPTIONS = 0x1 ++ IP_PKTINFO = 0x1a ++ IP_RECVDSTADDR = 0x7 ++ IP_RECVIF = 0x9 ++ IP_RECVOPTS = 0x5 ++ IP_RECVPKTINFO = 0x1a ++ IP_RECVRETOPTS = 0x6 ++ IP_RECVSLLA = 0xa ++ IP_RECVTTL = 0xb ++ IP_RETOPTS = 0x8 ++ IP_REUSEADDR = 0x104 ++ IP_SEC_OPT = 0x22 ++ IP_TOS = 0x3 ++ IP_TTL = 0x4 ++ IP_UNBLOCK_SOURCE = 0x16 ++ IP_UNSPEC_SRC = 0x42 ++ ISIG = 0x1 ++ ISTRIP = 0x20 ++ IXANY = 0x800 ++ IXOFF = 0x1000 ++ IXON = 0x400 ++ MADV_ACCESS_DEFAULT = 0x6 ++ MADV_ACCESS_LWP = 0x7 ++ MADV_ACCESS_MANY = 0x8 ++ MADV_DONTNEED = 0x4 ++ MADV_FREE = 0x5 ++ MADV_NORMAL = 0x0 ++ MADV_RANDOM = 0x1 ++ MADV_SEQUENTIAL = 0x2 ++ MADV_WILLNEED = 0x3 ++ MAP_32BIT = 0x80 ++ MAP_ALIGN = 0x200 ++ MAP_ANON = 0x100 ++ MAP_ANONYMOUS = 0x100 ++ MAP_FIXED = 0x10 ++ MAP_INITDATA = 0x800 ++ MAP_NORESERVE = 0x40 ++ MAP_PRIVATE = 0x2 ++ MAP_RENAME = 0x20 ++ MAP_SHARED = 0x1 ++ MAP_TEXT = 0x400 ++ MAP_TYPE = 0xf ++ MCL_CURRENT = 0x1 ++ MCL_FUTURE = 0x2 ++ MSG_CTRUNC = 0x10 ++ MSG_DONTROUTE = 0x4 ++ MSG_DONTWAIT = 0x80 ++ MSG_DUPCTRL = 0x800 ++ MSG_EOR = 0x8 ++ MSG_MAXIOVLEN = 0x10 ++ MSG_NOTIFICATION = 0x100 ++ MSG_OOB = 0x1 ++ MSG_PEEK = 0x2 ++ MSG_TRUNC = 0x20 ++ MSG_WAITALL = 0x40 ++ MSG_XPG4_2 = 0x8000 ++ MS_ASYNC = 0x1 ++ MS_INVALIDATE = 0x2 ++ MS_OLDSYNC = 0x0 ++ MS_SYNC = 0x4 ++ M_FLUSH = 0x86 ++ NOFLSH = 0x80 ++ OCRNL = 0x8 ++ OFDEL = 0x80 ++ OFILL = 0x40 ++ ONLCR = 0x4 ++ ONLRET = 0x20 ++ ONOCR = 0x10 ++ OPENFAIL = -0x1 ++ OPOST = 0x1 ++ O_ACCMODE = 0x600003 ++ O_APPEND = 0x8 ++ O_CLOEXEC = 0x800000 ++ O_CREAT = 0x100 ++ O_DSYNC = 0x40 ++ O_EXCL = 0x400 ++ O_EXEC = 0x400000 ++ O_LARGEFILE = 0x2000 ++ O_NDELAY = 0x4 ++ O_NOCTTY = 0x800 ++ O_NOFOLLOW = 0x20000 ++ O_NOLINKS = 0x40000 ++ O_NONBLOCK = 0x80 ++ O_RDONLY = 0x0 ++ O_RDWR = 0x2 ++ O_RSYNC = 0x8000 ++ O_SEARCH = 0x200000 ++ O_SIOCGIFCONF = -0x3ff796ec ++ O_SIOCGLIFCONF = -0x3fef9688 ++ O_SYNC = 0x10 ++ O_TRUNC = 0x200 ++ O_WRONLY = 0x1 ++ O_XATTR = 0x4000 ++ PARENB = 0x100 ++ PAREXT = 0x100000 ++ PARMRK = 0x8 ++ PARODD = 0x200 ++ PENDIN = 0x4000 ++ PRIO_PGRP = 0x1 ++ PRIO_PROCESS = 0x0 ++ PRIO_USER = 0x2 ++ PROT_EXEC = 0x4 ++ PROT_NONE = 0x0 ++ PROT_READ = 0x1 ++ PROT_WRITE = 0x2 ++ RLIMIT_AS = 0x6 ++ RLIMIT_CORE = 0x4 ++ RLIMIT_CPU = 0x0 ++ RLIMIT_DATA = 0x2 ++ RLIMIT_FSIZE = 0x1 ++ RLIMIT_NOFILE = 0x5 ++ RLIMIT_STACK = 0x3 ++ RLIM_INFINITY = -0x3 ++ RTAX_AUTHOR = 0x6 ++ RTAX_BRD = 0x7 ++ RTAX_DST = 0x0 ++ RTAX_GATEWAY = 0x1 ++ RTAX_GENMASK = 0x3 ++ RTAX_IFA = 0x5 ++ RTAX_IFP = 0x4 ++ RTAX_MAX = 0x9 ++ RTAX_NETMASK = 0x2 ++ RTAX_SRC = 0x8 ++ RTA_AUTHOR = 0x40 ++ RTA_BRD = 0x80 ++ RTA_DST = 0x1 ++ RTA_GATEWAY = 0x2 ++ RTA_GENMASK = 0x8 ++ RTA_IFA = 0x20 ++ RTA_IFP = 0x10 ++ RTA_NETMASK = 0x4 ++ RTA_NUMBITS = 0x9 ++ RTA_SRC = 0x100 ++ RTF_BLACKHOLE = 0x1000 ++ RTF_CLONING = 0x100 ++ RTF_DONE = 0x40 ++ RTF_DYNAMIC = 0x10 ++ RTF_GATEWAY = 0x2 ++ RTF_HOST = 0x4 ++ RTF_INDIRECT = 0x40000 ++ RTF_KERNEL = 0x80000 ++ RTF_LLINFO = 0x400 ++ RTF_MASK = 0x80 ++ RTF_MODIFIED = 0x20 ++ RTF_MULTIRT = 0x10000 ++ RTF_PRIVATE = 0x2000 ++ RTF_PROTO1 = 0x8000 ++ RTF_PROTO2 = 0x4000 ++ RTF_REJECT = 0x8 ++ RTF_SETSRC = 0x20000 ++ RTF_STATIC = 0x800 ++ RTF_UP = 0x1 ++ RTF_XRESOLVE = 0x200 ++ RTF_ZONE = 0x100000 ++ RTM_ADD = 0x1 ++ RTM_CHANGE = 0x3 ++ RTM_CHGADDR = 0xf ++ RTM_DELADDR = 0xd ++ RTM_DELETE = 0x2 ++ RTM_FREEADDR = 0x10 ++ RTM_GET = 0x4 ++ RTM_IFINFO = 0xe ++ RTM_LOCK = 0x8 ++ RTM_LOSING = 0x5 ++ RTM_MISS = 0x7 ++ RTM_NEWADDR = 0xc ++ RTM_OLDADD = 0x9 ++ RTM_OLDDEL = 0xa ++ RTM_REDIRECT = 0x6 ++ RTM_RESOLVE = 0xb ++ RTM_VERSION = 0x3 ++ RTV_EXPIRE = 0x4 ++ RTV_HOPCOUNT = 0x2 ++ RTV_MTU = 0x1 ++ RTV_RPIPE = 0x8 ++ RTV_RTT = 0x40 ++ RTV_RTTVAR = 0x80 ++ RTV_SPIPE = 0x10 ++ RTV_SSTHRESH = 0x20 ++ RT_AWARE = 0x1 ++ RUSAGE_CHILDREN = -0x1 ++ RUSAGE_SELF = 0x0 ++ SCM_RIGHTS = 0x1010 ++ SCM_TIMESTAMP = 0x1013 ++ SCM_UCRED = 0x1012 ++ SHUT_RD = 0x0 ++ SHUT_RDWR = 0x2 ++ SHUT_WR = 0x1 ++ SIG2STR_MAX = 0x20 ++ SIOCADDMULTI = -0x7fdf96cf ++ SIOCADDRT = -0x7fcf8df6 ++ SIOCATMARK = 0x40047307 ++ SIOCDARP = -0x7fdb96e0 ++ SIOCDELMULTI = -0x7fdf96ce ++ SIOCDELRT = -0x7fcf8df5 ++ SIOCDXARP = -0x7fff9658 ++ SIOCGARP = -0x3fdb96e1 ++ SIOCGDSTINFO = -0x3fff965c ++ SIOCGENADDR = -0x3fdf96ab ++ SIOCGENPSTATS = -0x3fdf96c7 ++ SIOCGETLSGCNT = -0x3fef8deb ++ SIOCGETNAME = 0x40107334 ++ SIOCGETPEER = 0x40107335 ++ SIOCGETPROP = -0x3fff8f44 ++ SIOCGETSGCNT = -0x3feb8deb ++ SIOCGETSYNC = -0x3fdf96d3 ++ SIOCGETVIFCNT = -0x3feb8dec ++ SIOCGHIWAT = 0x40047301 ++ SIOCGIFADDR = -0x3fdf96f3 ++ SIOCGIFBRDADDR = -0x3fdf96e9 ++ SIOCGIFCONF = -0x3ff796a4 ++ SIOCGIFDSTADDR = -0x3fdf96f1 ++ SIOCGIFFLAGS = -0x3fdf96ef ++ SIOCGIFHWADDR = -0x3fdf9647 ++ SIOCGIFINDEX = -0x3fdf96a6 ++ SIOCGIFMEM = -0x3fdf96ed ++ SIOCGIFMETRIC = -0x3fdf96e5 ++ SIOCGIFMTU = -0x3fdf96ea ++ SIOCGIFMUXID = -0x3fdf96a8 ++ SIOCGIFNETMASK = -0x3fdf96e7 ++ SIOCGIFNUM = 0x40046957 ++ SIOCGIP6ADDRPOLICY = -0x3fff965e ++ SIOCGIPMSFILTER = -0x3ffb964c ++ SIOCGLIFADDR = -0x3f87968f ++ SIOCGLIFBINDING = -0x3f879666 ++ SIOCGLIFBRDADDR = -0x3f879685 ++ SIOCGLIFCONF = -0x3fef965b ++ SIOCGLIFDADSTATE = -0x3f879642 ++ SIOCGLIFDSTADDR = -0x3f87968d ++ SIOCGLIFFLAGS = -0x3f87968b ++ SIOCGLIFGROUPINFO = -0x3f4b9663 ++ SIOCGLIFGROUPNAME = -0x3f879664 ++ SIOCGLIFHWADDR = -0x3f879640 ++ SIOCGLIFINDEX = -0x3f87967b ++ SIOCGLIFLNKINFO = -0x3f879674 ++ SIOCGLIFMETRIC = -0x3f879681 ++ SIOCGLIFMTU = -0x3f879686 ++ SIOCGLIFMUXID = -0x3f87967d ++ SIOCGLIFNETMASK = -0x3f879683 ++ SIOCGLIFNUM = -0x3ff3967e ++ SIOCGLIFSRCOF = -0x3fef964f ++ SIOCGLIFSUBNET = -0x3f879676 ++ SIOCGLIFTOKEN = -0x3f879678 ++ SIOCGLIFUSESRC = -0x3f879651 ++ SIOCGLIFZONE = -0x3f879656 ++ SIOCGLOWAT = 0x40047303 ++ SIOCGMSFILTER = -0x3ffb964e ++ SIOCGPGRP = 0x40047309 ++ SIOCGSTAMP = -0x3fef9646 ++ SIOCGXARP = -0x3fff9659 ++ SIOCIFDETACH = -0x7fdf96c8 ++ SIOCILB = -0x3ffb9645 ++ SIOCLIFADDIF = -0x3f879691 ++ SIOCLIFDELND = -0x7f879673 ++ SIOCLIFGETND = -0x3f879672 ++ SIOCLIFREMOVEIF = -0x7f879692 ++ SIOCLIFSETND = -0x7f879671 ++ SIOCLOWER = -0x7fdf96d7 ++ SIOCSARP = -0x7fdb96e2 ++ SIOCSCTPGOPT = -0x3fef9653 ++ SIOCSCTPPEELOFF = -0x3ffb9652 ++ SIOCSCTPSOPT = -0x7fef9654 ++ SIOCSENABLESDP = -0x3ffb9649 ++ SIOCSETPROP = -0x7ffb8f43 ++ SIOCSETSYNC = -0x7fdf96d4 ++ SIOCSHIWAT = -0x7ffb8d00 ++ SIOCSIFADDR = -0x7fdf96f4 ++ SIOCSIFBRDADDR = -0x7fdf96e8 ++ SIOCSIFDSTADDR = -0x7fdf96f2 ++ SIOCSIFFLAGS = -0x7fdf96f0 ++ SIOCSIFINDEX = -0x7fdf96a5 ++ SIOCSIFMEM = -0x7fdf96ee ++ SIOCSIFMETRIC = -0x7fdf96e4 ++ SIOCSIFMTU = -0x7fdf96eb ++ SIOCSIFMUXID = -0x7fdf96a7 ++ SIOCSIFNAME = -0x7fdf96b7 ++ SIOCSIFNETMASK = -0x7fdf96e6 ++ SIOCSIP6ADDRPOLICY = -0x7fff965d ++ SIOCSIPMSFILTER = -0x7ffb964b ++ SIOCSLGETREQ = -0x3fdf96b9 ++ SIOCSLIFADDR = -0x7f879690 ++ SIOCSLIFBRDADDR = -0x7f879684 ++ SIOCSLIFDSTADDR = -0x7f87968e ++ SIOCSLIFFLAGS = -0x7f87968c ++ SIOCSLIFGROUPNAME = -0x7f879665 ++ SIOCSLIFINDEX = -0x7f87967a ++ SIOCSLIFLNKINFO = -0x7f879675 ++ SIOCSLIFMETRIC = -0x7f879680 ++ SIOCSLIFMTU = -0x7f879687 ++ SIOCSLIFMUXID = -0x7f87967c ++ SIOCSLIFNAME = -0x3f87967f ++ SIOCSLIFNETMASK = -0x7f879682 ++ SIOCSLIFPREFIX = -0x3f879641 ++ SIOCSLIFSUBNET = -0x7f879677 ++ SIOCSLIFTOKEN = -0x7f879679 ++ SIOCSLIFUSESRC = -0x7f879650 ++ SIOCSLIFZONE = -0x7f879655 ++ SIOCSLOWAT = -0x7ffb8cfe ++ SIOCSLSTAT = -0x7fdf96b8 ++ SIOCSMSFILTER = -0x7ffb964d ++ SIOCSPGRP = -0x7ffb8cf8 ++ SIOCSPROMISC = -0x7ffb96d0 ++ SIOCSQPTR = -0x3ffb9648 ++ SIOCSSDSTATS = -0x3fdf96d2 ++ SIOCSSESTATS = -0x3fdf96d1 ++ SIOCSXARP = -0x7fff965a ++ SIOCTMYADDR = -0x3ff79670 ++ SIOCTMYSITE = -0x3ff7966e ++ SIOCTONLINK = -0x3ff7966f ++ SIOCUPPER = -0x7fdf96d8 ++ SIOCX25RCV = -0x3fdf96c4 ++ SIOCX25TBL = -0x3fdf96c3 ++ SIOCX25XMT = -0x3fdf96c5 ++ SIOCXPROTO = 0x20007337 ++ SOCK_CLOEXEC = 0x80000 ++ SOCK_DGRAM = 0x1 ++ SOCK_NDELAY = 0x200000 ++ SOCK_NONBLOCK = 0x100000 ++ SOCK_RAW = 0x4 ++ SOCK_RDM = 0x5 ++ SOCK_SEQPACKET = 0x6 ++ SOCK_STREAM = 0x2 ++ SOCK_TYPE_MASK = 0xffff ++ SOL_FILTER = 0xfffc ++ SOL_PACKET = 0xfffd ++ SOL_ROUTE = 0xfffe ++ SOL_SOCKET = 0xffff ++ SOMAXCONN = 0x80 ++ SO_ACCEPTCONN = 0x2 ++ SO_ALL = 0x3f ++ SO_ALLZONES = 0x1014 ++ SO_ANON_MLP = 0x100a ++ SO_ATTACH_FILTER = 0x40000001 ++ SO_BAND = 0x4000 ++ SO_BROADCAST = 0x20 ++ SO_COPYOPT = 0x80000 ++ SO_DEBUG = 0x1 ++ SO_DELIM = 0x8000 ++ SO_DETACH_FILTER = 0x40000002 ++ SO_DGRAM_ERRIND = 0x200 ++ SO_DOMAIN = 0x100c ++ SO_DONTLINGER = -0x81 ++ SO_DONTROUTE = 0x10 ++ SO_ERROPT = 0x40000 ++ SO_ERROR = 0x1007 ++ SO_EXCLBIND = 0x1015 ++ SO_HIWAT = 0x10 ++ SO_ISNTTY = 0x800 ++ SO_ISTTY = 0x400 ++ SO_KEEPALIVE = 0x8 ++ SO_LINGER = 0x80 ++ SO_LOWAT = 0x20 ++ SO_MAC_EXEMPT = 0x100b ++ SO_MAC_IMPLICIT = 0x1016 ++ SO_MAXBLK = 0x100000 ++ SO_MAXPSZ = 0x8 ++ SO_MINPSZ = 0x4 ++ SO_MREADOFF = 0x80 ++ SO_MREADON = 0x40 ++ SO_NDELOFF = 0x200 ++ SO_NDELON = 0x100 ++ SO_NODELIM = 0x10000 ++ SO_OOBINLINE = 0x100 ++ SO_PROTOTYPE = 0x1009 ++ SO_RCVBUF = 0x1002 ++ SO_RCVLOWAT = 0x1004 ++ SO_RCVPSH = 0x100d ++ SO_RCVTIMEO = 0x1006 ++ SO_READOPT = 0x1 ++ SO_RECVUCRED = 0x400 ++ SO_REUSEADDR = 0x4 ++ SO_SECATTR = 0x1011 ++ SO_SNDBUF = 0x1001 ++ SO_SNDLOWAT = 0x1003 ++ SO_SNDTIMEO = 0x1005 ++ SO_STRHOLD = 0x20000 ++ SO_TAIL = 0x200000 ++ SO_TIMESTAMP = 0x1013 ++ SO_TONSTOP = 0x2000 ++ SO_TOSTOP = 0x1000 ++ SO_TYPE = 0x1008 ++ SO_USELOOPBACK = 0x40 ++ SO_VRRP = 0x1017 ++ SO_WROFF = 0x2 ++ TCFLSH = 0x5407 ++ TCGETA = 0x5401 ++ TCGETS = 0x540d ++ TCIFLUSH = 0x0 ++ TCIOFLUSH = 0x2 ++ TCOFLUSH = 0x1 ++ TCP_ABORT_THRESHOLD = 0x11 ++ TCP_ANONPRIVBIND = 0x20 ++ TCP_CONN_ABORT_THRESHOLD = 0x13 ++ TCP_CONN_NOTIFY_THRESHOLD = 0x12 ++ TCP_CORK = 0x18 ++ TCP_EXCLBIND = 0x21 ++ TCP_INIT_CWND = 0x15 ++ TCP_KEEPALIVE = 0x8 ++ TCP_KEEPALIVE_ABORT_THRESHOLD = 0x17 ++ TCP_KEEPALIVE_THRESHOLD = 0x16 ++ TCP_KEEPCNT = 0x23 ++ TCP_KEEPIDLE = 0x22 ++ TCP_KEEPINTVL = 0x24 ++ TCP_LINGER2 = 0x1c ++ TCP_MAXSEG = 0x2 ++ TCP_MSS = 0x218 ++ TCP_NODELAY = 0x1 ++ TCP_NOTIFY_THRESHOLD = 0x10 ++ TCP_RECVDSTADDR = 0x14 ++ TCP_RTO_INITIAL = 0x19 ++ TCP_RTO_MAX = 0x1b ++ TCP_RTO_MIN = 0x1a ++ TCSAFLUSH = 0x5410 ++ TCSBRK = 0x5405 ++ TCSETA = 0x5402 ++ TCSETAF = 0x5404 ++ TCSETAW = 0x5403 ++ TCSETS = 0x540e ++ TCSETSF = 0x5410 ++ TCSETSW = 0x540f ++ TCXONC = 0x5406 ++ TIOC = 0x5400 ++ TIOCCBRK = 0x747a ++ TIOCCDTR = 0x7478 ++ TIOCCILOOP = 0x746c ++ TIOCEXCL = 0x740d ++ TIOCFLUSH = 0x7410 ++ TIOCGETC = 0x7412 ++ TIOCGETD = 0x7400 ++ TIOCGETP = 0x7408 ++ TIOCGLTC = 0x7474 ++ TIOCGPGRP = 0x7414 ++ TIOCGPPS = 0x547d ++ TIOCGPPSEV = 0x547f ++ TIOCGSID = 0x7416 ++ TIOCGSOFTCAR = 0x5469 ++ TIOCGWINSZ = 0x5468 ++ TIOCHPCL = 0x7402 ++ TIOCKBOF = 0x5409 ++ TIOCKBON = 0x5408 ++ TIOCLBIC = 0x747e ++ TIOCLBIS = 0x747f ++ TIOCLGET = 0x747c ++ TIOCLSET = 0x747d ++ TIOCMBIC = 0x741c ++ TIOCMBIS = 0x741b ++ TIOCMGET = 0x741d ++ TIOCMSET = 0x741a ++ TIOCM_CAR = 0x40 ++ TIOCM_CD = 0x40 ++ TIOCM_CTS = 0x20 ++ TIOCM_DSR = 0x100 ++ TIOCM_DTR = 0x2 ++ TIOCM_LE = 0x1 ++ TIOCM_RI = 0x80 ++ TIOCM_RNG = 0x80 ++ TIOCM_RTS = 0x4 ++ TIOCM_SR = 0x10 ++ TIOCM_ST = 0x8 ++ TIOCNOTTY = 0x7471 ++ TIOCNXCL = 0x740e ++ TIOCOUTQ = 0x7473 ++ TIOCREMOTE = 0x741e ++ TIOCSBRK = 0x747b ++ TIOCSCTTY = 0x7484 ++ TIOCSDTR = 0x7479 ++ TIOCSETC = 0x7411 ++ TIOCSETD = 0x7401 ++ TIOCSETN = 0x740a ++ TIOCSETP = 0x7409 ++ TIOCSIGNAL = 0x741f ++ TIOCSILOOP = 0x746d ++ TIOCSLTC = 0x7475 ++ TIOCSPGRP = 0x7415 ++ TIOCSPPS = 0x547e ++ TIOCSSOFTCAR = 0x546a ++ TIOCSTART = 0x746e ++ TIOCSTI = 0x7417 ++ TIOCSTOP = 0x746f ++ TIOCSWINSZ = 0x5467 ++ TOSTOP = 0x100 ++ VCEOF = 0x8 ++ VCEOL = 0x9 ++ VDISCARD = 0xd ++ VDSUSP = 0xb ++ VEOF = 0x4 ++ VEOL = 0x5 ++ VEOL2 = 0x6 ++ VERASE = 0x2 ++ VINTR = 0x0 ++ VKILL = 0x3 ++ VLNEXT = 0xf ++ VMIN = 0x4 ++ VQUIT = 0x1 ++ VREPRINT = 0xc ++ VSTART = 0x8 ++ VSTATUS = 0x10 ++ VSTOP = 0x9 ++ VSUSP = 0xa ++ VSWTCH = 0x7 ++ VT0 = 0x0 ++ VT1 = 0x4000 ++ VTDLY = 0x4000 ++ VTIME = 0x5 ++ VWERASE = 0xe ++ WCONTFLG = 0xffff ++ WCONTINUED = 0x8 ++ WCOREFLG = 0x80 ++ WEXITED = 0x1 ++ WNOHANG = 0x40 ++ WNOWAIT = 0x80 ++ WOPTMASK = 0xcf ++ WRAP = 0x20000 ++ WSIGMASK = 0x7f ++ WSTOPFLG = 0x7f ++ WSTOPPED = 0x4 ++ WTRAPPED = 0x2 ++ WUNTRACED = 0x4 ++) ++ ++// Errors ++const ( ++ E2BIG = syscall.Errno(0x7) ++ EACCES = syscall.Errno(0xd) ++ EADDRINUSE = syscall.Errno(0x7d) ++ EADDRNOTAVAIL = syscall.Errno(0x7e) ++ EADV = syscall.Errno(0x44) ++ EAFNOSUPPORT = syscall.Errno(0x7c) ++ EAGAIN = syscall.Errno(0xb) ++ EALREADY = syscall.Errno(0x95) ++ EBADE = syscall.Errno(0x32) ++ EBADF = syscall.Errno(0x9) ++ EBADFD = syscall.Errno(0x51) ++ EBADMSG = syscall.Errno(0x4d) ++ EBADR = syscall.Errno(0x33) ++ EBADRQC = syscall.Errno(0x36) ++ EBADSLT = syscall.Errno(0x37) ++ EBFONT = syscall.Errno(0x39) ++ EBUSY = syscall.Errno(0x10) ++ ECANCELED = syscall.Errno(0x2f) ++ ECHILD = syscall.Errno(0xa) ++ ECHRNG = syscall.Errno(0x25) ++ ECOMM = syscall.Errno(0x46) ++ ECONNABORTED = syscall.Errno(0x82) ++ ECONNREFUSED = syscall.Errno(0x92) ++ ECONNRESET = syscall.Errno(0x83) ++ EDEADLK = syscall.Errno(0x2d) ++ EDEADLOCK = syscall.Errno(0x38) ++ EDESTADDRREQ = syscall.Errno(0x60) ++ EDOM = syscall.Errno(0x21) ++ EDQUOT = syscall.Errno(0x31) ++ EEXIST = syscall.Errno(0x11) ++ EFAULT = syscall.Errno(0xe) ++ EFBIG = syscall.Errno(0x1b) ++ EHOSTDOWN = syscall.Errno(0x93) ++ EHOSTUNREACH = syscall.Errno(0x94) ++ EIDRM = syscall.Errno(0x24) ++ EILSEQ = syscall.Errno(0x58) ++ EINPROGRESS = syscall.Errno(0x96) ++ EINTR = syscall.Errno(0x4) ++ EINVAL = syscall.Errno(0x16) ++ EIO = syscall.Errno(0x5) ++ EISCONN = syscall.Errno(0x85) ++ EISDIR = syscall.Errno(0x15) ++ EL2HLT = syscall.Errno(0x2c) ++ EL2NSYNC = syscall.Errno(0x26) ++ EL3HLT = syscall.Errno(0x27) ++ EL3RST = syscall.Errno(0x28) ++ ELIBACC = syscall.Errno(0x53) ++ ELIBBAD = syscall.Errno(0x54) ++ ELIBEXEC = syscall.Errno(0x57) ++ ELIBMAX = syscall.Errno(0x56) ++ ELIBSCN = syscall.Errno(0x55) ++ ELNRNG = syscall.Errno(0x29) ++ ELOCKUNMAPPED = syscall.Errno(0x48) ++ ELOOP = syscall.Errno(0x5a) ++ EMFILE = syscall.Errno(0x18) ++ EMLINK = syscall.Errno(0x1f) ++ EMSGSIZE = syscall.Errno(0x61) ++ EMULTIHOP = syscall.Errno(0x4a) ++ ENAMETOOLONG = syscall.Errno(0x4e) ++ ENETDOWN = syscall.Errno(0x7f) ++ ENETRESET = syscall.Errno(0x81) ++ ENETUNREACH = syscall.Errno(0x80) ++ ENFILE = syscall.Errno(0x17) ++ ENOANO = syscall.Errno(0x35) ++ ENOBUFS = syscall.Errno(0x84) ++ ENOCSI = syscall.Errno(0x2b) ++ ENODATA = syscall.Errno(0x3d) ++ ENODEV = syscall.Errno(0x13) ++ ENOENT = syscall.Errno(0x2) ++ ENOEXEC = syscall.Errno(0x8) ++ ENOLCK = syscall.Errno(0x2e) ++ ENOLINK = syscall.Errno(0x43) ++ ENOMEM = syscall.Errno(0xc) ++ ENOMSG = syscall.Errno(0x23) ++ ENONET = syscall.Errno(0x40) ++ ENOPKG = syscall.Errno(0x41) ++ ENOPROTOOPT = syscall.Errno(0x63) ++ ENOSPC = syscall.Errno(0x1c) ++ ENOSR = syscall.Errno(0x3f) ++ ENOSTR = syscall.Errno(0x3c) ++ ENOSYS = syscall.Errno(0x59) ++ ENOTACTIVE = syscall.Errno(0x49) ++ ENOTBLK = syscall.Errno(0xf) ++ ENOTCONN = syscall.Errno(0x86) ++ ENOTDIR = syscall.Errno(0x14) ++ ENOTEMPTY = syscall.Errno(0x5d) ++ ENOTRECOVERABLE = syscall.Errno(0x3b) ++ ENOTSOCK = syscall.Errno(0x5f) ++ ENOTSUP = syscall.Errno(0x30) ++ ENOTTY = syscall.Errno(0x19) ++ ENOTUNIQ = syscall.Errno(0x50) ++ ENXIO = syscall.Errno(0x6) ++ EOPNOTSUPP = syscall.Errno(0x7a) ++ EOVERFLOW = syscall.Errno(0x4f) ++ EOWNERDEAD = syscall.Errno(0x3a) ++ EPERM = syscall.Errno(0x1) ++ EPFNOSUPPORT = syscall.Errno(0x7b) ++ EPIPE = syscall.Errno(0x20) ++ EPROTO = syscall.Errno(0x47) ++ EPROTONOSUPPORT = syscall.Errno(0x78) ++ EPROTOTYPE = syscall.Errno(0x62) ++ ERANGE = syscall.Errno(0x22) ++ EREMCHG = syscall.Errno(0x52) ++ EREMOTE = syscall.Errno(0x42) ++ ERESTART = syscall.Errno(0x5b) ++ EROFS = syscall.Errno(0x1e) ++ ESHUTDOWN = syscall.Errno(0x8f) ++ ESOCKTNOSUPPORT = syscall.Errno(0x79) ++ ESPIPE = syscall.Errno(0x1d) ++ ESRCH = syscall.Errno(0x3) ++ ESRMNT = syscall.Errno(0x45) ++ ESTALE = syscall.Errno(0x97) ++ ESTRPIPE = syscall.Errno(0x5c) ++ ETIME = syscall.Errno(0x3e) ++ ETIMEDOUT = syscall.Errno(0x91) ++ ETOOMANYREFS = syscall.Errno(0x90) ++ ETXTBSY = syscall.Errno(0x1a) ++ EUNATCH = syscall.Errno(0x2a) ++ EUSERS = syscall.Errno(0x5e) ++ EWOULDBLOCK = syscall.Errno(0xb) ++ EXDEV = syscall.Errno(0x12) ++ EXFULL = syscall.Errno(0x34) ++) ++ ++// Signals ++const ( ++ SIGABRT = syscall.Signal(0x6) ++ SIGALRM = syscall.Signal(0xe) ++ SIGBUS = syscall.Signal(0xa) ++ SIGCANCEL = syscall.Signal(0x24) ++ SIGCHLD = syscall.Signal(0x12) ++ SIGCLD = syscall.Signal(0x12) ++ SIGCONT = syscall.Signal(0x19) ++ SIGEMT = syscall.Signal(0x7) ++ SIGFPE = syscall.Signal(0x8) ++ SIGFREEZE = syscall.Signal(0x22) ++ SIGHUP = syscall.Signal(0x1) ++ SIGILL = syscall.Signal(0x4) ++ SIGINFO = syscall.Signal(0x29) ++ SIGINT = syscall.Signal(0x2) ++ SIGIO = syscall.Signal(0x16) ++ SIGIOT = syscall.Signal(0x6) ++ SIGJVM1 = syscall.Signal(0x27) ++ SIGJVM2 = syscall.Signal(0x28) ++ SIGKILL = syscall.Signal(0x9) ++ SIGLOST = syscall.Signal(0x25) ++ SIGLWP = syscall.Signal(0x21) ++ SIGPIPE = syscall.Signal(0xd) ++ SIGPOLL = syscall.Signal(0x16) ++ SIGPROF = syscall.Signal(0x1d) ++ SIGPWR = syscall.Signal(0x13) ++ SIGQUIT = syscall.Signal(0x3) ++ SIGSEGV = syscall.Signal(0xb) ++ SIGSTOP = syscall.Signal(0x17) ++ SIGSYS = syscall.Signal(0xc) ++ SIGTERM = syscall.Signal(0xf) ++ SIGTHAW = syscall.Signal(0x23) ++ SIGTRAP = syscall.Signal(0x5) ++ SIGTSTP = syscall.Signal(0x18) ++ SIGTTIN = syscall.Signal(0x1a) ++ SIGTTOU = syscall.Signal(0x1b) ++ SIGURG = syscall.Signal(0x15) ++ SIGUSR1 = syscall.Signal(0x10) ++ SIGUSR2 = syscall.Signal(0x11) ++ SIGVTALRM = syscall.Signal(0x1c) ++ SIGWAITING = syscall.Signal(0x20) ++ SIGWINCH = syscall.Signal(0x14) ++ SIGXCPU = syscall.Signal(0x1e) ++ SIGXFSZ = syscall.Signal(0x1f) ++ SIGXRES = syscall.Signal(0x26) ++) ++ ++// Error table ++var errors = [...]string{ ++ 1: "not owner", ++ 2: "no such file or directory", ++ 3: "no such process", ++ 4: "interrupted system call", ++ 5: "I/O error", ++ 6: "no such device or address", ++ 7: "arg list too long", ++ 8: "exec format error", ++ 9: "bad file number", ++ 10: "no child processes", ++ 11: "resource temporarily unavailable", ++ 12: "not enough space", ++ 13: "permission denied", ++ 14: "bad address", ++ 15: "block device required", ++ 16: "device busy", ++ 17: "file exists", ++ 18: "cross-device link", ++ 19: "no such device", ++ 20: "not a directory", ++ 21: "is a directory", ++ 22: "invalid argument", ++ 23: "file table overflow", ++ 24: "too many open files", ++ 25: "inappropriate ioctl for device", ++ 26: "text file busy", ++ 27: "file too large", ++ 28: "no space left on device", ++ 29: "illegal seek", ++ 30: "read-only file system", ++ 31: "too many links", ++ 32: "broken pipe", ++ 33: "argument out of domain", ++ 34: "result too large", ++ 35: "no message of desired type", ++ 36: "identifier removed", ++ 37: "channel number out of range", ++ 38: "level 2 not synchronized", ++ 39: "level 3 halted", ++ 40: "level 3 reset", ++ 41: "link number out of range", ++ 42: "protocol driver not attached", ++ 43: "no CSI structure available", ++ 44: "level 2 halted", ++ 45: "deadlock situation detected/avoided", ++ 46: "no record locks available", ++ 47: "operation canceled", ++ 48: "operation not supported", ++ 49: "disc quota exceeded", ++ 50: "bad exchange descriptor", ++ 51: "bad request descriptor", ++ 52: "message tables full", ++ 53: "anode table overflow", ++ 54: "bad request code", ++ 55: "invalid slot", ++ 56: "file locking deadlock", ++ 57: "bad font file format", ++ 58: "owner of the lock died", ++ 59: "lock is not recoverable", ++ 60: "not a stream device", ++ 61: "no data available", ++ 62: "timer expired", ++ 63: "out of stream resources", ++ 64: "machine is not on the network", ++ 65: "package not installed", ++ 66: "object is remote", ++ 67: "link has been severed", ++ 68: "advertise error", ++ 69: "srmount error", ++ 70: "communication error on send", ++ 71: "protocol error", ++ 72: "locked lock was unmapped ", ++ 73: "facility is not active", ++ 74: "multihop attempted", ++ 77: "not a data message", ++ 78: "file name too long", ++ 79: "value too large for defined data type", ++ 80: "name not unique on network", ++ 81: "file descriptor in bad state", ++ 82: "remote address changed", ++ 83: "can not access a needed shared library", ++ 84: "accessing a corrupted shared library", ++ 85: ".lib section in a.out corrupted", ++ 86: "attempting to link in more shared libraries than system limit", ++ 87: "can not exec a shared library directly", ++ 88: "illegal byte sequence", ++ 89: "operation not applicable", ++ 90: "number of symbolic links encountered during path name traversal exceeds MAXSYMLINKS", ++ 91: "error 91", ++ 92: "error 92", ++ 93: "directory not empty", ++ 94: "too many users", ++ 95: "socket operation on non-socket", ++ 96: "destination address required", ++ 97: "message too long", ++ 98: "protocol wrong type for socket", ++ 99: "option not supported by protocol", ++ 120: "protocol not supported", ++ 121: "socket type not supported", ++ 122: "operation not supported on transport endpoint", ++ 123: "protocol family not supported", ++ 124: "address family not supported by protocol family", ++ 125: "address already in use", ++ 126: "cannot assign requested address", ++ 127: "network is down", ++ 128: "network is unreachable", ++ 129: "network dropped connection because of reset", ++ 130: "software caused connection abort", ++ 131: "connection reset by peer", ++ 132: "no buffer space available", ++ 133: "transport endpoint is already connected", ++ 134: "transport endpoint is not connected", ++ 143: "cannot send after socket shutdown", ++ 144: "too many references: cannot splice", ++ 145: "connection timed out", ++ 146: "connection refused", ++ 147: "host is down", ++ 148: "no route to host", ++ 149: "operation already in progress", ++ 150: "operation now in progress", ++ 151: "stale NFS file handle", ++} ++ ++// Signal table ++var signals = [...]string{ ++ 1: "hangup", ++ 2: "interrupt", ++ 3: "quit", ++ 4: "illegal Instruction", ++ 5: "trace/Breakpoint Trap", ++ 6: "abort", ++ 7: "emulation Trap", ++ 8: "arithmetic Exception", ++ 9: "killed", ++ 10: "bus Error", ++ 11: "segmentation Fault", ++ 12: "bad System Call", ++ 13: "broken Pipe", ++ 14: "alarm Clock", ++ 15: "terminated", ++ 16: "user Signal 1", ++ 17: "user Signal 2", ++ 18: "child Status Changed", ++ 19: "power-Fail/Restart", ++ 20: "window Size Change", ++ 21: "urgent Socket Condition", ++ 22: "pollable Event", ++ 23: "stopped (signal)", ++ 24: "stopped (user)", ++ 25: "continued", ++ 26: "stopped (tty input)", ++ 27: "stopped (tty output)", ++ 28: "virtual Timer Expired", ++ 29: "profiling Timer Expired", ++ 30: "cpu Limit Exceeded", ++ 31: "file Size Limit Exceeded", ++ 32: "no runnable lwp", ++ 33: "inter-lwp signal", ++ 34: "checkpoint Freeze", ++ 35: "checkpoint Thaw", ++ 36: "thread Cancellation", ++ 37: "resource Lost", ++ 38: "resource Control Exceeded", ++ 39: "reserved for JVM 1", ++ 40: "reserved for JVM 2", ++ 41: "information Request", ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go +new file mode 100644 +index 0000000..e48f4a5 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.go +@@ -0,0 +1,1394 @@ ++// mksyscall.pl -l32 -tags darwin,386 syscall_bsd.go syscall_darwin.go syscall_darwin_386.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build darwin,386 ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++var _ syscall.Errno ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getgroups(ngid int, gid *_Gid_t) (n int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setgroups(ngid int, gid *_Gid_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { ++ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) ++ wpid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socket(domain int, typ int, proto int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { ++ _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Shutdown(s int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { ++ _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { ++ var _p0 unsafe.Pointer ++ if len(mib) > 0 { ++ _p0 = unsafe.Pointer(&mib[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimes(path string, timeval *[2]Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func futimes(fd int, timeval *[2]Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fcntl(fd int, cmd int, arg int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe() (r int, w int, err error) { ++ r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) ++ r = int(r0) ++ w = int(r1) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func kill(pid int, signum int, posix int) (err error) { ++ _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Access(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chflags(path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chmod(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Close(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup(fd int) (nfd int, err error) { ++ r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) ++ nfd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup2(from int, to int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exchangedata(path1 string, path2 string, options int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path1) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(path2) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exit(code int) { ++ Syscall(SYS_EXIT, uintptr(code), 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchdir(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchflags(fd int, flags int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Flock(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fpathconf(fd int, name int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstat(fd int, stat *Stat_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstatfs(fd int, stat *Statfs_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fsync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ftruncate(fd int, length int64) (err error) { ++ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdtablesize() (size int) { ++ r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) ++ size = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getegid() (egid int) { ++ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) ++ egid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Geteuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getgid() (gid int) { ++ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgrp() (pgrp int) { ++ r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) ++ pgrp = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpid() (pid int) { ++ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getppid() (ppid int) { ++ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) ++ ppid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpriority(which int, who int) (prio int, err error) { ++ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) ++ prio = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrusage(who int, rusage *Rusage) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getsid(pid int) (sid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) ++ sid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Issetugid() (tainted bool) { ++ r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0) ++ tainted = bool(r0 != 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kqueue() (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Link(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listen(s int, backlog int) (err error) { ++ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lstat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkdir(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkfifo(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mknod(path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlockall(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlockall() (err error) { ++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Open(path string, mode int, perm uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pathconf(path string, name int) (val int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func read(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Readlink(path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Rename(from string, to string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(from) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(to) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Revoke(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Rmdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { ++ r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) ++ newoffset = int64(int64(r1)<<32 | int64(r0)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { ++ _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setegid(egid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seteuid(euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setgid(gid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setlogin(name string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(name) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpgid(pid int, pgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpriority(which int, who int, prio int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setprivexec(flag int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setregid(rgid int, egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setreuid(ruid int, euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setsid() (pid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) ++ pid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Settimeofday(tp *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setuid(uid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Stat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Statfs(path string, stat *Statfs_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Symlink(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sync() (err error) { ++ _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Truncate(path string, length int64) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Umask(newmask int) (oldmask int) { ++ r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) ++ oldmask = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Undelete(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unlink(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unmount(path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func write(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { ++ r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) ++ ret = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func munmap(addr uintptr, length uintptr) (err error) { ++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func readlen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func writelen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) { ++ r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) ++ sec = int32(r0) ++ usec = int32(r1) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +new file mode 100644 +index 0000000..672ada0 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +@@ -0,0 +1,1409 @@ ++// mksyscall.pl -tags darwin,amd64 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build darwin,amd64 ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++var _ syscall.Errno ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getgroups(ngid int, gid *_Gid_t) (n int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setgroups(ngid int, gid *_Gid_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { ++ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) ++ wpid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socket(domain int, typ int, proto int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { ++ _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Shutdown(s int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { ++ _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { ++ var _p0 unsafe.Pointer ++ if len(mib) > 0 { ++ _p0 = unsafe.Pointer(&mib[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimes(path string, timeval *[2]Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func futimes(fd int, timeval *[2]Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fcntl(fd int, cmd int, arg int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe() (r int, w int, err error) { ++ r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) ++ r = int(r0) ++ w = int(r1) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func kill(pid int, signum int, posix int) (err error) { ++ _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Access(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chflags(path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chmod(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Close(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup(fd int) (nfd int, err error) { ++ r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) ++ nfd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup2(from int, to int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exchangedata(path1 string, path2 string, options int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path1) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(path2) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exit(code int) { ++ Syscall(SYS_EXIT, uintptr(code), 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchdir(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchflags(fd int, flags int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Flock(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fpathconf(fd int, name int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstat(fd int, stat *Stat_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstatfs(fd int, stat *Statfs_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fsync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ftruncate(fd int, length int64) (err error) { ++ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdtablesize() (size int) { ++ r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) ++ size = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getegid() (egid int) { ++ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) ++ egid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Geteuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getgid() (gid int) { ++ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgrp() (pgrp int) { ++ r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) ++ pgrp = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpid() (pid int) { ++ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getppid() (ppid int) { ++ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) ++ ppid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpriority(which int, who int) (prio int, err error) { ++ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) ++ prio = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrusage(who int, rusage *Rusage) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getsid(pid int) (sid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) ++ sid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Issetugid() (tainted bool) { ++ r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0) ++ tainted = bool(r0 != 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kqueue() (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Link(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listen(s int, backlog int) (err error) { ++ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lstat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkdir(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkfifo(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mknod(path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlockall(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlockall() (err error) { ++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Open(path string, mode int, perm uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pathconf(path string, name int) (val int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func read(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Readlink(path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Rename(from string, to string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(from) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(to) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Revoke(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Rmdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { ++ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) ++ newoffset = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { ++ _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setegid(egid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seteuid(euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setgid(gid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setlogin(name string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(name) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpgid(pid int, pgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpriority(which int, who int, prio int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setprivexec(flag int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setregid(rgid int, egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setreuid(ruid int, euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setsid() (pid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) ++ pid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Settimeofday(tp *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setuid(uid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Stat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Statfs(path string, stat *Statfs_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Symlink(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sync() (err error) { ++ _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Truncate(path string, length int64) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Umask(newmask int) (oldmask int) { ++ r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) ++ oldmask = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Undelete(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unlink(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unmount(path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func write(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { ++ r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) ++ ret = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func munmap(addr uintptr, length uintptr) (err error) { ++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func readlen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func writelen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) { ++ r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) ++ sec = int64(r0) ++ usec = int32(r1) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go +new file mode 100644 +index 0000000..d516409 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.go +@@ -0,0 +1,1394 @@ ++// mksyscall.pl -l32 -tags darwin,arm syscall_bsd.go syscall_darwin.go syscall_darwin_arm.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build darwin,arm ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++var _ syscall.Errno ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getgroups(ngid int, gid *_Gid_t) (n int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setgroups(ngid int, gid *_Gid_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { ++ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) ++ wpid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socket(domain int, typ int, proto int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { ++ _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Shutdown(s int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { ++ _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { ++ var _p0 unsafe.Pointer ++ if len(mib) > 0 { ++ _p0 = unsafe.Pointer(&mib[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimes(path string, timeval *[2]Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func futimes(fd int, timeval *[2]Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fcntl(fd int, cmd int, arg int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe() (r int, w int, err error) { ++ r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) ++ r = int(r0) ++ w = int(r1) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func kill(pid int, signum int, posix int) (err error) { ++ _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Access(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chflags(path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chmod(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Close(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup(fd int) (nfd int, err error) { ++ r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) ++ nfd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup2(from int, to int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exchangedata(path1 string, path2 string, options int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path1) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(path2) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exit(code int) { ++ Syscall(SYS_EXIT, uintptr(code), 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchdir(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchflags(fd int, flags int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Flock(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fpathconf(fd int, name int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstat(fd int, stat *Stat_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstatfs(fd int, stat *Statfs_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fsync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ftruncate(fd int, length int64) (err error) { ++ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdtablesize() (size int) { ++ r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) ++ size = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getegid() (egid int) { ++ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) ++ egid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Geteuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getgid() (gid int) { ++ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgrp() (pgrp int) { ++ r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) ++ pgrp = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpid() (pid int) { ++ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getppid() (ppid int) { ++ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) ++ ppid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpriority(which int, who int) (prio int, err error) { ++ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) ++ prio = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrusage(who int, rusage *Rusage) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getsid(pid int) (sid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) ++ sid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Issetugid() (tainted bool) { ++ r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0) ++ tainted = bool(r0 != 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kqueue() (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Link(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listen(s int, backlog int) (err error) { ++ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lstat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkdir(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkfifo(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mknod(path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlockall(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlockall() (err error) { ++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Open(path string, mode int, perm uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pathconf(path string, name int) (val int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func read(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Readlink(path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Rename(from string, to string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(from) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(to) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Revoke(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Rmdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { ++ r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) ++ newoffset = int64(int64(r1)<<32 | int64(r0)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { ++ _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setegid(egid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seteuid(euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setgid(gid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setlogin(name string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(name) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpgid(pid int, pgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpriority(which int, who int, prio int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setprivexec(flag int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setregid(rgid int, egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setreuid(ruid int, euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setsid() (pid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) ++ pid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Settimeofday(tp *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setuid(uid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Stat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Statfs(path string, stat *Statfs_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Symlink(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sync() (err error) { ++ _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Truncate(path string, length int64) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Umask(newmask int) (oldmask int) { ++ r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) ++ oldmask = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Undelete(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unlink(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unmount(path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func write(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { ++ r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) ++ ret = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func munmap(addr uintptr, length uintptr) (err error) { ++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func readlen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func writelen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func gettimeofday(tp *Timeval) (sec int32, usec int32, err error) { ++ r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) ++ sec = int32(r0) ++ usec = int32(r1) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +new file mode 100644 +index 0000000..e97759c +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +@@ -0,0 +1,1394 @@ ++// mksyscall.pl -tags darwin,arm64 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build darwin,arm64 ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++var _ syscall.Errno ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getgroups(ngid int, gid *_Gid_t) (n int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setgroups(ngid int, gid *_Gid_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { ++ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) ++ wpid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socket(domain int, typ int, proto int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { ++ _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Shutdown(s int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { ++ _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { ++ var _p0 unsafe.Pointer ++ if len(mib) > 0 { ++ _p0 = unsafe.Pointer(&mib[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimes(path string, timeval *[2]Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func futimes(fd int, timeval *[2]Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fcntl(fd int, cmd int, arg int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe() (r int, w int, err error) { ++ r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) ++ r = int(r0) ++ w = int(r1) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func kill(pid int, signum int, posix int) (err error) { ++ _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), uintptr(posix)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Access(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chflags(path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chmod(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Close(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup(fd int) (nfd int, err error) { ++ r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) ++ nfd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup2(from int, to int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exchangedata(path1 string, path2 string, options int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path1) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(path2) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_EXCHANGEDATA, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exit(code int) { ++ Syscall(SYS_EXIT, uintptr(code), 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchdir(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchflags(fd int, flags int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Flock(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fpathconf(fd int, name int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstat(fd int, stat *Stat_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstatfs(fd int, stat *Statfs_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTATFS64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fsync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ftruncate(fd int, length int64) (err error) { ++ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdtablesize() (size int) { ++ r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) ++ size = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getegid() (egid int) { ++ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) ++ egid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Geteuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getgid() (gid int) { ++ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgrp() (pgrp int) { ++ r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) ++ pgrp = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpid() (pid int) { ++ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getppid() (ppid int) { ++ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) ++ ppid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpriority(which int, who int) (prio int, err error) { ++ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) ++ prio = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrusage(who int, rusage *Rusage) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getsid(pid int) (sid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) ++ sid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Issetugid() (tainted bool) { ++ r0, _, _ := RawSyscall(SYS_ISSETUGID, 0, 0, 0) ++ tainted = bool(r0 != 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kqueue() (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Link(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listen(s int, backlog int) (err error) { ++ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lstat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkdir(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkfifo(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mknod(path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlockall(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlockall() (err error) { ++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Open(path string, mode int, perm uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pathconf(path string, name int) (val int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func read(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Readlink(path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Rename(from string, to string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(from) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(to) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Revoke(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Rmdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { ++ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) ++ newoffset = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { ++ _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setegid(egid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETEGID, uintptr(egid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seteuid(euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setgid(gid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setlogin(name string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(name) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpgid(pid int, pgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpriority(which int, who int, prio int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setprivexec(flag int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIVEXEC, uintptr(flag), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setregid(rgid int, egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setreuid(ruid int, euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setsid() (pid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) ++ pid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Settimeofday(tp *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setuid(uid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Stat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Statfs(path string, stat *Statfs_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Symlink(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sync() (err error) { ++ _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Truncate(path string, length int64) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Umask(newmask int) (oldmask int) { ++ r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) ++ oldmask = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Undelete(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unlink(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unmount(path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func write(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { ++ r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) ++ ret = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func munmap(addr uintptr, length uintptr) (err error) { ++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func readlen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func writelen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func gettimeofday(tp *Timeval) (sec int64, usec int32, err error) { ++ r0, r1, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) ++ sec = int64(r0) ++ usec = int32(r1) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go +new file mode 100644 +index 0000000..3e9d82a +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go +@@ -0,0 +1,1382 @@ ++// mksyscall.pl -dragonfly -tags dragonfly,amd64 syscall_bsd.go syscall_dragonfly.go syscall_dragonfly_amd64.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build dragonfly,amd64 ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++var _ syscall.Errno ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getgroups(ngid int, gid *_Gid_t) (n int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setgroups(ngid int, gid *_Gid_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { ++ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) ++ wpid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socket(domain int, typ int, proto int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { ++ _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Shutdown(s int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { ++ _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { ++ var _p0 unsafe.Pointer ++ if len(mib) > 0 { ++ _p0 = unsafe.Pointer(&mib[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimes(path string, timeval *[2]Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func futimes(fd int, timeval *[2]Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fcntl(fd int, cmd int, arg int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe() (r int, w int, err error) { ++ r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) ++ r = int(r0) ++ w = int(r1) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func extpread(fd int, p []byte, flags int, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_EXTPREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(offset), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func extpwrite(fd int, p []byte, flags int, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_EXTPWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(offset), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Access(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chflags(path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chmod(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Close(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup(fd int) (nfd int, err error) { ++ r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) ++ nfd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup2(from int, to int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exit(code int) { ++ Syscall(SYS_EXIT, uintptr(code), 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchdir(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchflags(fd int, flags int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Flock(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fpathconf(fd int, name int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstat(fd int, stat *Stat_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstatfs(fd int, stat *Statfs_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fsync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ftruncate(fd int, length int64) (err error) { ++ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdtablesize() (size int) { ++ r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) ++ size = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getegid() (egid int) { ++ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) ++ egid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Geteuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getgid() (gid int) { ++ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgrp() (pgrp int) { ++ r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) ++ pgrp = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpid() (pid int) { ++ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getppid() (ppid int) { ++ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) ++ ppid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpriority(which int, who int) (prio int, err error) { ++ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) ++ prio = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrusage(who int, rusage *Rusage) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getsid(pid int) (sid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) ++ sid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Issetugid() (tainted bool) { ++ r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) ++ tainted = bool(r0 != 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kill(pid int, signum syscall.Signal) (err error) { ++ _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kqueue() (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Link(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listen(s int, backlog int) (err error) { ++ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lstat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkdir(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkfifo(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mknod(path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlockall(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlockall() (err error) { ++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Nanosleep(time *Timespec, leftover *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Open(path string, mode int, perm uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pathconf(path string, name int) (val int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func read(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Readlink(path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Rename(from string, to string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(from) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(to) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Revoke(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Rmdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { ++ r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) ++ newoffset = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { ++ _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setegid(egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seteuid(euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setgid(gid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setlogin(name string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(name) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpgid(pid int, pgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpriority(which int, who int, prio int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setregid(rgid int, egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setreuid(ruid int, euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresgid(rgid int, egid int, sgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresuid(ruid int, euid int, suid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setsid() (pid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) ++ pid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Settimeofday(tp *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setuid(uid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Stat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Statfs(path string, stat *Statfs_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Symlink(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sync() (err error) { ++ _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Truncate(path string, length int64) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Umask(newmask int) (oldmask int) { ++ r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) ++ oldmask = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Undelete(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unlink(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unmount(path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func write(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { ++ r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0) ++ ret = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func munmap(addr uintptr, length uintptr) (err error) { ++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func readlen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func writelen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go +new file mode 100644 +index 0000000..f53801c +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go +@@ -0,0 +1,1617 @@ ++// mksyscall.pl -l32 -tags freebsd,386 syscall_bsd.go syscall_freebsd.go syscall_freebsd_386.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build freebsd,386 ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++var _ syscall.Errno ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getgroups(ngid int, gid *_Gid_t) (n int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setgroups(ngid int, gid *_Gid_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { ++ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) ++ wpid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socket(domain int, typ int, proto int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { ++ _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Shutdown(s int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { ++ _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { ++ var _p0 unsafe.Pointer ++ if len(mib) > 0 { ++ _p0 = unsafe.Pointer(&mib[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimes(path string, timeval *[2]Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func futimes(fd int, timeval *[2]Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fcntl(fd int, cmd int, arg int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe() (r int, w int, err error) { ++ r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) ++ r = int(r0) ++ w = int(r1) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Access(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chflags(path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chmod(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Close(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup(fd int) (nfd int, err error) { ++ r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) ++ nfd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup2(from int, to int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exit(code int) { ++ Syscall(SYS_EXIT, uintptr(code), 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { ++ r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(file) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(file) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(file) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(file) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fadvise(fd int, offset int64, length int64, advice int) (err error) { ++ _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchdir(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchflags(fd int, flags int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Flock(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fpathconf(fd int, name int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstat(fd int, stat *Stat_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstatfs(fd int, stat *Statfs_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fsync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ftruncate(fd int, length int64) (err error) { ++ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdtablesize() (size int) { ++ r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) ++ size = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getegid() (egid int) { ++ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) ++ egid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Geteuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getgid() (gid int) { ++ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgrp() (pgrp int) { ++ r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) ++ pgrp = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpid() (pid int) { ++ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getppid() (ppid int) { ++ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) ++ ppid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpriority(which int, who int) (prio int, err error) { ++ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) ++ prio = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrusage(who int, rusage *Rusage) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getsid(pid int) (sid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) ++ sid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Issetugid() (tainted bool) { ++ r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) ++ tainted = bool(r0 != 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kill(pid int, signum syscall.Signal) (err error) { ++ _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kqueue() (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Link(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listen(s int, backlog int) (err error) { ++ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lstat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkdir(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkfifo(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mknod(path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlockall(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlockall() (err error) { ++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Nanosleep(time *Timespec, leftover *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Open(path string, mode int, perm uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pathconf(path string, name int) (val int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func read(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Readlink(path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Rename(from string, to string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(from) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(to) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Revoke(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Rmdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { ++ r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) ++ newoffset = int64(int64(r1)<<32 | int64(r0)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { ++ _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setegid(egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seteuid(euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setgid(gid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setlogin(name string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(name) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpgid(pid int, pgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpriority(which int, who int, prio int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setregid(rgid int, egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setreuid(ruid int, euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresgid(rgid int, egid int, sgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresuid(ruid int, euid int, suid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setsid() (pid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) ++ pid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Settimeofday(tp *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setuid(uid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Stat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Statfs(path string, stat *Statfs_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Symlink(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sync() (err error) { ++ _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Truncate(path string, length int64) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Umask(newmask int) (oldmask int) { ++ r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) ++ oldmask = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Undelete(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unlink(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unmount(path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func write(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { ++ r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) ++ ret = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func munmap(addr uintptr, length uintptr) (err error) { ++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func readlen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func writelen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { ++ r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) ++ nfd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go +new file mode 100644 +index 0000000..55b0741 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go +@@ -0,0 +1,1617 @@ ++// mksyscall.pl -tags freebsd,amd64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_amd64.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build freebsd,amd64 ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++var _ syscall.Errno ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getgroups(ngid int, gid *_Gid_t) (n int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setgroups(ngid int, gid *_Gid_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { ++ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) ++ wpid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socket(domain int, typ int, proto int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { ++ _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Shutdown(s int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { ++ _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { ++ var _p0 unsafe.Pointer ++ if len(mib) > 0 { ++ _p0 = unsafe.Pointer(&mib[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimes(path string, timeval *[2]Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func futimes(fd int, timeval *[2]Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fcntl(fd int, cmd int, arg int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe() (r int, w int, err error) { ++ r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) ++ r = int(r0) ++ w = int(r1) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Access(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chflags(path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chmod(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Close(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup(fd int) (nfd int, err error) { ++ r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) ++ nfd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup2(from int, to int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exit(code int) { ++ Syscall(SYS_EXIT, uintptr(code), 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { ++ r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(file) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(file) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(file) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(file) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fadvise(fd int, offset int64, length int64, advice int) (err error) { ++ _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchdir(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchflags(fd int, flags int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Flock(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fpathconf(fd int, name int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstat(fd int, stat *Stat_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstatfs(fd int, stat *Statfs_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fsync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ftruncate(fd int, length int64) (err error) { ++ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdtablesize() (size int) { ++ r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) ++ size = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getegid() (egid int) { ++ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) ++ egid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Geteuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getgid() (gid int) { ++ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgrp() (pgrp int) { ++ r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) ++ pgrp = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpid() (pid int) { ++ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getppid() (ppid int) { ++ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) ++ ppid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpriority(which int, who int) (prio int, err error) { ++ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) ++ prio = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrusage(who int, rusage *Rusage) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getsid(pid int) (sid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) ++ sid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Issetugid() (tainted bool) { ++ r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) ++ tainted = bool(r0 != 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kill(pid int, signum syscall.Signal) (err error) { ++ _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kqueue() (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Link(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listen(s int, backlog int) (err error) { ++ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lstat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkdir(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkfifo(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mknod(path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlockall(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlockall() (err error) { ++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Nanosleep(time *Timespec, leftover *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Open(path string, mode int, perm uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pathconf(path string, name int) (val int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func read(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Readlink(path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Rename(from string, to string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(from) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(to) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Revoke(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Rmdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { ++ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) ++ newoffset = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { ++ _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setegid(egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seteuid(euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setgid(gid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setlogin(name string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(name) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpgid(pid int, pgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpriority(which int, who int, prio int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setregid(rgid int, egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setreuid(ruid int, euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresgid(rgid int, egid int, sgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresuid(ruid int, euid int, suid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setsid() (pid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) ++ pid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Settimeofday(tp *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setuid(uid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Stat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Statfs(path string, stat *Statfs_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Symlink(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sync() (err error) { ++ _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Truncate(path string, length int64) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Umask(newmask int) (oldmask int) { ++ r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) ++ oldmask = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Undelete(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unlink(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unmount(path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func write(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { ++ r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) ++ ret = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func munmap(addr uintptr, length uintptr) (err error) { ++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func readlen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func writelen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { ++ r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) ++ nfd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go +new file mode 100644 +index 0000000..0e9b42b +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go +@@ -0,0 +1,1617 @@ ++// mksyscall.pl -l32 -arm -tags freebsd,arm syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build freebsd,arm ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++var _ syscall.Errno ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getgroups(ngid int, gid *_Gid_t) (n int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setgroups(ngid int, gid *_Gid_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { ++ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) ++ wpid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socket(domain int, typ int, proto int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { ++ _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Shutdown(s int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { ++ _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { ++ var _p0 unsafe.Pointer ++ if len(mib) > 0 { ++ _p0 = unsafe.Pointer(&mib[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimes(path string, timeval *[2]Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func futimes(fd int, timeval *[2]Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fcntl(fd int, cmd int, arg int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe() (r int, w int, err error) { ++ r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) ++ r = int(r0) ++ w = int(r1) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Access(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chflags(path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chmod(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Close(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup(fd int) (nfd int, err error) { ++ r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) ++ nfd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup2(from int, to int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exit(code int) { ++ Syscall(SYS_EXIT, uintptr(code), 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { ++ r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(file) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(file) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(file) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(file) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attrname) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) ++ ret = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fadvise(fd int, offset int64, length int64, advice int) (err error) { ++ _, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchdir(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchflags(fd int, flags int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Flock(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fpathconf(fd int, name int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstat(fd int, stat *Stat_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstatfs(fd int, stat *Statfs_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fsync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ftruncate(fd int, length int64) (err error) { ++ _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdtablesize() (size int) { ++ r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) ++ size = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getegid() (egid int) { ++ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) ++ egid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Geteuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getgid() (gid int) { ++ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgrp() (pgrp int) { ++ r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) ++ pgrp = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpid() (pid int) { ++ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getppid() (ppid int) { ++ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) ++ ppid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpriority(which int, who int) (prio int, err error) { ++ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) ++ prio = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrusage(who int, rusage *Rusage) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getsid(pid int) (sid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) ++ sid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Issetugid() (tainted bool) { ++ r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) ++ tainted = bool(r0 != 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kill(pid int, signum syscall.Signal) (err error) { ++ _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kqueue() (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Link(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listen(s int, backlog int) (err error) { ++ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lstat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkdir(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkfifo(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mknod(path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlockall(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlockall() (err error) { ++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Nanosleep(time *Timespec, leftover *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Open(path string, mode int, perm uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pathconf(path string, name int) (val int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func read(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Readlink(path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Rename(from string, to string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(from) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(to) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Revoke(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Rmdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { ++ r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) ++ newoffset = int64(int64(r1)<<32 | int64(r0)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { ++ _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setegid(egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seteuid(euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setgid(gid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setlogin(name string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(name) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpgid(pid int, pgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpriority(which int, who int, prio int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setregid(rgid int, egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setreuid(ruid int, euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresgid(rgid int, egid int, sgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresuid(ruid int, euid int, suid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setsid() (pid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) ++ pid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Settimeofday(tp *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setuid(uid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Stat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Statfs(path string, stat *Statfs_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Symlink(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sync() (err error) { ++ _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Truncate(path string, length int64) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Umask(newmask int) (oldmask int) { ++ r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) ++ oldmask = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Undelete(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unlink(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unmount(path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func write(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { ++ r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) ++ ret = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func munmap(addr uintptr, length uintptr) (err error) { ++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func readlen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func writelen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { ++ r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) ++ nfd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go +new file mode 100644 +index 0000000..d4ec806 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go +@@ -0,0 +1,1649 @@ ++// mksyscall.pl -l32 -tags linux,386 syscall_linux.go syscall_linux_386.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build linux,386 ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++var _ syscall.Errno ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unlinkat(dirfd int, path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimes(path string, times *[2]Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getcwd(buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { ++ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) ++ wpid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(arg) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(source) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ var _p2 *byte ++ _p2, err = BytePtrFromString(fstype) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Acct(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Adjtimex(buf *Timex) (state int, err error) { ++ r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) ++ state = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ClockGettime(clockid int32, time *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Close(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup(oldfd int) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup3(oldfd int, newfd int, flags int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCreate(size int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCreate1(flag int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { ++ _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exit(code int) { ++ Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { ++ _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchdir(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fcntl(fd int, cmd int, arg int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fdatasync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Flock(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fsync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdents(fd int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpid() (pid int) { ++ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getppid() (ppid int) { ++ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) ++ ppid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpriority(which int, who int) (prio int, err error) { ++ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) ++ prio = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrandom(buf []byte, flags int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrusage(who int, rusage *Rusage) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getsid(pid int) (sid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) ++ sid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettid() (tid int) { ++ r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) ++ tid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getxattr(path string, attr string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(dest) > 0 { ++ _p2 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) ++ sz = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(pathname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) ++ watchdesc = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyInit1(flags int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) ++ success = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kill(pid int, sig syscall.Signal) (err error) { ++ _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Klogctl(typ int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listxattr(path string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(dest) > 0 { ++ _p1 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) ++ sz = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkdirat(dirfd int, path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Nanosleep(time *Timespec, leftover *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func PivotRoot(newroot string, putold string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(newroot) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(putold) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { ++ _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func read(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Removexattr(path string, attr string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setdomainname(p []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sethostname(p []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpgid(pid int, pgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setsid() (pid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) ++ pid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Settimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setns(fd int, nstype int) (err error) { ++ _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpriority(which int, who int, prio int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setxattr(path string, attr string, data []byte, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(data) > 0 { ++ _p2 = unsafe.Pointer(&data[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sync() { ++ Syscall(SYS_SYNC, 0, 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sysinfo(info *Sysinfo_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { ++ r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) ++ n = int64(int64(r1)<<32 | int64(r0)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { ++ _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Times(tms *Tms) (ticks uintptr, err error) { ++ r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) ++ ticks = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Umask(mask int) (oldmask int) { ++ r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) ++ oldmask = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Uname(buf *Utsname) (err error) { ++ _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unmount(target string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unshare(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ustat(dev int, ubuf *Ustat_t) (err error) { ++ _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func write(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func exitThread(code int) (err error) { ++ _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func readlen(fd int, p *byte, np int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func writelen(fd int, p *byte, np int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func munmap(addr uintptr, length uintptr) (err error) { ++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Madvise(b []byte, advice int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlockall(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlockall() (err error) { ++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe(p *[2]_C_int) (err error) { ++ _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe2(p *[2]_C_int, flags int) (err error) { ++ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup2(oldfd int, newfd int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fadvise(fd int, offset int64, length int64, advice int) (err error) { ++ _, _, e1 := Syscall6(SYS_FADVISE64_64, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstat(fd int, stat *Stat_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ftruncate(fd int, length int64) (err error) { ++ _, _, e1 := Syscall(SYS_FTRUNCATE64, uintptr(fd), uintptr(length), uintptr(length>>32)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getegid() (egid int) { ++ r0, _, _ := RawSyscall(SYS_GETEGID32, 0, 0, 0) ++ egid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Geteuid() (euid int) { ++ r0, _, _ := RawSyscall(SYS_GETEUID32, 0, 0, 0) ++ euid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getgid() (gid int) { ++ r0, _, _ := RawSyscall(SYS_GETGID32, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETUID32, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyInit() (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ioperm(from int, num int, on int) (err error) { ++ _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Iopl(level int) (err error) { ++ _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LCHOWN32, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lstat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) ++ written = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setfsgid(gid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setfsuid(uid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setregid(rgid int, egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREGID32, uintptr(rgid), uintptr(egid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresgid(rgid int, egid int, sgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESGID32, uintptr(rgid), uintptr(egid), uintptr(sgid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresuid(ruid int, euid int, suid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESUID32, uintptr(ruid), uintptr(euid), uintptr(suid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setreuid(ruid int, euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREUID32, uintptr(ruid), uintptr(euid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Stat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { ++ _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), uintptr(flags)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Truncate(path string, length int64) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getgroups(n int, list *_Gid_t) (nn int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0) ++ nn = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setgroups(n int, list *_Gid_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { ++ r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) ++ xaddr = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(events) > 0 { ++ _p0 = unsafe.Pointer(&events[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pause() (err error) { ++ _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getrlimit(resource int, rlim *rlimit32) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setrlimit(resource int, rlim *rlimit32) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Time(t *Time_t) (tt Time_t, err error) { ++ r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) ++ tt = Time_t(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Utime(path string, buf *Utimbuf) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go +new file mode 100644 +index 0000000..8b2e87d +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go +@@ -0,0 +1,1842 @@ ++// mksyscall.pl -tags linux,amd64 syscall_linux.go syscall_linux_amd64.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build linux,amd64 ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++var _ syscall.Errno ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unlinkat(dirfd int, path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimes(path string, times *[2]Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getcwd(buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { ++ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) ++ wpid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(arg) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(source) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ var _p2 *byte ++ _p2, err = BytePtrFromString(fstype) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Acct(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Adjtimex(buf *Timex) (state int, err error) { ++ r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) ++ state = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ClockGettime(clockid int32, time *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Close(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup(oldfd int) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup3(oldfd int, newfd int, flags int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCreate(size int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCreate1(flag int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { ++ _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exit(code int) { ++ Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { ++ _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchdir(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fcntl(fd int, cmd int, arg int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fdatasync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Flock(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fsync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdents(fd int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpid() (pid int) { ++ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getppid() (ppid int) { ++ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) ++ ppid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpriority(which int, who int) (prio int, err error) { ++ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) ++ prio = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrandom(buf []byte, flags int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrusage(who int, rusage *Rusage) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getsid(pid int) (sid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) ++ sid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettid() (tid int) { ++ r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) ++ tid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getxattr(path string, attr string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(dest) > 0 { ++ _p2 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) ++ sz = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(pathname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) ++ watchdesc = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyInit1(flags int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) ++ success = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kill(pid int, sig syscall.Signal) (err error) { ++ _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Klogctl(typ int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listxattr(path string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(dest) > 0 { ++ _p1 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) ++ sz = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkdirat(dirfd int, path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Nanosleep(time *Timespec, leftover *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func PivotRoot(newroot string, putold string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(newroot) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(putold) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { ++ _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func read(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Removexattr(path string, attr string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setdomainname(p []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sethostname(p []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpgid(pid int, pgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setsid() (pid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) ++ pid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Settimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setns(fd int, nstype int) (err error) { ++ _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpriority(which int, who int, prio int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setxattr(path string, attr string, data []byte, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(data) > 0 { ++ _p2 = unsafe.Pointer(&data[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sync() { ++ Syscall(SYS_SYNC, 0, 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sysinfo(info *Sysinfo_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { ++ r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) ++ n = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { ++ _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Times(tms *Tms) (ticks uintptr, err error) { ++ r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) ++ ticks = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Umask(mask int) (oldmask int) { ++ r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) ++ oldmask = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Uname(buf *Utsname) (err error) { ++ _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unmount(target string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unshare(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ustat(dev int, ubuf *Ustat_t) (err error) { ++ _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func write(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func exitThread(code int) (err error) { ++ _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func readlen(fd int, p *byte, np int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func writelen(fd int, p *byte, np int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func munmap(addr uintptr, length uintptr) (err error) { ++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Madvise(b []byte, advice int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlockall(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlockall() (err error) { ++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup2(oldfd int, newfd int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(events) > 0 { ++ _p0 = unsafe.Pointer(&events[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fadvise(fd int, offset int64, length int64, advice int) (err error) { ++ _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstat(fd int, stat *Stat_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstatfs(fd int, buf *Statfs_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ftruncate(fd int, length int64) (err error) { ++ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getegid() (egid int) { ++ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) ++ egid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Geteuid() (euid int) { ++ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) ++ euid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getgid() (gid int) { ++ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrlimit(resource int, rlim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyInit() (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ioperm(from int, num int, on int) (err error) { ++ _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Iopl(level int) (err error) { ++ _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listen(s int, n int) (err error) { ++ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lstat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pause() (err error) { ++ _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seek(fd int, offset int64, whence int) (off int64, err error) { ++ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) ++ off = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) ++ written = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setfsgid(gid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setfsuid(uid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setregid(rgid int, egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresgid(rgid int, egid int, sgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresuid(ruid int, euid int, suid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setrlimit(resource int, rlim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setreuid(ruid int, euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Shutdown(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { ++ r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) ++ n = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Stat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Statfs(path string, buf *Statfs_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { ++ _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Truncate(path string, length int64) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { ++ r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getgroups(n int, list *_Gid_t) (nn int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) ++ nn = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setgroups(n int, list *_Gid_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { ++ _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socket(domain int, typ int, proto int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { ++ _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { ++ r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) ++ xaddr = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Utime(path string, buf *Utimbuf) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe(p *[2]_C_int) (err error) { ++ _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe2(p *[2]_C_int, flags int) (err error) { ++ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go +new file mode 100644 +index 0000000..82d36a4 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go +@@ -0,0 +1,1751 @@ ++// mksyscall.pl -l32 -arm -tags linux,arm syscall_linux.go syscall_linux_arm.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build linux,arm ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++var _ syscall.Errno ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unlinkat(dirfd int, path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimes(path string, times *[2]Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getcwd(buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { ++ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) ++ wpid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(arg) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(source) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ var _p2 *byte ++ _p2, err = BytePtrFromString(fstype) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Acct(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Adjtimex(buf *Timex) (state int, err error) { ++ r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) ++ state = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ClockGettime(clockid int32, time *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Close(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup(oldfd int) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup3(oldfd int, newfd int, flags int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCreate(size int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCreate1(flag int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { ++ _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exit(code int) { ++ Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { ++ _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchdir(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fcntl(fd int, cmd int, arg int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fdatasync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Flock(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fsync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdents(fd int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpid() (pid int) { ++ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getppid() (ppid int) { ++ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) ++ ppid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpriority(which int, who int) (prio int, err error) { ++ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) ++ prio = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrandom(buf []byte, flags int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrusage(who int, rusage *Rusage) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getsid(pid int) (sid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) ++ sid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettid() (tid int) { ++ r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) ++ tid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getxattr(path string, attr string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(dest) > 0 { ++ _p2 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) ++ sz = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(pathname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) ++ watchdesc = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyInit1(flags int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) ++ success = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kill(pid int, sig syscall.Signal) (err error) { ++ _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Klogctl(typ int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listxattr(path string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(dest) > 0 { ++ _p1 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) ++ sz = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkdirat(dirfd int, path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Nanosleep(time *Timespec, leftover *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func PivotRoot(newroot string, putold string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(newroot) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(putold) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { ++ _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func read(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Removexattr(path string, attr string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setdomainname(p []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sethostname(p []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpgid(pid int, pgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setsid() (pid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) ++ pid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Settimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setns(fd int, nstype int) (err error) { ++ _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpriority(which int, who int, prio int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setxattr(path string, attr string, data []byte, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(data) > 0 { ++ _p2 = unsafe.Pointer(&data[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sync() { ++ Syscall(SYS_SYNC, 0, 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sysinfo(info *Sysinfo_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { ++ r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) ++ n = int64(int64(r1)<<32 | int64(r0)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { ++ _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Times(tms *Tms) (ticks uintptr, err error) { ++ r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) ++ ticks = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Umask(mask int) (oldmask int) { ++ r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) ++ oldmask = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Uname(buf *Utsname) (err error) { ++ _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unmount(target string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unshare(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ustat(dev int, ubuf *Ustat_t) (err error) { ++ _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func write(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func exitThread(code int) (err error) { ++ _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func readlen(fd int, p *byte, np int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func writelen(fd int, p *byte, np int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func munmap(addr uintptr, length uintptr) (err error) { ++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Madvise(b []byte, advice int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlockall(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlockall() (err error) { ++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe2(p *[2]_C_int, flags int) (err error) { ++ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { ++ r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getgroups(n int, list *_Gid_t) (nn int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0) ++ nn = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setgroups(n int, list *_Gid_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { ++ _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socket(domain int, typ int, proto int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) { ++ _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup2(oldfd int, newfd int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstat(fd int, stat *Stat_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getegid() (egid int) { ++ r0, _, _ := RawSyscall(SYS_GETEGID32, 0, 0, 0) ++ egid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Geteuid() (euid int) { ++ r0, _, _ := RawSyscall(SYS_GETEUID32, 0, 0, 0) ++ euid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getgid() (gid int) { ++ r0, _, _ := RawSyscall(SYS_GETGID32, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETUID32, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyInit() (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LCHOWN32, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listen(s int, n int) (err error) { ++ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lstat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) ++ written = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setfsgid(gid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setfsuid(uid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setregid(rgid int, egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREGID32, uintptr(rgid), uintptr(egid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresgid(rgid int, egid int, sgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESGID32, uintptr(rgid), uintptr(egid), uintptr(sgid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresuid(ruid int, euid int, suid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESUID32, uintptr(ruid), uintptr(euid), uintptr(suid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setreuid(ruid int, euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREUID32, uintptr(ruid), uintptr(euid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Shutdown(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Stat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(events) > 0 { ++ _p0 = unsafe.Pointer(&events[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pause() (err error) { ++ _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Truncate(path string, length int64) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ftruncate(fd int, length int64) (err error) { ++ _, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { ++ r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) ++ xaddr = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getrlimit(resource int, rlim *rlimit32) (err error) { ++ _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setrlimit(resource int, rlim *rlimit32) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go +new file mode 100644 +index 0000000..f6cc320 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go +@@ -0,0 +1,1725 @@ ++// mksyscall.pl -tags linux,arm64 syscall_linux.go syscall_linux_arm64.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build linux,arm64 ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++var _ syscall.Errno ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unlinkat(dirfd int, path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimes(path string, times *[2]Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getcwd(buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { ++ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) ++ wpid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(arg) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(source) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ var _p2 *byte ++ _p2, err = BytePtrFromString(fstype) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Acct(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Adjtimex(buf *Timex) (state int, err error) { ++ r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) ++ state = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ClockGettime(clockid int32, time *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Close(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup(oldfd int) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup3(oldfd int, newfd int, flags int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCreate(size int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCreate1(flag int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { ++ _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exit(code int) { ++ Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { ++ _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchdir(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fcntl(fd int, cmd int, arg int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fdatasync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Flock(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fsync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdents(fd int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpid() (pid int) { ++ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getppid() (ppid int) { ++ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) ++ ppid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpriority(which int, who int) (prio int, err error) { ++ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) ++ prio = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrandom(buf []byte, flags int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrusage(who int, rusage *Rusage) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getsid(pid int) (sid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) ++ sid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettid() (tid int) { ++ r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) ++ tid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getxattr(path string, attr string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(dest) > 0 { ++ _p2 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) ++ sz = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(pathname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) ++ watchdesc = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyInit1(flags int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) ++ success = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kill(pid int, sig syscall.Signal) (err error) { ++ _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Klogctl(typ int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listxattr(path string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(dest) > 0 { ++ _p1 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) ++ sz = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkdirat(dirfd int, path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Nanosleep(time *Timespec, leftover *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func PivotRoot(newroot string, putold string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(newroot) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(putold) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { ++ _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func read(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Removexattr(path string, attr string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setdomainname(p []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sethostname(p []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpgid(pid int, pgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setsid() (pid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) ++ pid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Settimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setns(fd int, nstype int) (err error) { ++ _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpriority(which int, who int, prio int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setxattr(path string, attr string, data []byte, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(data) > 0 { ++ _p2 = unsafe.Pointer(&data[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sync() { ++ Syscall(SYS_SYNC, 0, 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sysinfo(info *Sysinfo_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { ++ r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) ++ n = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { ++ _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Times(tms *Tms) (ticks uintptr, err error) { ++ r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) ++ ticks = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Umask(mask int) (oldmask int) { ++ r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) ++ oldmask = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Uname(buf *Utsname) (err error) { ++ _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unmount(target string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unshare(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ustat(dev int, ubuf *Ustat_t) (err error) { ++ _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func write(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func exitThread(code int) (err error) { ++ _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func readlen(fd int, p *byte, np int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func writelen(fd int, p *byte, np int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func munmap(addr uintptr, length uintptr) (err error) { ++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Madvise(b []byte, advice int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlockall(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlockall() (err error) { ++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(events) > 0 { ++ _p0 = unsafe.Pointer(&events[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstat(fd int, stat *Stat_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstatfs(fd int, buf *Statfs_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ftruncate(fd int, length int64) (err error) { ++ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getegid() (egid int) { ++ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) ++ egid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Geteuid() (euid int) { ++ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) ++ euid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getgid() (gid int) { ++ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrlimit(resource int, rlim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listen(s int, n int) (err error) { ++ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seek(fd int, offset int64, whence int) (off int64, err error) { ++ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) ++ off = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) ++ written = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setfsgid(gid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setfsuid(uid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setregid(rgid int, egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresgid(rgid int, egid int, sgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresuid(ruid int, euid int, suid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setrlimit(resource int, rlim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setreuid(ruid int, euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Shutdown(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { ++ r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) ++ n = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Statfs(path string, buf *Statfs_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { ++ _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Truncate(path string, length int64) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { ++ r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getgroups(n int, list *_Gid_t) (nn int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) ++ nn = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setgroups(n int, list *_Gid_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { ++ _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socket(domain int, typ int, proto int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { ++ _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { ++ r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) ++ xaddr = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe2(p *[2]_C_int, flags int) (err error) { ++ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go +new file mode 100644 +index 0000000..f91afb4 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go +@@ -0,0 +1,1807 @@ ++// mksyscall.pl -b32 -arm -tags linux,mips syscall_linux.go syscall_linux_mipsx.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build linux,mips ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++var _ syscall.Errno ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unlinkat(dirfd int, path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimes(path string, times *[2]Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getcwd(buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { ++ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) ++ wpid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(arg) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(source) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ var _p2 *byte ++ _p2, err = BytePtrFromString(fstype) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Acct(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Adjtimex(buf *Timex) (state int, err error) { ++ r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) ++ state = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ClockGettime(clockid int32, time *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Close(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup(oldfd int) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup3(oldfd int, newfd int, flags int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCreate(size int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCreate1(flag int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { ++ _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exit(code int) { ++ Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { ++ _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off>>32), uintptr(off), uintptr(len>>32), uintptr(len)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchdir(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fcntl(fd int, cmd int, arg int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fdatasync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Flock(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fsync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdents(fd int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpid() (pid int) { ++ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getppid() (ppid int) { ++ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) ++ ppid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpriority(which int, who int) (prio int, err error) { ++ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) ++ prio = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrandom(buf []byte, flags int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrusage(who int, rusage *Rusage) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getsid(pid int) (sid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) ++ sid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettid() (tid int) { ++ r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) ++ tid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getxattr(path string, attr string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(dest) > 0 { ++ _p2 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) ++ sz = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(pathname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) ++ watchdesc = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyInit1(flags int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) ++ success = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kill(pid int, sig syscall.Signal) (err error) { ++ _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Klogctl(typ int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listxattr(path string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(dest) > 0 { ++ _p1 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) ++ sz = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkdirat(dirfd int, path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Nanosleep(time *Timespec, leftover *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func PivotRoot(newroot string, putold string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(newroot) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(putold) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { ++ _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func read(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Removexattr(path string, attr string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setdomainname(p []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sethostname(p []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpgid(pid int, pgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setsid() (pid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) ++ pid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Settimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setns(fd int, nstype int) (err error) { ++ _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpriority(which int, who int, prio int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setxattr(path string, attr string, data []byte, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(data) > 0 { ++ _p2 = unsafe.Pointer(&data[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sync() { ++ Syscall(SYS_SYNC, 0, 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sysinfo(info *Sysinfo_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { ++ r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) ++ n = int64(int64(r0)<<32 | int64(r1)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { ++ _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Times(tms *Tms) (ticks uintptr, err error) { ++ r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) ++ ticks = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Umask(mask int) (oldmask int) { ++ r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) ++ oldmask = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Uname(buf *Utsname) (err error) { ++ _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unmount(target string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unshare(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ustat(dev int, ubuf *Ustat_t) (err error) { ++ _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func write(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func exitThread(code int) (err error) { ++ _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func readlen(fd int, p *byte, np int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func writelen(fd int, p *byte, np int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func munmap(addr uintptr, length uintptr) (err error) { ++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Madvise(b []byte, advice int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlockall(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlockall() (err error) { ++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup2(oldfd int, newfd int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ftruncate(fd int, length int64) (err error) { ++ _, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length>>32), uintptr(length), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getegid() (egid int) { ++ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) ++ egid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Geteuid() (euid int) { ++ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) ++ euid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getgid() (gid int) { ++ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listen(s int, n int) (err error) { ++ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) ++ written = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setfsgid(gid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setfsuid(uid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setregid(rgid int, egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresgid(rgid int, egid int, sgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresuid(ruid int, euid int, suid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setreuid(ruid int, euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Shutdown(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { ++ r0, r1, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) ++ n = int64(int64(r0)<<32 | int64(r1)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { ++ _, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off>>32), uintptr(off), uintptr(n>>32), uintptr(n), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Truncate(path string, length int64) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length>>32), uintptr(length), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { ++ r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getgroups(n int, list *_Gid_t) (nn int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) ++ nn = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setgroups(n int, list *_Gid_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { ++ _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socket(domain int, typ int, proto int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { ++ _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyInit() (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ioperm(from int, num int, on int) (err error) { ++ _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Iopl(level int) (err error) { ++ _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Time(t *Time_t) (tt Time_t, err error) { ++ r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) ++ tt = Time_t(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lstat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstat(fd int, stat *Stat_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Stat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Utime(path string, buf *Utimbuf) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(events) > 0 { ++ _p0 = unsafe.Pointer(&events[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pause() (err error) { ++ _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe2(p *[2]_C_int, flags int) (err error) { ++ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { ++ r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) ++ xaddr = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getrlimit(resource int, rlim *rlimit32) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setrlimit(resource int, rlim *rlimit32) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +new file mode 100644 +index 0000000..657d11e +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go +@@ -0,0 +1,1791 @@ ++// mksyscall.pl -tags linux,mips64 syscall_linux.go syscall_linux_mips64x.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build linux,mips64 ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++var _ syscall.Errno ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unlinkat(dirfd int, path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimes(path string, times *[2]Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getcwd(buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { ++ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) ++ wpid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(arg) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(source) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ var _p2 *byte ++ _p2, err = BytePtrFromString(fstype) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Acct(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Adjtimex(buf *Timex) (state int, err error) { ++ r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) ++ state = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ClockGettime(clockid int32, time *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Close(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup(oldfd int) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup3(oldfd int, newfd int, flags int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCreate(size int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCreate1(flag int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { ++ _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exit(code int) { ++ Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { ++ _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchdir(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fcntl(fd int, cmd int, arg int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fdatasync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Flock(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fsync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdents(fd int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpid() (pid int) { ++ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getppid() (ppid int) { ++ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) ++ ppid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpriority(which int, who int) (prio int, err error) { ++ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) ++ prio = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrandom(buf []byte, flags int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrusage(who int, rusage *Rusage) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getsid(pid int) (sid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) ++ sid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettid() (tid int) { ++ r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) ++ tid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getxattr(path string, attr string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(dest) > 0 { ++ _p2 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) ++ sz = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(pathname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) ++ watchdesc = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyInit1(flags int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) ++ success = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kill(pid int, sig syscall.Signal) (err error) { ++ _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Klogctl(typ int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listxattr(path string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(dest) > 0 { ++ _p1 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) ++ sz = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkdirat(dirfd int, path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Nanosleep(time *Timespec, leftover *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func PivotRoot(newroot string, putold string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(newroot) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(putold) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { ++ _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func read(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Removexattr(path string, attr string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setdomainname(p []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sethostname(p []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpgid(pid int, pgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setsid() (pid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) ++ pid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Settimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setns(fd int, nstype int) (err error) { ++ _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpriority(which int, who int, prio int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setxattr(path string, attr string, data []byte, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(data) > 0 { ++ _p2 = unsafe.Pointer(&data[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sync() { ++ Syscall(SYS_SYNC, 0, 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sysinfo(info *Sysinfo_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { ++ r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) ++ n = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { ++ _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Times(tms *Tms) (ticks uintptr, err error) { ++ r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) ++ ticks = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Umask(mask int) (oldmask int) { ++ r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) ++ oldmask = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Uname(buf *Utsname) (err error) { ++ _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unmount(target string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unshare(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ustat(dev int, ubuf *Ustat_t) (err error) { ++ _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func write(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func exitThread(code int) (err error) { ++ _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func readlen(fd int, p *byte, np int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func writelen(fd int, p *byte, np int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func munmap(addr uintptr, length uintptr) (err error) { ++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Madvise(b []byte, advice int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlockall(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlockall() (err error) { ++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(events) > 0 { ++ _p0 = unsafe.Pointer(&events[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstatfs(fd int, buf *Statfs_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ftruncate(fd int, length int64) (err error) { ++ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getegid() (egid int) { ++ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) ++ egid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Geteuid() (euid int) { ++ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) ++ euid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getgid() (gid int) { ++ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrlimit(resource int, rlim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listen(s int, n int) (err error) { ++ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pause() (err error) { ++ _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seek(fd int, offset int64, whence int) (off int64, err error) { ++ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) ++ off = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) ++ written = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setfsgid(gid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setfsuid(uid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setregid(rgid int, egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresgid(rgid int, egid int, sgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresuid(ruid int, euid int, suid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setrlimit(resource int, rlim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setreuid(ruid int, euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Shutdown(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { ++ r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) ++ n = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Statfs(path string, buf *Statfs_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { ++ _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Truncate(path string, length int64) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { ++ r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getgroups(n int, list *_Gid_t) (nn int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) ++ nn = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setgroups(n int, list *_Gid_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { ++ _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socket(domain int, typ int, proto int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { ++ _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { ++ r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) ++ xaddr = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Utime(path string, buf *Utimbuf) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe2(p *[2]_C_int, flags int) (err error) { ++ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fstat(fd int, st *stat_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func lstat(path string, st *stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func stat(path string, st *stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +new file mode 100644 +index 0000000..31ff177 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go +@@ -0,0 +1,1791 @@ ++// mksyscall.pl -tags linux,mips64le syscall_linux.go syscall_linux_mips64x.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build linux,mips64le ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++var _ syscall.Errno ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unlinkat(dirfd int, path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimes(path string, times *[2]Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getcwd(buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { ++ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) ++ wpid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(arg) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(source) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ var _p2 *byte ++ _p2, err = BytePtrFromString(fstype) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Acct(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Adjtimex(buf *Timex) (state int, err error) { ++ r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) ++ state = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ClockGettime(clockid int32, time *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Close(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup(oldfd int) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup3(oldfd int, newfd int, flags int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCreate(size int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCreate1(flag int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { ++ _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exit(code int) { ++ Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { ++ _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchdir(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fcntl(fd int, cmd int, arg int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fdatasync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Flock(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fsync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdents(fd int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpid() (pid int) { ++ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getppid() (ppid int) { ++ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) ++ ppid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpriority(which int, who int) (prio int, err error) { ++ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) ++ prio = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrandom(buf []byte, flags int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrusage(who int, rusage *Rusage) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getsid(pid int) (sid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) ++ sid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettid() (tid int) { ++ r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) ++ tid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getxattr(path string, attr string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(dest) > 0 { ++ _p2 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) ++ sz = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(pathname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) ++ watchdesc = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyInit1(flags int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) ++ success = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kill(pid int, sig syscall.Signal) (err error) { ++ _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Klogctl(typ int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listxattr(path string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(dest) > 0 { ++ _p1 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) ++ sz = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkdirat(dirfd int, path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Nanosleep(time *Timespec, leftover *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func PivotRoot(newroot string, putold string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(newroot) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(putold) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { ++ _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func read(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Removexattr(path string, attr string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setdomainname(p []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sethostname(p []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpgid(pid int, pgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setsid() (pid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) ++ pid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Settimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setns(fd int, nstype int) (err error) { ++ _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpriority(which int, who int, prio int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setxattr(path string, attr string, data []byte, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(data) > 0 { ++ _p2 = unsafe.Pointer(&data[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sync() { ++ Syscall(SYS_SYNC, 0, 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sysinfo(info *Sysinfo_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { ++ r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) ++ n = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { ++ _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Times(tms *Tms) (ticks uintptr, err error) { ++ r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) ++ ticks = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Umask(mask int) (oldmask int) { ++ r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) ++ oldmask = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Uname(buf *Utsname) (err error) { ++ _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unmount(target string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unshare(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ustat(dev int, ubuf *Ustat_t) (err error) { ++ _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func write(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func exitThread(code int) (err error) { ++ _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func readlen(fd int, p *byte, np int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func writelen(fd int, p *byte, np int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func munmap(addr uintptr, length uintptr) (err error) { ++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Madvise(b []byte, advice int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlockall(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlockall() (err error) { ++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(events) > 0 { ++ _p0 = unsafe.Pointer(&events[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstatfs(fd int, buf *Statfs_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ftruncate(fd int, length int64) (err error) { ++ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getegid() (egid int) { ++ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) ++ egid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Geteuid() (euid int) { ++ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) ++ euid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getgid() (gid int) { ++ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrlimit(resource int, rlim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listen(s int, n int) (err error) { ++ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pause() (err error) { ++ _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seek(fd int, offset int64, whence int) (off int64, err error) { ++ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) ++ off = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) ++ written = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setfsgid(gid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setfsuid(uid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setregid(rgid int, egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresgid(rgid int, egid int, sgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresuid(ruid int, euid int, suid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setrlimit(resource int, rlim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setreuid(ruid int, euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Shutdown(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { ++ r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) ++ n = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Statfs(path string, buf *Statfs_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { ++ _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Truncate(path string, length int64) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { ++ r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getgroups(n int, list *_Gid_t) (nn int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) ++ nn = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setgroups(n int, list *_Gid_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { ++ _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socket(domain int, typ int, proto int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { ++ _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { ++ r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) ++ xaddr = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Utime(path string, buf *Utimbuf) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe2(p *[2]_C_int, flags int) (err error) { ++ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fstat(fd int, st *stat_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func lstat(path string, st *stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func stat(path string, st *stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go +new file mode 100644 +index 0000000..797e633 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go +@@ -0,0 +1,1807 @@ ++// mksyscall.pl -l32 -arm -tags linux,mipsle syscall_linux.go syscall_linux_mipsx.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build linux,mipsle ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++var _ syscall.Errno ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unlinkat(dirfd int, path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimes(path string, times *[2]Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getcwd(buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { ++ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) ++ wpid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(arg) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(source) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ var _p2 *byte ++ _p2, err = BytePtrFromString(fstype) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Acct(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Adjtimex(buf *Timex) (state int, err error) { ++ r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) ++ state = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ClockGettime(clockid int32, time *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Close(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup(oldfd int) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup3(oldfd int, newfd int, flags int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCreate(size int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCreate1(flag int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { ++ _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exit(code int) { ++ Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { ++ _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchdir(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fcntl(fd int, cmd int, arg int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fdatasync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Flock(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fsync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdents(fd int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpid() (pid int) { ++ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getppid() (ppid int) { ++ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) ++ ppid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpriority(which int, who int) (prio int, err error) { ++ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) ++ prio = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrandom(buf []byte, flags int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrusage(who int, rusage *Rusage) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getsid(pid int) (sid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) ++ sid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettid() (tid int) { ++ r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) ++ tid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getxattr(path string, attr string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(dest) > 0 { ++ _p2 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) ++ sz = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(pathname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) ++ watchdesc = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyInit1(flags int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) ++ success = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kill(pid int, sig syscall.Signal) (err error) { ++ _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Klogctl(typ int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listxattr(path string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(dest) > 0 { ++ _p1 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) ++ sz = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkdirat(dirfd int, path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Nanosleep(time *Timespec, leftover *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func PivotRoot(newroot string, putold string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(newroot) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(putold) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { ++ _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func read(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Removexattr(path string, attr string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setdomainname(p []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sethostname(p []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpgid(pid int, pgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setsid() (pid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) ++ pid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Settimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setns(fd int, nstype int) (err error) { ++ _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpriority(which int, who int, prio int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setxattr(path string, attr string, data []byte, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(data) > 0 { ++ _p2 = unsafe.Pointer(&data[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sync() { ++ Syscall(SYS_SYNC, 0, 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sysinfo(info *Sysinfo_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { ++ r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) ++ n = int64(int64(r1)<<32 | int64(r0)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { ++ _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Times(tms *Tms) (ticks uintptr, err error) { ++ r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) ++ ticks = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Umask(mask int) (oldmask int) { ++ r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) ++ oldmask = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Uname(buf *Utsname) (err error) { ++ _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unmount(target string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unshare(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ustat(dev int, ubuf *Ustat_t) (err error) { ++ _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func write(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func exitThread(code int) (err error) { ++ _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func readlen(fd int, p *byte, np int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func writelen(fd int, p *byte, np int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func munmap(addr uintptr, length uintptr) (err error) { ++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Madvise(b []byte, advice int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlockall(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlockall() (err error) { ++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup2(oldfd int, newfd int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ftruncate(fd int, length int64) (err error) { ++ _, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getegid() (egid int) { ++ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) ++ egid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Geteuid() (euid int) { ++ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) ++ euid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getgid() (gid int) { ++ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listen(s int, n int) (err error) { ++ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) ++ written = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setfsgid(gid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setfsuid(uid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setregid(rgid int, egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresgid(rgid int, egid int, sgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresuid(ruid int, euid int, suid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setreuid(ruid int, euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Shutdown(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { ++ r0, r1, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) ++ n = int64(int64(r1)<<32 | int64(r0)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { ++ _, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Truncate(path string, length int64) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { ++ r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getgroups(n int, list *_Gid_t) (nn int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) ++ nn = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setgroups(n int, list *_Gid_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { ++ _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socket(domain int, typ int, proto int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { ++ _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyInit() (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ioperm(from int, num int, on int) (err error) { ++ _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Iopl(level int) (err error) { ++ _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Time(t *Time_t) (tt Time_t, err error) { ++ r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) ++ tt = Time_t(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lstat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstat(fd int, stat *Stat_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Stat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Utime(path string, buf *Utimbuf) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(events) > 0 { ++ _p0 = unsafe.Pointer(&events[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pause() (err error) { ++ _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe2(p *[2]_C_int, flags int) (err error) { ++ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { ++ r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) ++ xaddr = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getrlimit(resource int, rlim *rlimit32) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setrlimit(resource int, rlim *rlimit32) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go +new file mode 100644 +index 0000000..307dbb5 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go +@@ -0,0 +1,1853 @@ ++// mksyscall.pl -tags linux,ppc64 syscall_linux.go syscall_linux_ppc64x.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build linux,ppc64 ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++var _ syscall.Errno ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unlinkat(dirfd int, path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimes(path string, times *[2]Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getcwd(buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { ++ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) ++ wpid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(arg) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(source) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ var _p2 *byte ++ _p2, err = BytePtrFromString(fstype) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Acct(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Adjtimex(buf *Timex) (state int, err error) { ++ r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) ++ state = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ClockGettime(clockid int32, time *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Close(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup(oldfd int) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup3(oldfd int, newfd int, flags int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCreate(size int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCreate1(flag int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { ++ _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exit(code int) { ++ Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { ++ _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchdir(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fcntl(fd int, cmd int, arg int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fdatasync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Flock(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fsync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdents(fd int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpid() (pid int) { ++ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getppid() (ppid int) { ++ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) ++ ppid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpriority(which int, who int) (prio int, err error) { ++ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) ++ prio = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrandom(buf []byte, flags int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrusage(who int, rusage *Rusage) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getsid(pid int) (sid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) ++ sid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettid() (tid int) { ++ r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) ++ tid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getxattr(path string, attr string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(dest) > 0 { ++ _p2 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) ++ sz = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(pathname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) ++ watchdesc = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyInit1(flags int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) ++ success = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kill(pid int, sig syscall.Signal) (err error) { ++ _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Klogctl(typ int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listxattr(path string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(dest) > 0 { ++ _p1 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) ++ sz = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkdirat(dirfd int, path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Nanosleep(time *Timespec, leftover *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func PivotRoot(newroot string, putold string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(newroot) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(putold) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { ++ _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func read(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Removexattr(path string, attr string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setdomainname(p []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sethostname(p []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpgid(pid int, pgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setsid() (pid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) ++ pid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Settimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setns(fd int, nstype int) (err error) { ++ _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpriority(which int, who int, prio int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setxattr(path string, attr string, data []byte, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(data) > 0 { ++ _p2 = unsafe.Pointer(&data[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sync() { ++ Syscall(SYS_SYNC, 0, 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sysinfo(info *Sysinfo_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { ++ r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) ++ n = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { ++ _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Times(tms *Tms) (ticks uintptr, err error) { ++ r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) ++ ticks = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Umask(mask int) (oldmask int) { ++ r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) ++ oldmask = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Uname(buf *Utsname) (err error) { ++ _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unmount(target string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unshare(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ustat(dev int, ubuf *Ustat_t) (err error) { ++ _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func write(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func exitThread(code int) (err error) { ++ _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func readlen(fd int, p *byte, np int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func writelen(fd int, p *byte, np int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func munmap(addr uintptr, length uintptr) (err error) { ++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Madvise(b []byte, advice int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlockall(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlockall() (err error) { ++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(events) > 0 { ++ _p0 = unsafe.Pointer(&events[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup2(oldfd int, newfd int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstat(fd int, stat *Stat_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstatfs(fd int, buf *Statfs_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ftruncate(fd int, length int64) (err error) { ++ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getegid() (egid int) { ++ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) ++ egid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Geteuid() (euid int) { ++ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) ++ euid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getgid() (gid int) { ++ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrlimit(resource int, rlim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyInit() (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ioperm(from int, num int, on int) (err error) { ++ _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Iopl(level int) (err error) { ++ _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listen(s int, n int) (err error) { ++ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lstat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pause() (err error) { ++ _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seek(fd int, offset int64, whence int) (off int64, err error) { ++ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) ++ off = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) ++ written = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setfsgid(gid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setfsuid(uid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setregid(rgid int, egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresgid(rgid int, egid int, sgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresuid(ruid int, euid int, suid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setrlimit(resource int, rlim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setreuid(ruid int, euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Shutdown(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { ++ r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) ++ n = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Stat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Statfs(path string, buf *Statfs_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { ++ _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Truncate(path string, length int64) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { ++ r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getgroups(n int, list *_Gid_t) (nn int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) ++ nn = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setgroups(n int, list *_Gid_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { ++ _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socket(domain int, typ int, proto int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { ++ _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { ++ r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) ++ xaddr = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Time(t *Time_t) (tt Time_t, err error) { ++ r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) ++ tt = Time_t(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Utime(path string, buf *Utimbuf) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe(p *[2]_C_int) (err error) { ++ _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe2(p *[2]_C_int, flags int) (err error) { ++ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go +new file mode 100644 +index 0000000..f458a63 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go +@@ -0,0 +1,1853 @@ ++// mksyscall.pl -tags linux,ppc64le syscall_linux.go syscall_linux_ppc64x.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build linux,ppc64le ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++var _ syscall.Errno ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unlinkat(dirfd int, path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimes(path string, times *[2]Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getcwd(buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { ++ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) ++ wpid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(arg) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(source) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ var _p2 *byte ++ _p2, err = BytePtrFromString(fstype) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Acct(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Adjtimex(buf *Timex) (state int, err error) { ++ r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) ++ state = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ClockGettime(clockid int32, time *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Close(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup(oldfd int) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup3(oldfd int, newfd int, flags int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCreate(size int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCreate1(flag int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { ++ _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exit(code int) { ++ Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { ++ _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchdir(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fcntl(fd int, cmd int, arg int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fdatasync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Flock(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fsync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdents(fd int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpid() (pid int) { ++ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getppid() (ppid int) { ++ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) ++ ppid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpriority(which int, who int) (prio int, err error) { ++ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) ++ prio = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrandom(buf []byte, flags int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrusage(who int, rusage *Rusage) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getsid(pid int) (sid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) ++ sid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettid() (tid int) { ++ r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) ++ tid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getxattr(path string, attr string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(dest) > 0 { ++ _p2 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) ++ sz = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(pathname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) ++ watchdesc = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyInit1(flags int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) ++ success = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kill(pid int, sig syscall.Signal) (err error) { ++ _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Klogctl(typ int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listxattr(path string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(dest) > 0 { ++ _p1 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) ++ sz = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkdirat(dirfd int, path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Nanosleep(time *Timespec, leftover *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func PivotRoot(newroot string, putold string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(newroot) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(putold) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { ++ _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func read(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Removexattr(path string, attr string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setdomainname(p []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sethostname(p []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpgid(pid int, pgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setsid() (pid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) ++ pid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Settimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setns(fd int, nstype int) (err error) { ++ _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpriority(which int, who int, prio int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setxattr(path string, attr string, data []byte, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(data) > 0 { ++ _p2 = unsafe.Pointer(&data[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sync() { ++ Syscall(SYS_SYNC, 0, 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sysinfo(info *Sysinfo_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { ++ r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) ++ n = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { ++ _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Times(tms *Tms) (ticks uintptr, err error) { ++ r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) ++ ticks = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Umask(mask int) (oldmask int) { ++ r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) ++ oldmask = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Uname(buf *Utsname) (err error) { ++ _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unmount(target string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unshare(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ustat(dev int, ubuf *Ustat_t) (err error) { ++ _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func write(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func exitThread(code int) (err error) { ++ _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func readlen(fd int, p *byte, np int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func writelen(fd int, p *byte, np int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func munmap(addr uintptr, length uintptr) (err error) { ++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Madvise(b []byte, advice int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlockall(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlockall() (err error) { ++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(events) > 0 { ++ _p0 = unsafe.Pointer(&events[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup2(oldfd int, newfd int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstat(fd int, stat *Stat_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstatfs(fd int, buf *Statfs_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ftruncate(fd int, length int64) (err error) { ++ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getegid() (egid int) { ++ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) ++ egid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Geteuid() (euid int) { ++ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) ++ euid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getgid() (gid int) { ++ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrlimit(resource int, rlim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyInit() (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ioperm(from int, num int, on int) (err error) { ++ _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Iopl(level int) (err error) { ++ _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listen(s int, n int) (err error) { ++ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lstat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pause() (err error) { ++ _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seek(fd int, offset int64, whence int) (off int64, err error) { ++ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) ++ off = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) ++ written = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setfsgid(gid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setfsuid(uid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setregid(rgid int, egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresgid(rgid int, egid int, sgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresuid(ruid int, euid int, suid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setrlimit(resource int, rlim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setreuid(ruid int, euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Shutdown(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { ++ r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) ++ n = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Stat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Statfs(path string, buf *Statfs_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { ++ _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Truncate(path string, length int64) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { ++ r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getgroups(n int, list *_Gid_t) (nn int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) ++ nn = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setgroups(n int, list *_Gid_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { ++ _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socket(domain int, typ int, proto int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { ++ _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { ++ r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) ++ xaddr = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Time(t *Time_t) (tt Time_t, err error) { ++ r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) ++ tt = Time_t(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Utime(path string, buf *Utimbuf) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe(p *[2]_C_int) (err error) { ++ _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe2(p *[2]_C_int, flags int) (err error) { ++ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go +new file mode 100644 +index 0000000..b1d5a9b +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go +@@ -0,0 +1,1633 @@ ++// mksyscall.pl -tags linux,s390x syscall_linux.go syscall_linux_s390x.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build linux,s390x ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++var _ syscall.Errno ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unlinkat(dirfd int, path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimes(path string, times *[2]Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getcwd(buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { ++ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) ++ wpid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(arg) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(source) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ var _p2 *byte ++ _p2, err = BytePtrFromString(fstype) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Acct(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Adjtimex(buf *Timex) (state int, err error) { ++ r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) ++ state = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ClockGettime(clockid int32, time *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Close(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup(oldfd int) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup3(oldfd int, newfd int, flags int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCreate(size int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCreate1(flag int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { ++ _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exit(code int) { ++ Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { ++ _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchdir(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fcntl(fd int, cmd int, arg int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fdatasync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Flock(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fsync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdents(fd int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpid() (pid int) { ++ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getppid() (ppid int) { ++ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) ++ ppid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpriority(which int, who int) (prio int, err error) { ++ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) ++ prio = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrandom(buf []byte, flags int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrusage(who int, rusage *Rusage) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getsid(pid int) (sid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) ++ sid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettid() (tid int) { ++ r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) ++ tid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getxattr(path string, attr string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(dest) > 0 { ++ _p2 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) ++ sz = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(pathname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) ++ watchdesc = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyInit1(flags int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) ++ success = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kill(pid int, sig syscall.Signal) (err error) { ++ _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Klogctl(typ int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listxattr(path string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(dest) > 0 { ++ _p1 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) ++ sz = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkdirat(dirfd int, path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Nanosleep(time *Timespec, leftover *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func PivotRoot(newroot string, putold string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(newroot) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(putold) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { ++ _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func read(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Removexattr(path string, attr string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setdomainname(p []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sethostname(p []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpgid(pid int, pgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setsid() (pid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) ++ pid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Settimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setns(fd int, nstype int) (err error) { ++ _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpriority(which int, who int, prio int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setxattr(path string, attr string, data []byte, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(data) > 0 { ++ _p2 = unsafe.Pointer(&data[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sync() { ++ Syscall(SYS_SYNC, 0, 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sysinfo(info *Sysinfo_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { ++ r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) ++ n = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { ++ _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Times(tms *Tms) (ticks uintptr, err error) { ++ r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) ++ ticks = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Umask(mask int) (oldmask int) { ++ r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) ++ oldmask = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Uname(buf *Utsname) (err error) { ++ _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unmount(target string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unshare(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ustat(dev int, ubuf *Ustat_t) (err error) { ++ _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func write(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func exitThread(code int) (err error) { ++ _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func readlen(fd int, p *byte, np int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func writelen(fd int, p *byte, np int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func munmap(addr uintptr, length uintptr) (err error) { ++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Madvise(b []byte, advice int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlockall(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlockall() (err error) { ++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup2(oldfd int, newfd int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(events) > 0 { ++ _p0 = unsafe.Pointer(&events[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fadvise(fd int, offset int64, length int64, advice int) (err error) { ++ _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstat(fd int, stat *Stat_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstatfs(fd int, buf *Statfs_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ftruncate(fd int, length int64) (err error) { ++ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getegid() (egid int) { ++ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) ++ egid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Geteuid() (euid int) { ++ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) ++ euid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getgid() (gid int) { ++ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrlimit(resource int, rlim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyInit() (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lstat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pause() (err error) { ++ _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seek(fd int, offset int64, whence int) (off int64, err error) { ++ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) ++ off = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) ++ written = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setfsgid(gid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setfsuid(uid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setregid(rgid int, egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresgid(rgid int, egid int, sgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresuid(ruid int, euid int, suid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setrlimit(resource int, rlim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setreuid(ruid int, euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { ++ r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) ++ n = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Stat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Statfs(path string, buf *Statfs_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { ++ _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Truncate(path string, length int64) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getgroups(n int, list *_Gid_t) (nn int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) ++ nn = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setgroups(n int, list *_Gid_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Utime(path string, buf *Utimbuf) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe2(p *[2]_C_int, flags int) (err error) { ++ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go +new file mode 100644 +index 0000000..ce3ec58 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go +@@ -0,0 +1,1822 @@ ++// mksyscall.pl -tags linux,sparc64 syscall_linux.go syscall_linux_sparc64.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build linux,sparc64 ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++var _ syscall.Errno ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unlinkat(dirfd int, path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimes(path string, times *[2]Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func futimesat(dirfd int, path *byte, times *[2]Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getcwd(buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { ++ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) ++ wpid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(arg) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(source) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ var _p2 *byte ++ _p2, err = BytePtrFromString(fstype) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Acct(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Adjtimex(buf *Timex) (state int, err error) { ++ r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) ++ state = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func ClockGettime(clockid int32, time *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Close(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup(oldfd int) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup3(oldfd int, newfd int, flags int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCreate(size int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE, uintptr(size), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCreate1(flag int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { ++ _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exit(code int) { ++ Syscall(SYS_EXIT_GROUP, uintptr(code), 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { ++ _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchdir(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fcntl(fd int, cmd int, arg int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fdatasync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Flock(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fsync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getdents(fd int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpid() (pid int) { ++ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getppid() (ppid int) { ++ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) ++ ppid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpriority(which int, who int) (prio int, err error) { ++ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) ++ prio = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrandom(buf []byte, flags int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrusage(who int, rusage *Rusage) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getsid(pid int) (sid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) ++ sid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettid() (tid int) { ++ r0, _, _ := RawSyscall(SYS_GETTID, 0, 0, 0) ++ tid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getxattr(path string, attr string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(dest) > 0 { ++ _p2 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) ++ sz = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(pathname) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) ++ watchdesc = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyInit1(flags int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) ++ success = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kill(pid int, sig syscall.Signal) (err error) { ++ _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Klogctl(typ int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listxattr(path string, dest []byte) (sz int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(dest) > 0 { ++ _p1 = unsafe.Pointer(&dest[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) ++ sz = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkdirat(dirfd int, path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Nanosleep(time *Timespec, leftover *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func PivotRoot(newroot string, putold string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(newroot) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(putold) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { ++ _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func read(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Removexattr(path string, attr string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setdomainname(p []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sethostname(p []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpgid(pid int, pgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setsid() (pid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) ++ pid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Settimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setns(fd int, nstype int) (err error) { ++ _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpriority(which int, who int, prio int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setxattr(path string, attr string, data []byte, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(attr) ++ if err != nil { ++ return ++ } ++ var _p2 unsafe.Pointer ++ if len(data) > 0 { ++ _p2 = unsafe.Pointer(&data[0]) ++ } else { ++ _p2 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sync() { ++ Syscall(SYS_SYNC, 0, 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sysinfo(info *Sysinfo_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { ++ r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) ++ n = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { ++ _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Times(tms *Tms) (ticks uintptr, err error) { ++ r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) ++ ticks = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Umask(mask int) (oldmask int) { ++ r0, _, _ := RawSyscall(SYS_UMASK, uintptr(mask), 0, 0) ++ oldmask = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Uname(buf *Utsname) (err error) { ++ _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unmount(target string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unshare(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ustat(dev int, ubuf *Ustat_t) (err error) { ++ _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func write(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func exitThread(code int) (err error) { ++ _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func readlen(fd int, p *byte, np int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func writelen(fd int, p *byte, np int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func munmap(addr uintptr, length uintptr) (err error) { ++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Madvise(b []byte, advice int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlockall(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlockall() (err error) { ++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(events) > 0 { ++ _p0 = unsafe.Pointer(&events[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup2(oldfd int, newfd int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstat(fd int, stat *Stat_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstatfs(fd int, buf *Statfs_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ftruncate(fd int, length int64) (err error) { ++ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getegid() (egid int) { ++ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) ++ egid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Geteuid() (euid int) { ++ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) ++ euid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getgid() (gid int) { ++ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrlimit(resource int, rlim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func InotifyInit() (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT, 0, 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listen(s int, n int) (err error) { ++ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lstat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pause() (err error) { ++ _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seek(fd int, offset int64, whence int) (off int64, err error) { ++ r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) ++ off = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { ++ r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) ++ written = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setfsgid(gid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setfsuid(uid int) (err error) { ++ _, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setregid(rgid int, egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresgid(rgid int, egid int, sgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresuid(ruid int, euid int, suid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setrlimit(resource int, rlim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setreuid(ruid int, euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Shutdown(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { ++ r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) ++ n = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Stat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Statfs(path string, buf *Statfs_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { ++ _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Truncate(path string, length int64) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { ++ r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getgroups(n int, list *_Gid_t) (nn int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) ++ nn = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setgroups(n int, list *_Gid_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { ++ _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socket(domain int, typ int, proto int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { ++ _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { ++ r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) ++ xaddr = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Utime(path string, buf *Utimbuf) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe(p *[2]_C_int) (err error) { ++ _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe2(p *[2]_C_int, flags int) (err error) { ++ _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go +new file mode 100644 +index 0000000..3182345 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go +@@ -0,0 +1,1299 @@ ++// mksyscall.pl -l32 -netbsd -tags netbsd,386 syscall_bsd.go syscall_netbsd.go syscall_netbsd_386.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build netbsd,386 ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++var _ syscall.Errno ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getgroups(ngid int, gid *_Gid_t) (n int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setgroups(ngid int, gid *_Gid_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { ++ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) ++ wpid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socket(domain int, typ int, proto int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { ++ _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Shutdown(s int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { ++ _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { ++ var _p0 unsafe.Pointer ++ if len(mib) > 0 { ++ _p0 = unsafe.Pointer(&mib[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimes(path string, timeval *[2]Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func futimes(fd int, timeval *[2]Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fcntl(fd int, cmd int, arg int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe() (fd1 int, fd2 int, err error) { ++ r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) ++ fd1 = int(r0) ++ fd2 = int(r1) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getdents(fd int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Access(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chflags(path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chmod(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Close(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup(fd int) (nfd int, err error) { ++ r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) ++ nfd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup2(from int, to int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exit(code int) { ++ Syscall(SYS_EXIT, uintptr(code), 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchdir(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchflags(fd int, flags int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Flock(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fpathconf(fd int, name int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstat(fd int, stat *Stat_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fsync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ftruncate(fd int, length int64) (err error) { ++ _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getegid() (egid int) { ++ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) ++ egid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Geteuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getgid() (gid int) { ++ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgrp() (pgrp int) { ++ r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) ++ pgrp = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpid() (pid int) { ++ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getppid() (ppid int) { ++ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) ++ ppid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpriority(which int, who int) (prio int, err error) { ++ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) ++ prio = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrusage(who int, rusage *Rusage) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getsid(pid int) (sid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) ++ sid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Issetugid() (tainted bool) { ++ r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) ++ tainted = bool(r0 != 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kill(pid int, signum syscall.Signal) (err error) { ++ _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kqueue() (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Link(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listen(s int, backlog int) (err error) { ++ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lstat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkdir(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkfifo(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mknod(path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlockall(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlockall() (err error) { ++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Nanosleep(time *Timespec, leftover *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Open(path string, mode int, perm uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pathconf(path string, name int) (val int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func read(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Readlink(path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Rename(from string, to string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(from) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(to) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Revoke(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Rmdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { ++ r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) ++ newoffset = int64(int64(r1)<<32 | int64(r0)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { ++ _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setegid(egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seteuid(euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setgid(gid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpgid(pid int, pgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpriority(which int, who int, prio int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setregid(rgid int, egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setreuid(ruid int, euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setsid() (pid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) ++ pid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Settimeofday(tp *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setuid(uid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Stat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Symlink(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sync() (err error) { ++ _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Truncate(path string, length int64) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Umask(newmask int) (oldmask int) { ++ r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) ++ oldmask = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unlink(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unmount(path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func write(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { ++ r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) ++ ret = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func munmap(addr uintptr, length uintptr) (err error) { ++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func readlen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func writelen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go +new file mode 100644 +index 0000000..74ba818 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go +@@ -0,0 +1,1299 @@ ++// mksyscall.pl -netbsd -tags netbsd,amd64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_amd64.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build netbsd,amd64 ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++var _ syscall.Errno ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getgroups(ngid int, gid *_Gid_t) (n int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setgroups(ngid int, gid *_Gid_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { ++ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) ++ wpid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socket(domain int, typ int, proto int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { ++ _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Shutdown(s int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { ++ _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { ++ var _p0 unsafe.Pointer ++ if len(mib) > 0 { ++ _p0 = unsafe.Pointer(&mib[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimes(path string, timeval *[2]Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func futimes(fd int, timeval *[2]Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fcntl(fd int, cmd int, arg int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe() (fd1 int, fd2 int, err error) { ++ r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) ++ fd1 = int(r0) ++ fd2 = int(r1) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getdents(fd int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Access(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chflags(path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chmod(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Close(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup(fd int) (nfd int, err error) { ++ r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) ++ nfd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup2(from int, to int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exit(code int) { ++ Syscall(SYS_EXIT, uintptr(code), 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchdir(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchflags(fd int, flags int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Flock(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fpathconf(fd int, name int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstat(fd int, stat *Stat_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fsync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ftruncate(fd int, length int64) (err error) { ++ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getegid() (egid int) { ++ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) ++ egid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Geteuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getgid() (gid int) { ++ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgrp() (pgrp int) { ++ r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) ++ pgrp = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpid() (pid int) { ++ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getppid() (ppid int) { ++ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) ++ ppid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpriority(which int, who int) (prio int, err error) { ++ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) ++ prio = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrusage(who int, rusage *Rusage) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getsid(pid int) (sid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) ++ sid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Issetugid() (tainted bool) { ++ r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) ++ tainted = bool(r0 != 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kill(pid int, signum syscall.Signal) (err error) { ++ _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kqueue() (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Link(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listen(s int, backlog int) (err error) { ++ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lstat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkdir(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkfifo(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mknod(path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlockall(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlockall() (err error) { ++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Nanosleep(time *Timespec, leftover *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Open(path string, mode int, perm uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pathconf(path string, name int) (val int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func read(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Readlink(path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Rename(from string, to string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(from) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(to) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Revoke(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Rmdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { ++ r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) ++ newoffset = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { ++ _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setegid(egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seteuid(euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setgid(gid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpgid(pid int, pgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpriority(which int, who int, prio int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setregid(rgid int, egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setreuid(ruid int, euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setsid() (pid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) ++ pid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Settimeofday(tp *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setuid(uid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Stat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Symlink(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sync() (err error) { ++ _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Truncate(path string, length int64) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Umask(newmask int) (oldmask int) { ++ r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) ++ oldmask = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unlink(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unmount(path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func write(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { ++ r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0) ++ ret = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func munmap(addr uintptr, length uintptr) (err error) { ++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func readlen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func writelen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go +new file mode 100644 +index 0000000..1f346e2 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go +@@ -0,0 +1,1299 @@ ++// mksyscall.pl -l32 -arm -tags netbsd,arm syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build netbsd,arm ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++var _ syscall.Errno ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getgroups(ngid int, gid *_Gid_t) (n int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setgroups(ngid int, gid *_Gid_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { ++ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) ++ wpid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socket(domain int, typ int, proto int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { ++ _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Shutdown(s int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { ++ _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { ++ var _p0 unsafe.Pointer ++ if len(mib) > 0 { ++ _p0 = unsafe.Pointer(&mib[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimes(path string, timeval *[2]Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func futimes(fd int, timeval *[2]Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fcntl(fd int, cmd int, arg int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe() (fd1 int, fd2 int, err error) { ++ r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) ++ fd1 = int(r0) ++ fd2 = int(r1) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getdents(fd int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Access(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chflags(path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chmod(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Close(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup(fd int) (nfd int, err error) { ++ r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) ++ nfd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup2(from int, to int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exit(code int) { ++ Syscall(SYS_EXIT, uintptr(code), 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchdir(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchflags(fd int, flags int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Flock(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fpathconf(fd int, name int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstat(fd int, stat *Stat_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fsync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ftruncate(fd int, length int64) (err error) { ++ _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getegid() (egid int) { ++ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) ++ egid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Geteuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getgid() (gid int) { ++ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgrp() (pgrp int) { ++ r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) ++ pgrp = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpid() (pid int) { ++ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getppid() (ppid int) { ++ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) ++ ppid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpriority(which int, who int) (prio int, err error) { ++ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) ++ prio = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrusage(who int, rusage *Rusage) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getsid(pid int) (sid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) ++ sid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Issetugid() (tainted bool) { ++ r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) ++ tainted = bool(r0 != 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kill(pid int, signum syscall.Signal) (err error) { ++ _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kqueue() (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Link(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listen(s int, backlog int) (err error) { ++ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lstat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkdir(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkfifo(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mknod(path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlockall(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlockall() (err error) { ++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Nanosleep(time *Timespec, leftover *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Open(path string, mode int, perm uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pathconf(path string, name int) (val int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func read(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Readlink(path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Rename(from string, to string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(from) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(to) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Revoke(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Rmdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { ++ r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) ++ newoffset = int64(int64(r1)<<32 | int64(r0)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { ++ _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setegid(egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seteuid(euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setgid(gid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpgid(pid int, pgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpriority(which int, who int, prio int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setregid(rgid int, egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setreuid(ruid int, euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setsid() (pid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) ++ pid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Settimeofday(tp *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setuid(uid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Stat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Symlink(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sync() (err error) { ++ _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Truncate(path string, length int64) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Umask(newmask int) (oldmask int) { ++ r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) ++ oldmask = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unlink(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unmount(path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func write(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { ++ r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) ++ ret = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func munmap(addr uintptr, length uintptr) (err error) { ++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func readlen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func writelen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go +new file mode 100644 +index 0000000..ca3e813 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go +@@ -0,0 +1,1357 @@ ++// mksyscall.pl -l32 -openbsd -tags openbsd,386 syscall_bsd.go syscall_openbsd.go syscall_openbsd_386.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build openbsd,386 ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++var _ syscall.Errno ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getgroups(ngid int, gid *_Gid_t) (n int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setgroups(ngid int, gid *_Gid_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { ++ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) ++ wpid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socket(domain int, typ int, proto int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { ++ _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Shutdown(s int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { ++ _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { ++ var _p0 unsafe.Pointer ++ if len(mib) > 0 { ++ _p0 = unsafe.Pointer(&mib[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimes(path string, timeval *[2]Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func futimes(fd int, timeval *[2]Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fcntl(fd int, cmd int, arg int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe(p *[2]_C_int) (err error) { ++ _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getdents(fd int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Access(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chflags(path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chmod(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Close(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup(fd int) (nfd int, err error) { ++ r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) ++ nfd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup2(from int, to int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exit(code int) { ++ Syscall(SYS_EXIT, uintptr(code), 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchdir(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchflags(fd int, flags int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Flock(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fpathconf(fd int, name int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstat(fd int, stat *Stat_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstatfs(fd int, stat *Statfs_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fsync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ftruncate(fd int, length int64) (err error) { ++ _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getegid() (egid int) { ++ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) ++ egid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Geteuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getgid() (gid int) { ++ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgrp() (pgrp int) { ++ r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) ++ pgrp = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpid() (pid int) { ++ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getppid() (ppid int) { ++ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) ++ ppid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpriority(which int, who int) (prio int, err error) { ++ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) ++ prio = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrusage(who int, rusage *Rusage) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getsid(pid int) (sid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) ++ sid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Issetugid() (tainted bool) { ++ r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) ++ tainted = bool(r0 != 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kill(pid int, signum syscall.Signal) (err error) { ++ _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kqueue() (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Link(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listen(s int, backlog int) (err error) { ++ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lstat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkdir(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkfifo(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mknod(path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlockall(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlockall() (err error) { ++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Nanosleep(time *Timespec, leftover *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Open(path string, mode int, perm uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pathconf(path string, name int) (val int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func read(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Readlink(path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Rename(from string, to string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(from) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(to) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Revoke(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Rmdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { ++ r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) ++ newoffset = int64(int64(r1)<<32 | int64(r0)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { ++ _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setegid(egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seteuid(euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setgid(gid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setlogin(name string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(name) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpgid(pid int, pgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpriority(which int, who int, prio int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setregid(rgid int, egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setreuid(ruid int, euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresgid(rgid int, egid int, sgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresuid(ruid int, euid int, suid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setsid() (pid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) ++ pid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Settimeofday(tp *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setuid(uid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Stat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Statfs(path string, stat *Statfs_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Symlink(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sync() (err error) { ++ _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Truncate(path string, length int64) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Umask(newmask int) (oldmask int) { ++ r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) ++ oldmask = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unlink(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unmount(path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func write(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { ++ r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) ++ ret = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func munmap(addr uintptr, length uintptr) (err error) { ++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func readlen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func writelen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go +new file mode 100644 +index 0000000..bf63d55 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go +@@ -0,0 +1,1357 @@ ++// mksyscall.pl -openbsd -tags openbsd,amd64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_amd64.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build openbsd,amd64 ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++var _ syscall.Errno ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getgroups(ngid int, gid *_Gid_t) (n int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setgroups(ngid int, gid *_Gid_t) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { ++ r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) ++ wpid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socket(domain int, typ int, proto int) (fd int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { ++ _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { ++ _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Shutdown(s int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { ++ _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { ++ r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { ++ var _p0 unsafe.Pointer ++ if len(mib) > 0 { ++ _p0 = unsafe.Pointer(&mib[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func utimes(path string, timeval *[2]Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func futimes(fd int, timeval *[2]Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func fcntl(fd int, cmd int, arg int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func pipe(p *[2]_C_int) (err error) { ++ _, _, e1 := RawSyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func getdents(fd int, buf []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(buf) > 0 { ++ _p0 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Access(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { ++ _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chflags(path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chmod(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Close(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup(fd int) (nfd int, err error) { ++ r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) ++ nfd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Dup2(from int, to int) (err error) { ++ _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Exit(code int) { ++ Syscall(SYS_EXIT, uintptr(code), 0, 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchdir(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchflags(fd int, flags int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Flock(fd int, how int) (err error) { ++ _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fpathconf(fd int, name int) (val int, err error) { ++ r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstat(fd int, stat *Stat_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fstatfs(fd int, stat *Statfs_t) (err error) { ++ _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Fsync(fd int) (err error) { ++ _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Ftruncate(fd int, length int64) (err error) { ++ _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getegid() (egid int) { ++ r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) ++ egid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Geteuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getgid() (gid int) { ++ r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpgrp() (pgrp int) { ++ r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) ++ pgrp = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpid() (pid int) { ++ r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getppid() (ppid int) { ++ r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) ++ ppid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getpriority(which int, who int) (prio int, err error) { ++ r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) ++ prio = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getrusage(who int, rusage *Rusage) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getsid(pid int) (sid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) ++ sid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Gettimeofday(tv *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Getuid() (uid int) { ++ r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Issetugid() (tainted bool) { ++ r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) ++ tainted = bool(r0 != 0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kill(pid int, signum syscall.Signal) (err error) { ++ _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Kqueue() (fd int, err error) { ++ r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Link(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Listen(s int, backlog int) (err error) { ++ _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Lstat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkdir(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mkfifo(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mknod(path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mlockall(flags int) (err error) { ++ _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlock(b []byte) (err error) { ++ var _p0 unsafe.Pointer ++ if len(b) > 0 { ++ _p0 = unsafe.Pointer(&b[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Munlockall() (err error) { ++ _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Nanosleep(time *Timespec, leftover *Timespec) (err error) { ++ _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Open(path string, mode int, perm uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) ++ fd = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pathconf(path string, name int) (val int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func read(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Readlink(path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 unsafe.Pointer ++ if len(buf) > 0 { ++ _p1 = unsafe.Pointer(&buf[0]) ++ } else { ++ _p1 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Rename(from string, to string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(from) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(to) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Revoke(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Rmdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { ++ r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) ++ newoffset = int64(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Select(n int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (err error) { ++ _, _, e1 := Syscall6(SYS_SELECT, uintptr(n), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setegid(egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Seteuid(euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setgid(gid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setlogin(name string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(name) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpgid(pid int, pgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setpriority(which int, who int, prio int) (err error) { ++ _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setregid(rgid int, egid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setreuid(ruid int, euid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresgid(rgid int, egid int, sgid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setresuid(ruid int, euid int, suid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setsid() (pid int, err error) { ++ r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) ++ pid = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Settimeofday(tp *Timeval) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Setuid(uid int) (err error) { ++ _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Stat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Statfs(path string, stat *Statfs_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Symlink(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Sync() (err error) { ++ _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Truncate(path string, length int64) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length)) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Umask(newmask int) (oldmask int) { ++ r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) ++ oldmask = int(r0) ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unlink(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func Unmount(path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func write(fd int, p []byte) (n int, err error) { ++ var _p0 unsafe.Pointer ++ if len(p) > 0 { ++ _p0 = unsafe.Pointer(&p[0]) ++ } else { ++ _p0 = unsafe.Pointer(&_zero) ++ } ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { ++ r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0) ++ ret = uintptr(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func munmap(addr uintptr, length uintptr) (err error) { ++ _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func readlen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} ++ ++// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT ++ ++func writelen(fd int, buf *byte, nbuf int) (n int, err error) { ++ r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) ++ n = int(r0) ++ if e1 != 0 { ++ err = errnoErr(e1) ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +new file mode 100644 +index 0000000..bdf140b +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +@@ -0,0 +1,1562 @@ ++// mksyscall_solaris.pl -tags solaris,amd64 syscall_solaris.go syscall_solaris_amd64.go ++// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT ++ ++// +build solaris,amd64 ++ ++package unix ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++//go:cgo_import_dynamic libc_pipe pipe "libc.so" ++//go:cgo_import_dynamic libc_getsockname getsockname "libsocket.so" ++//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" ++//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" ++//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" ++//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" ++//go:cgo_import_dynamic libc_gethostname gethostname "libc.so" ++//go:cgo_import_dynamic libc_utimes utimes "libc.so" ++//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" ++//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" ++//go:cgo_import_dynamic libc_futimesat futimesat "libc.so" ++//go:cgo_import_dynamic libc_accept accept "libsocket.so" ++//go:cgo_import_dynamic libc_recvmsg recvmsg "libsocket.so" ++//go:cgo_import_dynamic libc_sendmsg sendmsg "libsocket.so" ++//go:cgo_import_dynamic libc_acct acct "libc.so" ++//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" ++//go:cgo_import_dynamic libc_access access "libc.so" ++//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" ++//go:cgo_import_dynamic libc_chdir chdir "libc.so" ++//go:cgo_import_dynamic libc_chmod chmod "libc.so" ++//go:cgo_import_dynamic libc_chown chown "libc.so" ++//go:cgo_import_dynamic libc_chroot chroot "libc.so" ++//go:cgo_import_dynamic libc_close close "libc.so" ++//go:cgo_import_dynamic libc_creat creat "libc.so" ++//go:cgo_import_dynamic libc_dup dup "libc.so" ++//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" ++//go:cgo_import_dynamic libc_exit exit "libc.so" ++//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" ++//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" ++//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" ++//go:cgo_import_dynamic libc_fchown fchown "libc.so" ++//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" ++//go:cgo_import_dynamic libc_fdatasync fdatasync "libc.so" ++//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" ++//go:cgo_import_dynamic libc_fstat fstat "libc.so" ++//go:cgo_import_dynamic libc_getdents getdents "libc.so" ++//go:cgo_import_dynamic libc_getgid getgid "libc.so" ++//go:cgo_import_dynamic libc_getpid getpid "libc.so" ++//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" ++//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" ++//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" ++//go:cgo_import_dynamic libc_getegid getegid "libc.so" ++//go:cgo_import_dynamic libc_getppid getppid "libc.so" ++//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" ++//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" ++//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" ++//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" ++//go:cgo_import_dynamic libc_getuid getuid "libc.so" ++//go:cgo_import_dynamic libc_kill kill "libc.so" ++//go:cgo_import_dynamic libc_lchown lchown "libc.so" ++//go:cgo_import_dynamic libc_link link "libc.so" ++//go:cgo_import_dynamic libc_listen listen "libsocket.so" ++//go:cgo_import_dynamic libc_lstat lstat "libc.so" ++//go:cgo_import_dynamic libc_madvise madvise "libc.so" ++//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" ++//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" ++//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" ++//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" ++//go:cgo_import_dynamic libc_mknod mknod "libc.so" ++//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" ++//go:cgo_import_dynamic libc_mlock mlock "libc.so" ++//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" ++//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" ++//go:cgo_import_dynamic libc_munlock munlock "libc.so" ++//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" ++//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" ++//go:cgo_import_dynamic libc_open open "libc.so" ++//go:cgo_import_dynamic libc_openat openat "libc.so" ++//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" ++//go:cgo_import_dynamic libc_pause pause "libc.so" ++//go:cgo_import_dynamic libc_pread pread "libc.so" ++//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" ++//go:cgo_import_dynamic libc_read read "libc.so" ++//go:cgo_import_dynamic libc_readlink readlink "libc.so" ++//go:cgo_import_dynamic libc_rename rename "libc.so" ++//go:cgo_import_dynamic libc_renameat renameat "libc.so" ++//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" ++//go:cgo_import_dynamic libc_lseek lseek "libc.so" ++//go:cgo_import_dynamic libc_setegid setegid "libc.so" ++//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" ++//go:cgo_import_dynamic libc_setgid setgid "libc.so" ++//go:cgo_import_dynamic libc_sethostname sethostname "libc.so" ++//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" ++//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" ++//go:cgo_import_dynamic libc_setregid setregid "libc.so" ++//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" ++//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.so" ++//go:cgo_import_dynamic libc_setsid setsid "libc.so" ++//go:cgo_import_dynamic libc_setuid setuid "libc.so" ++//go:cgo_import_dynamic libc_shutdown shutdown "libsocket.so" ++//go:cgo_import_dynamic libc_stat stat "libc.so" ++//go:cgo_import_dynamic libc_symlink symlink "libc.so" ++//go:cgo_import_dynamic libc_sync sync "libc.so" ++//go:cgo_import_dynamic libc_times times "libc.so" ++//go:cgo_import_dynamic libc_truncate truncate "libc.so" ++//go:cgo_import_dynamic libc_fsync fsync "libc.so" ++//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" ++//go:cgo_import_dynamic libc_umask umask "libc.so" ++//go:cgo_import_dynamic libc_uname uname "libc.so" ++//go:cgo_import_dynamic libc_umount umount "libc.so" ++//go:cgo_import_dynamic libc_unlink unlink "libc.so" ++//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" ++//go:cgo_import_dynamic libc_ustat ustat "libc.so" ++//go:cgo_import_dynamic libc_utime utime "libc.so" ++//go:cgo_import_dynamic libc_bind bind "libsocket.so" ++//go:cgo_import_dynamic libc_connect connect "libsocket.so" ++//go:cgo_import_dynamic libc_mmap mmap "libc.so" ++//go:cgo_import_dynamic libc_munmap munmap "libc.so" ++//go:cgo_import_dynamic libc_sendto sendto "libsocket.so" ++//go:cgo_import_dynamic libc_socket socket "libsocket.so" ++//go:cgo_import_dynamic libc_socketpair socketpair "libsocket.so" ++//go:cgo_import_dynamic libc_write write "libc.so" ++//go:cgo_import_dynamic libc_getsockopt getsockopt "libsocket.so" ++//go:cgo_import_dynamic libc_getpeername getpeername "libsocket.so" ++//go:cgo_import_dynamic libc_setsockopt setsockopt "libsocket.so" ++//go:cgo_import_dynamic libc_recvfrom recvfrom "libsocket.so" ++//go:cgo_import_dynamic libc_sysconf sysconf "libc.so" ++ ++//go:linkname procpipe libc_pipe ++//go:linkname procgetsockname libc_getsockname ++//go:linkname procGetcwd libc_getcwd ++//go:linkname procgetgroups libc_getgroups ++//go:linkname procsetgroups libc_setgroups ++//go:linkname procwait4 libc_wait4 ++//go:linkname procgethostname libc_gethostname ++//go:linkname procutimes libc_utimes ++//go:linkname procutimensat libc_utimensat ++//go:linkname procfcntl libc_fcntl ++//go:linkname procfutimesat libc_futimesat ++//go:linkname procaccept libc_accept ++//go:linkname procrecvmsg libc_recvmsg ++//go:linkname procsendmsg libc_sendmsg ++//go:linkname procacct libc_acct ++//go:linkname procioctl libc_ioctl ++//go:linkname procAccess libc_access ++//go:linkname procAdjtime libc_adjtime ++//go:linkname procChdir libc_chdir ++//go:linkname procChmod libc_chmod ++//go:linkname procChown libc_chown ++//go:linkname procChroot libc_chroot ++//go:linkname procClose libc_close ++//go:linkname procCreat libc_creat ++//go:linkname procDup libc_dup ++//go:linkname procDup2 libc_dup2 ++//go:linkname procExit libc_exit ++//go:linkname procFchdir libc_fchdir ++//go:linkname procFchmod libc_fchmod ++//go:linkname procFchmodat libc_fchmodat ++//go:linkname procFchown libc_fchown ++//go:linkname procFchownat libc_fchownat ++//go:linkname procFdatasync libc_fdatasync ++//go:linkname procFpathconf libc_fpathconf ++//go:linkname procFstat libc_fstat ++//go:linkname procGetdents libc_getdents ++//go:linkname procGetgid libc_getgid ++//go:linkname procGetpid libc_getpid ++//go:linkname procGetpgid libc_getpgid ++//go:linkname procGetpgrp libc_getpgrp ++//go:linkname procGeteuid libc_geteuid ++//go:linkname procGetegid libc_getegid ++//go:linkname procGetppid libc_getppid ++//go:linkname procGetpriority libc_getpriority ++//go:linkname procGetrlimit libc_getrlimit ++//go:linkname procGetrusage libc_getrusage ++//go:linkname procGettimeofday libc_gettimeofday ++//go:linkname procGetuid libc_getuid ++//go:linkname procKill libc_kill ++//go:linkname procLchown libc_lchown ++//go:linkname procLink libc_link ++//go:linkname proclisten libc_listen ++//go:linkname procLstat libc_lstat ++//go:linkname procMadvise libc_madvise ++//go:linkname procMkdir libc_mkdir ++//go:linkname procMkdirat libc_mkdirat ++//go:linkname procMkfifo libc_mkfifo ++//go:linkname procMkfifoat libc_mkfifoat ++//go:linkname procMknod libc_mknod ++//go:linkname procMknodat libc_mknodat ++//go:linkname procMlock libc_mlock ++//go:linkname procMlockall libc_mlockall ++//go:linkname procMprotect libc_mprotect ++//go:linkname procMunlock libc_munlock ++//go:linkname procMunlockall libc_munlockall ++//go:linkname procNanosleep libc_nanosleep ++//go:linkname procOpen libc_open ++//go:linkname procOpenat libc_openat ++//go:linkname procPathconf libc_pathconf ++//go:linkname procPause libc_pause ++//go:linkname procPread libc_pread ++//go:linkname procPwrite libc_pwrite ++//go:linkname procread libc_read ++//go:linkname procReadlink libc_readlink ++//go:linkname procRename libc_rename ++//go:linkname procRenameat libc_renameat ++//go:linkname procRmdir libc_rmdir ++//go:linkname proclseek libc_lseek ++//go:linkname procSetegid libc_setegid ++//go:linkname procSeteuid libc_seteuid ++//go:linkname procSetgid libc_setgid ++//go:linkname procSethostname libc_sethostname ++//go:linkname procSetpgid libc_setpgid ++//go:linkname procSetpriority libc_setpriority ++//go:linkname procSetregid libc_setregid ++//go:linkname procSetreuid libc_setreuid ++//go:linkname procSetrlimit libc_setrlimit ++//go:linkname procSetsid libc_setsid ++//go:linkname procSetuid libc_setuid ++//go:linkname procshutdown libc_shutdown ++//go:linkname procStat libc_stat ++//go:linkname procSymlink libc_symlink ++//go:linkname procSync libc_sync ++//go:linkname procTimes libc_times ++//go:linkname procTruncate libc_truncate ++//go:linkname procFsync libc_fsync ++//go:linkname procFtruncate libc_ftruncate ++//go:linkname procUmask libc_umask ++//go:linkname procUname libc_uname ++//go:linkname procumount libc_umount ++//go:linkname procUnlink libc_unlink ++//go:linkname procUnlinkat libc_unlinkat ++//go:linkname procUstat libc_ustat ++//go:linkname procUtime libc_utime ++//go:linkname procbind libc_bind ++//go:linkname procconnect libc_connect ++//go:linkname procmmap libc_mmap ++//go:linkname procmunmap libc_munmap ++//go:linkname procsendto libc_sendto ++//go:linkname procsocket libc_socket ++//go:linkname procsocketpair libc_socketpair ++//go:linkname procwrite libc_write ++//go:linkname procgetsockopt libc_getsockopt ++//go:linkname procgetpeername libc_getpeername ++//go:linkname procsetsockopt libc_setsockopt ++//go:linkname procrecvfrom libc_recvfrom ++//go:linkname procsysconf libc_sysconf ++ ++var ( ++ procpipe, ++ procgetsockname, ++ procGetcwd, ++ procgetgroups, ++ procsetgroups, ++ procwait4, ++ procgethostname, ++ procutimes, ++ procutimensat, ++ procfcntl, ++ procfutimesat, ++ procaccept, ++ procrecvmsg, ++ procsendmsg, ++ procacct, ++ procioctl, ++ procAccess, ++ procAdjtime, ++ procChdir, ++ procChmod, ++ procChown, ++ procChroot, ++ procClose, ++ procCreat, ++ procDup, ++ procDup2, ++ procExit, ++ procFchdir, ++ procFchmod, ++ procFchmodat, ++ procFchown, ++ procFchownat, ++ procFdatasync, ++ procFpathconf, ++ procFstat, ++ procGetdents, ++ procGetgid, ++ procGetpid, ++ procGetpgid, ++ procGetpgrp, ++ procGeteuid, ++ procGetegid, ++ procGetppid, ++ procGetpriority, ++ procGetrlimit, ++ procGetrusage, ++ procGettimeofday, ++ procGetuid, ++ procKill, ++ procLchown, ++ procLink, ++ proclisten, ++ procLstat, ++ procMadvise, ++ procMkdir, ++ procMkdirat, ++ procMkfifo, ++ procMkfifoat, ++ procMknod, ++ procMknodat, ++ procMlock, ++ procMlockall, ++ procMprotect, ++ procMunlock, ++ procMunlockall, ++ procNanosleep, ++ procOpen, ++ procOpenat, ++ procPathconf, ++ procPause, ++ procPread, ++ procPwrite, ++ procread, ++ procReadlink, ++ procRename, ++ procRenameat, ++ procRmdir, ++ proclseek, ++ procSetegid, ++ procSeteuid, ++ procSetgid, ++ procSethostname, ++ procSetpgid, ++ procSetpriority, ++ procSetregid, ++ procSetreuid, ++ procSetrlimit, ++ procSetsid, ++ procSetuid, ++ procshutdown, ++ procStat, ++ procSymlink, ++ procSync, ++ procTimes, ++ procTruncate, ++ procFsync, ++ procFtruncate, ++ procUmask, ++ procUname, ++ procumount, ++ procUnlink, ++ procUnlinkat, ++ procUstat, ++ procUtime, ++ procbind, ++ procconnect, ++ procmmap, ++ procmunmap, ++ procsendto, ++ procsocket, ++ procsocketpair, ++ procwrite, ++ procgetsockopt, ++ procgetpeername, ++ procsetsockopt, ++ procrecvfrom, ++ procsysconf syscallFunc ++) ++ ++func pipe(p *[2]_C_int) (n int, err error) { ++ r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe)), 1, uintptr(unsafe.Pointer(p)), 0, 0, 0, 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetsockname)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Getcwd(buf []byte) (n int, err error) { ++ var _p0 *byte ++ if len(buf) > 0 { ++ _p0 = &buf[0] ++ } ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetcwd)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func getgroups(ngid int, gid *_Gid_t) (n int, err error) { ++ r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func setgroups(ngid int, gid *_Gid_t) (err error) { ++ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procsetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error) { ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwait4)), 4, uintptr(pid), uintptr(unsafe.Pointer(statusp)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) ++ wpid = int32(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func gethostname(buf []byte) (n int, err error) { ++ var _p0 *byte ++ if len(buf) > 0 { ++ _p0 = &buf[0] ++ } ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func utimes(path string, times *[2]Timeval) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimes)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimensat)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flag), 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func fcntl(fd int, cmd int, arg int) (val int, err error) { ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func futimesat(fildes int, path *byte, times *[2]Timeval) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfutimesat)), 3, uintptr(fildes), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)), 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procaccept)), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procrecvmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsendmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func acct(path *byte) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procacct)), 1, uintptr(unsafe.Pointer(path)), 0, 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func ioctl(fd int, req int, arg uintptr) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Access(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procAccess)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procAdjtime)), 2, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Chdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Chmod(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChmod)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Chown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Chroot(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChroot)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Close(fd int) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procClose)), 1, uintptr(fd), 0, 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Creat(path string, mode uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procCreat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Dup(fd int) (nfd int, err error) { ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup)), 1, uintptr(fd), 0, 0, 0, 0, 0) ++ nfd = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Dup2(oldfd int, newfd int) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Exit(code int) { ++ sysvicall6(uintptr(unsafe.Pointer(&procExit)), 1, uintptr(code), 0, 0, 0, 0, 0) ++ return ++} ++ ++func Fchdir(fd int) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchdir)), 1, uintptr(fd), 0, 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Fchmod(fd int, mode uint32) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchmodat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Fchown(fd int, uid int, gid int) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchownat)), 5, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Fdatasync(fd int) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Fpathconf(fd int, name int) (val int, err error) { ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFpathconf)), 2, uintptr(fd), uintptr(name), 0, 0, 0, 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Fstat(fd int, stat *Stat_t) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstat)), 2, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Getdents(fd int, buf []byte, basep *uintptr) (n int, err error) { ++ var _p0 *byte ++ if len(buf) > 0 { ++ _p0 = &buf[0] ++ } ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetdents)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Getgid() (gid int) { ++ r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetgid)), 0, 0, 0, 0, 0, 0, 0) ++ gid = int(r0) ++ return ++} ++ ++func Getpid() (pid int) { ++ r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpid)), 0, 0, 0, 0, 0, 0, 0) ++ pid = int(r0) ++ return ++} ++ ++func Getpgid(pid int) (pgid int, err error) { ++ r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Getpgrp() (pgid int, err error) { ++ r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgrp)), 0, 0, 0, 0, 0, 0, 0) ++ pgid = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Geteuid() (euid int) { ++ r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGeteuid)), 0, 0, 0, 0, 0, 0, 0) ++ euid = int(r0) ++ return ++} ++ ++func Getegid() (egid int) { ++ r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetegid)), 0, 0, 0, 0, 0, 0, 0) ++ egid = int(r0) ++ return ++} ++ ++func Getppid() (ppid int) { ++ r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetppid)), 0, 0, 0, 0, 0, 0, 0) ++ ppid = int(r0) ++ return ++} ++ ++func Getpriority(which int, who int) (n int, err error) { ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetpriority)), 2, uintptr(which), uintptr(who), 0, 0, 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Getrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrlimit)), 2, uintptr(which), uintptr(unsafe.Pointer(lim)), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Getrusage(who int, rusage *Rusage) (err error) { ++ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrusage)), 2, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Gettimeofday(tv *Timeval) (err error) { ++ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGettimeofday)), 1, uintptr(unsafe.Pointer(tv)), 0, 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Getuid() (uid int) { ++ r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetuid)), 0, 0, 0, 0, 0, 0, 0) ++ uid = int(r0) ++ return ++} ++ ++func Kill(pid int, signum syscall.Signal) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procKill)), 2, uintptr(pid), uintptr(signum), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Lchown(path string, uid int, gid int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLchown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Link(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Listen(s int, backlog int) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proclisten)), 2, uintptr(s), uintptr(backlog), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Lstat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLstat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Madvise(b []byte, advice int) (err error) { ++ var _p0 *byte ++ if len(b) > 0 { ++ _p0 = &b[0] ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMadvise)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(advice), 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Mkdir(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkdir)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Mkdirat(dirfd int, path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkdirat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Mkfifo(path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifo)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Mkfifoat(dirfd int, path string, mode uint32) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifoat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Mknod(path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMknod)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMknodat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Mlock(b []byte) (err error) { ++ var _p0 *byte ++ if len(b) > 0 { ++ _p0 = &b[0] ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Mlockall(flags int) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlockall)), 1, uintptr(flags), 0, 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Mprotect(b []byte, prot int) (err error) { ++ var _p0 *byte ++ if len(b) > 0 { ++ _p0 = &b[0] ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMprotect)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(prot), 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Munlock(b []byte) (err error) { ++ var _p0 *byte ++ if len(b) > 0 { ++ _p0 = &b[0] ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Munlockall() (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlockall)), 0, 0, 0, 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Nanosleep(time *Timespec, leftover *Timespec) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procNanosleep)), 2, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Open(path string, mode int, perm uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procOpen)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procOpenat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Pathconf(path string, name int) (val int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPathconf)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0, 0, 0, 0) ++ val = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Pause() (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPause)), 0, 0, 0, 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Pread(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 *byte ++ if len(p) > 0 { ++ _p0 = &p[0] ++ } ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPread)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Pwrite(fd int, p []byte, offset int64) (n int, err error) { ++ var _p0 *byte ++ if len(p) > 0 { ++ _p0 = &p[0] ++ } ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPwrite)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func read(fd int, p []byte) (n int, err error) { ++ var _p0 *byte ++ if len(p) > 0 { ++ _p0 = &p[0] ++ } ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procread)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Readlink(path string, buf []byte) (n int, err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ if len(buf) > 0 { ++ _p1 = &buf[0] ++ } ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procReadlink)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(len(buf)), 0, 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Rename(from string, to string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(from) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(to) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRename)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(oldpath) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(newpath) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRenameat)), 4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Rmdir(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRmdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proclseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0) ++ newoffset = int64(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Setegid(egid int) (err error) { ++ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetegid)), 1, uintptr(egid), 0, 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Seteuid(euid int) (err error) { ++ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSeteuid)), 1, uintptr(euid), 0, 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Setgid(gid int) (err error) { ++ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetgid)), 1, uintptr(gid), 0, 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Sethostname(p []byte) (err error) { ++ var _p0 *byte ++ if len(p) > 0 { ++ _p0 = &p[0] ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Setpgid(pid int, pgid int) (err error) { ++ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Setpriority(which int, who int, prio int) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSetpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Setregid(rgid int, egid int) (err error) { ++ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Setreuid(ruid int, euid int) (err error) { ++ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Setrlimit(which int, lim *Rlimit) (err error) { ++ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetrlimit)), 2, uintptr(which), uintptr(unsafe.Pointer(lim)), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Setsid() (pid int, err error) { ++ r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetsid)), 0, 0, 0, 0, 0, 0, 0) ++ pid = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Setuid(uid int) (err error) { ++ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetuid)), 1, uintptr(uid), 0, 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Shutdown(s int, how int) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procshutdown)), 2, uintptr(s), uintptr(how), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Stat(path string, stat *Stat_t) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procStat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Symlink(path string, link string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ var _p1 *byte ++ _p1, err = BytePtrFromString(link) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSymlink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Sync() (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSync)), 0, 0, 0, 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Times(tms *Tms) (ticks uintptr, err error) { ++ r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procTimes)), 1, uintptr(unsafe.Pointer(tms)), 0, 0, 0, 0, 0) ++ ticks = uintptr(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Truncate(path string, length int64) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procTruncate)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Fsync(fd int) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFsync)), 1, uintptr(fd), 0, 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Ftruncate(fd int, length int64) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFtruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Umask(mask int) (oldmask int) { ++ r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procUmask)), 1, uintptr(mask), 0, 0, 0, 0, 0) ++ oldmask = int(r0) ++ return ++} ++ ++func Uname(buf *Utsname) (err error) { ++ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procUname)), 1, uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Unmount(target string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(target) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procumount)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Unlink(path string) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlink)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Unlinkat(dirfd int, path string, flags int) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlinkat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Ustat(dev int, ubuf *Ustat_t) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUstat)), 2, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func Utime(path string, buf *Utimbuf) (err error) { ++ var _p0 *byte ++ _p0, err = BytePtrFromString(path) ++ if err != nil { ++ return ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUtime)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procbind)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procconnect)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procmmap)), 6, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) ++ ret = uintptr(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func munmap(addr uintptr, length uintptr) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procmunmap)), 2, uintptr(addr), uintptr(length), 0, 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { ++ var _p0 *byte ++ if len(buf) > 0 { ++ _p0 = &buf[0] ++ } ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsendto)), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func socket(domain int, typ int, proto int) (fd int, err error) { ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsocket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0) ++ fd = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { ++ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procsocketpair)), 4, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func write(fd int, p []byte) (n int, err error) { ++ var _p0 *byte ++ if len(p) > 0 { ++ _p0 = &p[0] ++ } ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwrite)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0) ++ n = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { ++ _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetpeername)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { ++ _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsetsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { ++ var _p0 *byte ++ if len(p) > 0 { ++ _p0 = &p[0] ++ } ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procrecvfrom)), 6, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) ++ n = int(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} ++ ++func sysconf(name int) (n int64, err error) { ++ r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsysconf)), 1, uintptr(name), 0, 0, 0, 0, 0) ++ n = int64(r0) ++ if e1 != 0 { ++ err = e1 ++ } ++ return ++} +diff --git a/vendor/golang.org/x/sys/unix/zsysctl_openbsd.go b/vendor/golang.org/x/sys/unix/zsysctl_openbsd.go +new file mode 100644 +index 0000000..83bb935 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysctl_openbsd.go +@@ -0,0 +1,270 @@ ++// mksysctl_openbsd.pl ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT ++ ++package unix ++ ++type mibentry struct { ++ ctlname string ++ ctloid []_C_int ++} ++ ++var sysctlMib = []mibentry{ ++ {"ddb.console", []_C_int{9, 6}}, ++ {"ddb.log", []_C_int{9, 7}}, ++ {"ddb.max_line", []_C_int{9, 3}}, ++ {"ddb.max_width", []_C_int{9, 2}}, ++ {"ddb.panic", []_C_int{9, 5}}, ++ {"ddb.radix", []_C_int{9, 1}}, ++ {"ddb.tab_stop_width", []_C_int{9, 4}}, ++ {"ddb.trigger", []_C_int{9, 8}}, ++ {"fs.posix.setuid", []_C_int{3, 1, 1}}, ++ {"hw.allowpowerdown", []_C_int{6, 22}}, ++ {"hw.byteorder", []_C_int{6, 4}}, ++ {"hw.cpuspeed", []_C_int{6, 12}}, ++ {"hw.diskcount", []_C_int{6, 10}}, ++ {"hw.disknames", []_C_int{6, 8}}, ++ {"hw.diskstats", []_C_int{6, 9}}, ++ {"hw.machine", []_C_int{6, 1}}, ++ {"hw.model", []_C_int{6, 2}}, ++ {"hw.ncpu", []_C_int{6, 3}}, ++ {"hw.ncpufound", []_C_int{6, 21}}, ++ {"hw.pagesize", []_C_int{6, 7}}, ++ {"hw.physmem", []_C_int{6, 19}}, ++ {"hw.product", []_C_int{6, 15}}, ++ {"hw.serialno", []_C_int{6, 17}}, ++ {"hw.setperf", []_C_int{6, 13}}, ++ {"hw.usermem", []_C_int{6, 20}}, ++ {"hw.uuid", []_C_int{6, 18}}, ++ {"hw.vendor", []_C_int{6, 14}}, ++ {"hw.version", []_C_int{6, 16}}, ++ {"kern.arandom", []_C_int{1, 37}}, ++ {"kern.argmax", []_C_int{1, 8}}, ++ {"kern.boottime", []_C_int{1, 21}}, ++ {"kern.bufcachepercent", []_C_int{1, 72}}, ++ {"kern.ccpu", []_C_int{1, 45}}, ++ {"kern.clockrate", []_C_int{1, 12}}, ++ {"kern.consdev", []_C_int{1, 75}}, ++ {"kern.cp_time", []_C_int{1, 40}}, ++ {"kern.cp_time2", []_C_int{1, 71}}, ++ {"kern.cryptodevallowsoft", []_C_int{1, 53}}, ++ {"kern.domainname", []_C_int{1, 22}}, ++ {"kern.file", []_C_int{1, 73}}, ++ {"kern.forkstat", []_C_int{1, 42}}, ++ {"kern.fscale", []_C_int{1, 46}}, ++ {"kern.fsync", []_C_int{1, 33}}, ++ {"kern.hostid", []_C_int{1, 11}}, ++ {"kern.hostname", []_C_int{1, 10}}, ++ {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, ++ {"kern.job_control", []_C_int{1, 19}}, ++ {"kern.malloc.buckets", []_C_int{1, 39, 1}}, ++ {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, ++ {"kern.maxclusters", []_C_int{1, 67}}, ++ {"kern.maxfiles", []_C_int{1, 7}}, ++ {"kern.maxlocksperuid", []_C_int{1, 70}}, ++ {"kern.maxpartitions", []_C_int{1, 23}}, ++ {"kern.maxproc", []_C_int{1, 6}}, ++ {"kern.maxthread", []_C_int{1, 25}}, ++ {"kern.maxvnodes", []_C_int{1, 5}}, ++ {"kern.mbstat", []_C_int{1, 59}}, ++ {"kern.msgbuf", []_C_int{1, 48}}, ++ {"kern.msgbufsize", []_C_int{1, 38}}, ++ {"kern.nchstats", []_C_int{1, 41}}, ++ {"kern.netlivelocks", []_C_int{1, 76}}, ++ {"kern.nfiles", []_C_int{1, 56}}, ++ {"kern.ngroups", []_C_int{1, 18}}, ++ {"kern.nosuidcoredump", []_C_int{1, 32}}, ++ {"kern.nprocs", []_C_int{1, 47}}, ++ {"kern.nselcoll", []_C_int{1, 43}}, ++ {"kern.nthreads", []_C_int{1, 26}}, ++ {"kern.numvnodes", []_C_int{1, 58}}, ++ {"kern.osrelease", []_C_int{1, 2}}, ++ {"kern.osrevision", []_C_int{1, 3}}, ++ {"kern.ostype", []_C_int{1, 1}}, ++ {"kern.osversion", []_C_int{1, 27}}, ++ {"kern.pool_debug", []_C_int{1, 77}}, ++ {"kern.posix1version", []_C_int{1, 17}}, ++ {"kern.proc", []_C_int{1, 66}}, ++ {"kern.random", []_C_int{1, 31}}, ++ {"kern.rawpartition", []_C_int{1, 24}}, ++ {"kern.saved_ids", []_C_int{1, 20}}, ++ {"kern.securelevel", []_C_int{1, 9}}, ++ {"kern.seminfo", []_C_int{1, 61}}, ++ {"kern.shminfo", []_C_int{1, 62}}, ++ {"kern.somaxconn", []_C_int{1, 28}}, ++ {"kern.sominconn", []_C_int{1, 29}}, ++ {"kern.splassert", []_C_int{1, 54}}, ++ {"kern.stackgap_random", []_C_int{1, 50}}, ++ {"kern.sysvipc_info", []_C_int{1, 51}}, ++ {"kern.sysvmsg", []_C_int{1, 34}}, ++ {"kern.sysvsem", []_C_int{1, 35}}, ++ {"kern.sysvshm", []_C_int{1, 36}}, ++ {"kern.timecounter.choice", []_C_int{1, 69, 4}}, ++ {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, ++ {"kern.timecounter.tick", []_C_int{1, 69, 1}}, ++ {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, ++ {"kern.tty.maxptys", []_C_int{1, 44, 6}}, ++ {"kern.tty.nptys", []_C_int{1, 44, 7}}, ++ {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, ++ {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, ++ {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, ++ {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, ++ {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, ++ {"kern.ttycount", []_C_int{1, 57}}, ++ {"kern.userasymcrypto", []_C_int{1, 60}}, ++ {"kern.usercrypto", []_C_int{1, 52}}, ++ {"kern.usermount", []_C_int{1, 30}}, ++ {"kern.version", []_C_int{1, 4}}, ++ {"kern.vnode", []_C_int{1, 13}}, ++ {"kern.watchdog.auto", []_C_int{1, 64, 2}}, ++ {"kern.watchdog.period", []_C_int{1, 64, 1}}, ++ {"net.bpf.bufsize", []_C_int{4, 31, 1}}, ++ {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, ++ {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, ++ {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, ++ {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, ++ {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, ++ {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, ++ {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, ++ {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, ++ {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, ++ {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, ++ {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, ++ {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, ++ {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, ++ {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, ++ {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, ++ {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, ++ {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, ++ {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, ++ {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, ++ {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, ++ {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, ++ {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, ++ {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, ++ {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, ++ {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, ++ {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, ++ {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, ++ {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, ++ {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, ++ {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, ++ {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, ++ {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, ++ {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, ++ {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, ++ {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, ++ {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, ++ {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, ++ {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, ++ {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, ++ {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, ++ {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, ++ {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, ++ {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, ++ {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, ++ {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, ++ {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, ++ {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, ++ {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, ++ {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, ++ {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, ++ {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, ++ {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, ++ {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, ++ {"net.inet.mobileip.allow", []_C_int{4, 2, 55, 1}}, ++ {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, ++ {"net.inet.pim.stats", []_C_int{4, 2, 103, 1}}, ++ {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, ++ {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, ++ {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, ++ {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, ++ {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, ++ {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, ++ {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, ++ {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, ++ {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, ++ {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, ++ {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, ++ {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, ++ {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, ++ {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, ++ {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, ++ {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, ++ {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, ++ {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, ++ {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, ++ {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, ++ {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, ++ {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, ++ {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, ++ {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, ++ {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, ++ {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, ++ {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, ++ {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, ++ {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, ++ {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, ++ {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, ++ {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, ++ {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, ++ {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, ++ {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, ++ {"net.inet6.icmp6.nd6_prune", []_C_int{4, 24, 30, 6}}, ++ {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, ++ {"net.inet6.icmp6.nd6_useloopback", []_C_int{4, 24, 30, 11}}, ++ {"net.inet6.icmp6.nodeinfo", []_C_int{4, 24, 30, 13}}, ++ {"net.inet6.icmp6.rediraccept", []_C_int{4, 24, 30, 2}}, ++ {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, ++ {"net.inet6.ip6.accept_rtadv", []_C_int{4, 24, 17, 12}}, ++ {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, ++ {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, ++ {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, ++ {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, ++ {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, ++ {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, ++ {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, ++ {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, ++ {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, ++ {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, ++ {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, ++ {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, ++ {"net.inet6.ip6.maxifdefrouters", []_C_int{4, 24, 17, 47}}, ++ {"net.inet6.ip6.maxifprefixes", []_C_int{4, 24, 17, 46}}, ++ {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, ++ {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, ++ {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, ++ {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, ++ {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, ++ {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, ++ {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, ++ {"net.inet6.ip6.rr_prune", []_C_int{4, 24, 17, 22}}, ++ {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, ++ {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, ++ {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, ++ {"net.inet6.ip6.v6only", []_C_int{4, 24, 17, 24}}, ++ {"net.key.sadb_dump", []_C_int{4, 30, 1}}, ++ {"net.key.spd_dump", []_C_int{4, 30, 2}}, ++ {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, ++ {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, ++ {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, ++ {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, ++ {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, ++ {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, ++ {"net.mpls.maxloop_inkernel", []_C_int{4, 33, 4}}, ++ {"net.mpls.ttl", []_C_int{4, 33, 2}}, ++ {"net.pflow.stats", []_C_int{4, 34, 1}}, ++ {"net.pipex.enable", []_C_int{4, 35, 1}}, ++ {"vm.anonmin", []_C_int{2, 7}}, ++ {"vm.loadavg", []_C_int{2, 2}}, ++ {"vm.maxslp", []_C_int{2, 10}}, ++ {"vm.nkmempages", []_C_int{2, 6}}, ++ {"vm.psstrings", []_C_int{2, 3}}, ++ {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, ++ {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, ++ {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, ++ {"vm.uspace", []_C_int{2, 11}}, ++ {"vm.uvmexp", []_C_int{2, 4}}, ++ {"vm.vmmeter", []_C_int{2, 1}}, ++ {"vm.vnodemin", []_C_int{2, 9}}, ++ {"vm.vtextmin", []_C_int{2, 8}}, ++} +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go +new file mode 100644 +index 0000000..2786773 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_386.go +@@ -0,0 +1,398 @@ ++// mksysnum_darwin.pl /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/sys/syscall.h ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT ++ ++// +build 386,darwin ++ ++package unix ++ ++const ( ++ SYS_SYSCALL = 0 ++ SYS_EXIT = 1 ++ SYS_FORK = 2 ++ SYS_READ = 3 ++ SYS_WRITE = 4 ++ SYS_OPEN = 5 ++ SYS_CLOSE = 6 ++ SYS_WAIT4 = 7 ++ SYS_LINK = 9 ++ SYS_UNLINK = 10 ++ SYS_CHDIR = 12 ++ SYS_FCHDIR = 13 ++ SYS_MKNOD = 14 ++ SYS_CHMOD = 15 ++ SYS_CHOWN = 16 ++ SYS_GETFSSTAT = 18 ++ SYS_GETPID = 20 ++ SYS_SETUID = 23 ++ SYS_GETUID = 24 ++ SYS_GETEUID = 25 ++ SYS_PTRACE = 26 ++ SYS_RECVMSG = 27 ++ SYS_SENDMSG = 28 ++ SYS_RECVFROM = 29 ++ SYS_ACCEPT = 30 ++ SYS_GETPEERNAME = 31 ++ SYS_GETSOCKNAME = 32 ++ SYS_ACCESS = 33 ++ SYS_CHFLAGS = 34 ++ SYS_FCHFLAGS = 35 ++ SYS_SYNC = 36 ++ SYS_KILL = 37 ++ SYS_GETPPID = 39 ++ SYS_DUP = 41 ++ SYS_PIPE = 42 ++ SYS_GETEGID = 43 ++ SYS_SIGACTION = 46 ++ SYS_GETGID = 47 ++ SYS_SIGPROCMASK = 48 ++ SYS_GETLOGIN = 49 ++ SYS_SETLOGIN = 50 ++ SYS_ACCT = 51 ++ SYS_SIGPENDING = 52 ++ SYS_SIGALTSTACK = 53 ++ SYS_IOCTL = 54 ++ SYS_REBOOT = 55 ++ SYS_REVOKE = 56 ++ SYS_SYMLINK = 57 ++ SYS_READLINK = 58 ++ SYS_EXECVE = 59 ++ SYS_UMASK = 60 ++ SYS_CHROOT = 61 ++ SYS_MSYNC = 65 ++ SYS_VFORK = 66 ++ SYS_MUNMAP = 73 ++ SYS_MPROTECT = 74 ++ SYS_MADVISE = 75 ++ SYS_MINCORE = 78 ++ SYS_GETGROUPS = 79 ++ SYS_SETGROUPS = 80 ++ SYS_GETPGRP = 81 ++ SYS_SETPGID = 82 ++ SYS_SETITIMER = 83 ++ SYS_SWAPON = 85 ++ SYS_GETITIMER = 86 ++ SYS_GETDTABLESIZE = 89 ++ SYS_DUP2 = 90 ++ SYS_FCNTL = 92 ++ SYS_SELECT = 93 ++ SYS_FSYNC = 95 ++ SYS_SETPRIORITY = 96 ++ SYS_SOCKET = 97 ++ SYS_CONNECT = 98 ++ SYS_GETPRIORITY = 100 ++ SYS_BIND = 104 ++ SYS_SETSOCKOPT = 105 ++ SYS_LISTEN = 106 ++ SYS_SIGSUSPEND = 111 ++ SYS_GETTIMEOFDAY = 116 ++ SYS_GETRUSAGE = 117 ++ SYS_GETSOCKOPT = 118 ++ SYS_READV = 120 ++ SYS_WRITEV = 121 ++ SYS_SETTIMEOFDAY = 122 ++ SYS_FCHOWN = 123 ++ SYS_FCHMOD = 124 ++ SYS_SETREUID = 126 ++ SYS_SETREGID = 127 ++ SYS_RENAME = 128 ++ SYS_FLOCK = 131 ++ SYS_MKFIFO = 132 ++ SYS_SENDTO = 133 ++ SYS_SHUTDOWN = 134 ++ SYS_SOCKETPAIR = 135 ++ SYS_MKDIR = 136 ++ SYS_RMDIR = 137 ++ SYS_UTIMES = 138 ++ SYS_FUTIMES = 139 ++ SYS_ADJTIME = 140 ++ SYS_GETHOSTUUID = 142 ++ SYS_SETSID = 147 ++ SYS_GETPGID = 151 ++ SYS_SETPRIVEXEC = 152 ++ SYS_PREAD = 153 ++ SYS_PWRITE = 154 ++ SYS_NFSSVC = 155 ++ SYS_STATFS = 157 ++ SYS_FSTATFS = 158 ++ SYS_UNMOUNT = 159 ++ SYS_GETFH = 161 ++ SYS_QUOTACTL = 165 ++ SYS_MOUNT = 167 ++ SYS_CSOPS = 169 ++ SYS_CSOPS_AUDITTOKEN = 170 ++ SYS_WAITID = 173 ++ SYS_KDEBUG_TRACE64 = 179 ++ SYS_KDEBUG_TRACE = 180 ++ SYS_SETGID = 181 ++ SYS_SETEGID = 182 ++ SYS_SETEUID = 183 ++ SYS_SIGRETURN = 184 ++ SYS_CHUD = 185 ++ SYS_FDATASYNC = 187 ++ SYS_STAT = 188 ++ SYS_FSTAT = 189 ++ SYS_LSTAT = 190 ++ SYS_PATHCONF = 191 ++ SYS_FPATHCONF = 192 ++ SYS_GETRLIMIT = 194 ++ SYS_SETRLIMIT = 195 ++ SYS_GETDIRENTRIES = 196 ++ SYS_MMAP = 197 ++ SYS_LSEEK = 199 ++ SYS_TRUNCATE = 200 ++ SYS_FTRUNCATE = 201 ++ SYS_SYSCTL = 202 ++ SYS_MLOCK = 203 ++ SYS_MUNLOCK = 204 ++ SYS_UNDELETE = 205 ++ SYS_OPEN_DPROTECTED_NP = 216 ++ SYS_GETATTRLIST = 220 ++ SYS_SETATTRLIST = 221 ++ SYS_GETDIRENTRIESATTR = 222 ++ SYS_EXCHANGEDATA = 223 ++ SYS_SEARCHFS = 225 ++ SYS_DELETE = 226 ++ SYS_COPYFILE = 227 ++ SYS_FGETATTRLIST = 228 ++ SYS_FSETATTRLIST = 229 ++ SYS_POLL = 230 ++ SYS_WATCHEVENT = 231 ++ SYS_WAITEVENT = 232 ++ SYS_MODWATCH = 233 ++ SYS_GETXATTR = 234 ++ SYS_FGETXATTR = 235 ++ SYS_SETXATTR = 236 ++ SYS_FSETXATTR = 237 ++ SYS_REMOVEXATTR = 238 ++ SYS_FREMOVEXATTR = 239 ++ SYS_LISTXATTR = 240 ++ SYS_FLISTXATTR = 241 ++ SYS_FSCTL = 242 ++ SYS_INITGROUPS = 243 ++ SYS_POSIX_SPAWN = 244 ++ SYS_FFSCTL = 245 ++ SYS_NFSCLNT = 247 ++ SYS_FHOPEN = 248 ++ SYS_MINHERIT = 250 ++ SYS_SEMSYS = 251 ++ SYS_MSGSYS = 252 ++ SYS_SHMSYS = 253 ++ SYS_SEMCTL = 254 ++ SYS_SEMGET = 255 ++ SYS_SEMOP = 256 ++ SYS_MSGCTL = 258 ++ SYS_MSGGET = 259 ++ SYS_MSGSND = 260 ++ SYS_MSGRCV = 261 ++ SYS_SHMAT = 262 ++ SYS_SHMCTL = 263 ++ SYS_SHMDT = 264 ++ SYS_SHMGET = 265 ++ SYS_SHM_OPEN = 266 ++ SYS_SHM_UNLINK = 267 ++ SYS_SEM_OPEN = 268 ++ SYS_SEM_CLOSE = 269 ++ SYS_SEM_UNLINK = 270 ++ SYS_SEM_WAIT = 271 ++ SYS_SEM_TRYWAIT = 272 ++ SYS_SEM_POST = 273 ++ SYS_SYSCTLBYNAME = 274 ++ SYS_OPEN_EXTENDED = 277 ++ SYS_UMASK_EXTENDED = 278 ++ SYS_STAT_EXTENDED = 279 ++ SYS_LSTAT_EXTENDED = 280 ++ SYS_FSTAT_EXTENDED = 281 ++ SYS_CHMOD_EXTENDED = 282 ++ SYS_FCHMOD_EXTENDED = 283 ++ SYS_ACCESS_EXTENDED = 284 ++ SYS_SETTID = 285 ++ SYS_GETTID = 286 ++ SYS_SETSGROUPS = 287 ++ SYS_GETSGROUPS = 288 ++ SYS_SETWGROUPS = 289 ++ SYS_GETWGROUPS = 290 ++ SYS_MKFIFO_EXTENDED = 291 ++ SYS_MKDIR_EXTENDED = 292 ++ SYS_IDENTITYSVC = 293 ++ SYS_SHARED_REGION_CHECK_NP = 294 ++ SYS_VM_PRESSURE_MONITOR = 296 ++ SYS_PSYNCH_RW_LONGRDLOCK = 297 ++ SYS_PSYNCH_RW_YIELDWRLOCK = 298 ++ SYS_PSYNCH_RW_DOWNGRADE = 299 ++ SYS_PSYNCH_RW_UPGRADE = 300 ++ SYS_PSYNCH_MUTEXWAIT = 301 ++ SYS_PSYNCH_MUTEXDROP = 302 ++ SYS_PSYNCH_CVBROAD = 303 ++ SYS_PSYNCH_CVSIGNAL = 304 ++ SYS_PSYNCH_CVWAIT = 305 ++ SYS_PSYNCH_RW_RDLOCK = 306 ++ SYS_PSYNCH_RW_WRLOCK = 307 ++ SYS_PSYNCH_RW_UNLOCK = 308 ++ SYS_PSYNCH_RW_UNLOCK2 = 309 ++ SYS_GETSID = 310 ++ SYS_SETTID_WITH_PID = 311 ++ SYS_PSYNCH_CVCLRPREPOST = 312 ++ SYS_AIO_FSYNC = 313 ++ SYS_AIO_RETURN = 314 ++ SYS_AIO_SUSPEND = 315 ++ SYS_AIO_CANCEL = 316 ++ SYS_AIO_ERROR = 317 ++ SYS_AIO_READ = 318 ++ SYS_AIO_WRITE = 319 ++ SYS_LIO_LISTIO = 320 ++ SYS_IOPOLICYSYS = 322 ++ SYS_PROCESS_POLICY = 323 ++ SYS_MLOCKALL = 324 ++ SYS_MUNLOCKALL = 325 ++ SYS_ISSETUGID = 327 ++ SYS___PTHREAD_KILL = 328 ++ SYS___PTHREAD_SIGMASK = 329 ++ SYS___SIGWAIT = 330 ++ SYS___DISABLE_THREADSIGNAL = 331 ++ SYS___PTHREAD_MARKCANCEL = 332 ++ SYS___PTHREAD_CANCELED = 333 ++ SYS___SEMWAIT_SIGNAL = 334 ++ SYS_PROC_INFO = 336 ++ SYS_SENDFILE = 337 ++ SYS_STAT64 = 338 ++ SYS_FSTAT64 = 339 ++ SYS_LSTAT64 = 340 ++ SYS_STAT64_EXTENDED = 341 ++ SYS_LSTAT64_EXTENDED = 342 ++ SYS_FSTAT64_EXTENDED = 343 ++ SYS_GETDIRENTRIES64 = 344 ++ SYS_STATFS64 = 345 ++ SYS_FSTATFS64 = 346 ++ SYS_GETFSSTAT64 = 347 ++ SYS___PTHREAD_CHDIR = 348 ++ SYS___PTHREAD_FCHDIR = 349 ++ SYS_AUDIT = 350 ++ SYS_AUDITON = 351 ++ SYS_GETAUID = 353 ++ SYS_SETAUID = 354 ++ SYS_GETAUDIT_ADDR = 357 ++ SYS_SETAUDIT_ADDR = 358 ++ SYS_AUDITCTL = 359 ++ SYS_BSDTHREAD_CREATE = 360 ++ SYS_BSDTHREAD_TERMINATE = 361 ++ SYS_KQUEUE = 362 ++ SYS_KEVENT = 363 ++ SYS_LCHOWN = 364 ++ SYS_STACK_SNAPSHOT = 365 ++ SYS_BSDTHREAD_REGISTER = 366 ++ SYS_WORKQ_OPEN = 367 ++ SYS_WORKQ_KERNRETURN = 368 ++ SYS_KEVENT64 = 369 ++ SYS___OLD_SEMWAIT_SIGNAL = 370 ++ SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371 ++ SYS_THREAD_SELFID = 372 ++ SYS_LEDGER = 373 ++ SYS___MAC_EXECVE = 380 ++ SYS___MAC_SYSCALL = 381 ++ SYS___MAC_GET_FILE = 382 ++ SYS___MAC_SET_FILE = 383 ++ SYS___MAC_GET_LINK = 384 ++ SYS___MAC_SET_LINK = 385 ++ SYS___MAC_GET_PROC = 386 ++ SYS___MAC_SET_PROC = 387 ++ SYS___MAC_GET_FD = 388 ++ SYS___MAC_SET_FD = 389 ++ SYS___MAC_GET_PID = 390 ++ SYS___MAC_GET_LCID = 391 ++ SYS___MAC_GET_LCTX = 392 ++ SYS___MAC_SET_LCTX = 393 ++ SYS_SETLCID = 394 ++ SYS_GETLCID = 395 ++ SYS_READ_NOCANCEL = 396 ++ SYS_WRITE_NOCANCEL = 397 ++ SYS_OPEN_NOCANCEL = 398 ++ SYS_CLOSE_NOCANCEL = 399 ++ SYS_WAIT4_NOCANCEL = 400 ++ SYS_RECVMSG_NOCANCEL = 401 ++ SYS_SENDMSG_NOCANCEL = 402 ++ SYS_RECVFROM_NOCANCEL = 403 ++ SYS_ACCEPT_NOCANCEL = 404 ++ SYS_MSYNC_NOCANCEL = 405 ++ SYS_FCNTL_NOCANCEL = 406 ++ SYS_SELECT_NOCANCEL = 407 ++ SYS_FSYNC_NOCANCEL = 408 ++ SYS_CONNECT_NOCANCEL = 409 ++ SYS_SIGSUSPEND_NOCANCEL = 410 ++ SYS_READV_NOCANCEL = 411 ++ SYS_WRITEV_NOCANCEL = 412 ++ SYS_SENDTO_NOCANCEL = 413 ++ SYS_PREAD_NOCANCEL = 414 ++ SYS_PWRITE_NOCANCEL = 415 ++ SYS_WAITID_NOCANCEL = 416 ++ SYS_POLL_NOCANCEL = 417 ++ SYS_MSGSND_NOCANCEL = 418 ++ SYS_MSGRCV_NOCANCEL = 419 ++ SYS_SEM_WAIT_NOCANCEL = 420 ++ SYS_AIO_SUSPEND_NOCANCEL = 421 ++ SYS___SIGWAIT_NOCANCEL = 422 ++ SYS___SEMWAIT_SIGNAL_NOCANCEL = 423 ++ SYS___MAC_MOUNT = 424 ++ SYS___MAC_GET_MOUNT = 425 ++ SYS___MAC_GETFSSTAT = 426 ++ SYS_FSGETPATH = 427 ++ SYS_AUDIT_SESSION_SELF = 428 ++ SYS_AUDIT_SESSION_JOIN = 429 ++ SYS_FILEPORT_MAKEPORT = 430 ++ SYS_FILEPORT_MAKEFD = 431 ++ SYS_AUDIT_SESSION_PORT = 432 ++ SYS_PID_SUSPEND = 433 ++ SYS_PID_RESUME = 434 ++ SYS_PID_HIBERNATE = 435 ++ SYS_PID_SHUTDOWN_SOCKETS = 436 ++ SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438 ++ SYS_KAS_INFO = 439 ++ SYS_MEMORYSTATUS_CONTROL = 440 ++ SYS_GUARDED_OPEN_NP = 441 ++ SYS_GUARDED_CLOSE_NP = 442 ++ SYS_GUARDED_KQUEUE_NP = 443 ++ SYS_CHANGE_FDGUARD_NP = 444 ++ SYS_PROC_RLIMIT_CONTROL = 446 ++ SYS_CONNECTX = 447 ++ SYS_DISCONNECTX = 448 ++ SYS_PEELOFF = 449 ++ SYS_SOCKET_DELEGATE = 450 ++ SYS_TELEMETRY = 451 ++ SYS_PROC_UUID_POLICY = 452 ++ SYS_MEMORYSTATUS_GET_LEVEL = 453 ++ SYS_SYSTEM_OVERRIDE = 454 ++ SYS_VFS_PURGE = 455 ++ SYS_SFI_CTL = 456 ++ SYS_SFI_PIDCTL = 457 ++ SYS_COALITION = 458 ++ SYS_COALITION_INFO = 459 ++ SYS_NECP_MATCH_POLICY = 460 ++ SYS_GETATTRLISTBULK = 461 ++ SYS_OPENAT = 463 ++ SYS_OPENAT_NOCANCEL = 464 ++ SYS_RENAMEAT = 465 ++ SYS_FACCESSAT = 466 ++ SYS_FCHMODAT = 467 ++ SYS_FCHOWNAT = 468 ++ SYS_FSTATAT = 469 ++ SYS_FSTATAT64 = 470 ++ SYS_LINKAT = 471 ++ SYS_UNLINKAT = 472 ++ SYS_READLINKAT = 473 ++ SYS_SYMLINKAT = 474 ++ SYS_MKDIRAT = 475 ++ SYS_GETATTRLISTAT = 476 ++ SYS_PROC_TRACE_LOG = 477 ++ SYS_BSDTHREAD_CTL = 478 ++ SYS_OPENBYID_NP = 479 ++ SYS_RECVMSG_X = 480 ++ SYS_SENDMSG_X = 481 ++ SYS_THREAD_SELFUSAGE = 482 ++ SYS_CSRCTL = 483 ++ SYS_GUARDED_OPEN_DPROTECTED_NP = 484 ++ SYS_GUARDED_WRITE_NP = 485 ++ SYS_GUARDED_PWRITE_NP = 486 ++ SYS_GUARDED_WRITEV_NP = 487 ++ SYS_RENAME_EXT = 488 ++ SYS_MREMAP_ENCRYPTED = 489 ++ SYS_MAXSYSCALL = 490 ++) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go +new file mode 100644 +index 0000000..09de240 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go +@@ -0,0 +1,398 @@ ++// mksysnum_darwin.pl /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/sys/syscall.h ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT ++ ++// +build amd64,darwin ++ ++package unix ++ ++const ( ++ SYS_SYSCALL = 0 ++ SYS_EXIT = 1 ++ SYS_FORK = 2 ++ SYS_READ = 3 ++ SYS_WRITE = 4 ++ SYS_OPEN = 5 ++ SYS_CLOSE = 6 ++ SYS_WAIT4 = 7 ++ SYS_LINK = 9 ++ SYS_UNLINK = 10 ++ SYS_CHDIR = 12 ++ SYS_FCHDIR = 13 ++ SYS_MKNOD = 14 ++ SYS_CHMOD = 15 ++ SYS_CHOWN = 16 ++ SYS_GETFSSTAT = 18 ++ SYS_GETPID = 20 ++ SYS_SETUID = 23 ++ SYS_GETUID = 24 ++ SYS_GETEUID = 25 ++ SYS_PTRACE = 26 ++ SYS_RECVMSG = 27 ++ SYS_SENDMSG = 28 ++ SYS_RECVFROM = 29 ++ SYS_ACCEPT = 30 ++ SYS_GETPEERNAME = 31 ++ SYS_GETSOCKNAME = 32 ++ SYS_ACCESS = 33 ++ SYS_CHFLAGS = 34 ++ SYS_FCHFLAGS = 35 ++ SYS_SYNC = 36 ++ SYS_KILL = 37 ++ SYS_GETPPID = 39 ++ SYS_DUP = 41 ++ SYS_PIPE = 42 ++ SYS_GETEGID = 43 ++ SYS_SIGACTION = 46 ++ SYS_GETGID = 47 ++ SYS_SIGPROCMASK = 48 ++ SYS_GETLOGIN = 49 ++ SYS_SETLOGIN = 50 ++ SYS_ACCT = 51 ++ SYS_SIGPENDING = 52 ++ SYS_SIGALTSTACK = 53 ++ SYS_IOCTL = 54 ++ SYS_REBOOT = 55 ++ SYS_REVOKE = 56 ++ SYS_SYMLINK = 57 ++ SYS_READLINK = 58 ++ SYS_EXECVE = 59 ++ SYS_UMASK = 60 ++ SYS_CHROOT = 61 ++ SYS_MSYNC = 65 ++ SYS_VFORK = 66 ++ SYS_MUNMAP = 73 ++ SYS_MPROTECT = 74 ++ SYS_MADVISE = 75 ++ SYS_MINCORE = 78 ++ SYS_GETGROUPS = 79 ++ SYS_SETGROUPS = 80 ++ SYS_GETPGRP = 81 ++ SYS_SETPGID = 82 ++ SYS_SETITIMER = 83 ++ SYS_SWAPON = 85 ++ SYS_GETITIMER = 86 ++ SYS_GETDTABLESIZE = 89 ++ SYS_DUP2 = 90 ++ SYS_FCNTL = 92 ++ SYS_SELECT = 93 ++ SYS_FSYNC = 95 ++ SYS_SETPRIORITY = 96 ++ SYS_SOCKET = 97 ++ SYS_CONNECT = 98 ++ SYS_GETPRIORITY = 100 ++ SYS_BIND = 104 ++ SYS_SETSOCKOPT = 105 ++ SYS_LISTEN = 106 ++ SYS_SIGSUSPEND = 111 ++ SYS_GETTIMEOFDAY = 116 ++ SYS_GETRUSAGE = 117 ++ SYS_GETSOCKOPT = 118 ++ SYS_READV = 120 ++ SYS_WRITEV = 121 ++ SYS_SETTIMEOFDAY = 122 ++ SYS_FCHOWN = 123 ++ SYS_FCHMOD = 124 ++ SYS_SETREUID = 126 ++ SYS_SETREGID = 127 ++ SYS_RENAME = 128 ++ SYS_FLOCK = 131 ++ SYS_MKFIFO = 132 ++ SYS_SENDTO = 133 ++ SYS_SHUTDOWN = 134 ++ SYS_SOCKETPAIR = 135 ++ SYS_MKDIR = 136 ++ SYS_RMDIR = 137 ++ SYS_UTIMES = 138 ++ SYS_FUTIMES = 139 ++ SYS_ADJTIME = 140 ++ SYS_GETHOSTUUID = 142 ++ SYS_SETSID = 147 ++ SYS_GETPGID = 151 ++ SYS_SETPRIVEXEC = 152 ++ SYS_PREAD = 153 ++ SYS_PWRITE = 154 ++ SYS_NFSSVC = 155 ++ SYS_STATFS = 157 ++ SYS_FSTATFS = 158 ++ SYS_UNMOUNT = 159 ++ SYS_GETFH = 161 ++ SYS_QUOTACTL = 165 ++ SYS_MOUNT = 167 ++ SYS_CSOPS = 169 ++ SYS_CSOPS_AUDITTOKEN = 170 ++ SYS_WAITID = 173 ++ SYS_KDEBUG_TRACE64 = 179 ++ SYS_KDEBUG_TRACE = 180 ++ SYS_SETGID = 181 ++ SYS_SETEGID = 182 ++ SYS_SETEUID = 183 ++ SYS_SIGRETURN = 184 ++ SYS_CHUD = 185 ++ SYS_FDATASYNC = 187 ++ SYS_STAT = 188 ++ SYS_FSTAT = 189 ++ SYS_LSTAT = 190 ++ SYS_PATHCONF = 191 ++ SYS_FPATHCONF = 192 ++ SYS_GETRLIMIT = 194 ++ SYS_SETRLIMIT = 195 ++ SYS_GETDIRENTRIES = 196 ++ SYS_MMAP = 197 ++ SYS_LSEEK = 199 ++ SYS_TRUNCATE = 200 ++ SYS_FTRUNCATE = 201 ++ SYS_SYSCTL = 202 ++ SYS_MLOCK = 203 ++ SYS_MUNLOCK = 204 ++ SYS_UNDELETE = 205 ++ SYS_OPEN_DPROTECTED_NP = 216 ++ SYS_GETATTRLIST = 220 ++ SYS_SETATTRLIST = 221 ++ SYS_GETDIRENTRIESATTR = 222 ++ SYS_EXCHANGEDATA = 223 ++ SYS_SEARCHFS = 225 ++ SYS_DELETE = 226 ++ SYS_COPYFILE = 227 ++ SYS_FGETATTRLIST = 228 ++ SYS_FSETATTRLIST = 229 ++ SYS_POLL = 230 ++ SYS_WATCHEVENT = 231 ++ SYS_WAITEVENT = 232 ++ SYS_MODWATCH = 233 ++ SYS_GETXATTR = 234 ++ SYS_FGETXATTR = 235 ++ SYS_SETXATTR = 236 ++ SYS_FSETXATTR = 237 ++ SYS_REMOVEXATTR = 238 ++ SYS_FREMOVEXATTR = 239 ++ SYS_LISTXATTR = 240 ++ SYS_FLISTXATTR = 241 ++ SYS_FSCTL = 242 ++ SYS_INITGROUPS = 243 ++ SYS_POSIX_SPAWN = 244 ++ SYS_FFSCTL = 245 ++ SYS_NFSCLNT = 247 ++ SYS_FHOPEN = 248 ++ SYS_MINHERIT = 250 ++ SYS_SEMSYS = 251 ++ SYS_MSGSYS = 252 ++ SYS_SHMSYS = 253 ++ SYS_SEMCTL = 254 ++ SYS_SEMGET = 255 ++ SYS_SEMOP = 256 ++ SYS_MSGCTL = 258 ++ SYS_MSGGET = 259 ++ SYS_MSGSND = 260 ++ SYS_MSGRCV = 261 ++ SYS_SHMAT = 262 ++ SYS_SHMCTL = 263 ++ SYS_SHMDT = 264 ++ SYS_SHMGET = 265 ++ SYS_SHM_OPEN = 266 ++ SYS_SHM_UNLINK = 267 ++ SYS_SEM_OPEN = 268 ++ SYS_SEM_CLOSE = 269 ++ SYS_SEM_UNLINK = 270 ++ SYS_SEM_WAIT = 271 ++ SYS_SEM_TRYWAIT = 272 ++ SYS_SEM_POST = 273 ++ SYS_SYSCTLBYNAME = 274 ++ SYS_OPEN_EXTENDED = 277 ++ SYS_UMASK_EXTENDED = 278 ++ SYS_STAT_EXTENDED = 279 ++ SYS_LSTAT_EXTENDED = 280 ++ SYS_FSTAT_EXTENDED = 281 ++ SYS_CHMOD_EXTENDED = 282 ++ SYS_FCHMOD_EXTENDED = 283 ++ SYS_ACCESS_EXTENDED = 284 ++ SYS_SETTID = 285 ++ SYS_GETTID = 286 ++ SYS_SETSGROUPS = 287 ++ SYS_GETSGROUPS = 288 ++ SYS_SETWGROUPS = 289 ++ SYS_GETWGROUPS = 290 ++ SYS_MKFIFO_EXTENDED = 291 ++ SYS_MKDIR_EXTENDED = 292 ++ SYS_IDENTITYSVC = 293 ++ SYS_SHARED_REGION_CHECK_NP = 294 ++ SYS_VM_PRESSURE_MONITOR = 296 ++ SYS_PSYNCH_RW_LONGRDLOCK = 297 ++ SYS_PSYNCH_RW_YIELDWRLOCK = 298 ++ SYS_PSYNCH_RW_DOWNGRADE = 299 ++ SYS_PSYNCH_RW_UPGRADE = 300 ++ SYS_PSYNCH_MUTEXWAIT = 301 ++ SYS_PSYNCH_MUTEXDROP = 302 ++ SYS_PSYNCH_CVBROAD = 303 ++ SYS_PSYNCH_CVSIGNAL = 304 ++ SYS_PSYNCH_CVWAIT = 305 ++ SYS_PSYNCH_RW_RDLOCK = 306 ++ SYS_PSYNCH_RW_WRLOCK = 307 ++ SYS_PSYNCH_RW_UNLOCK = 308 ++ SYS_PSYNCH_RW_UNLOCK2 = 309 ++ SYS_GETSID = 310 ++ SYS_SETTID_WITH_PID = 311 ++ SYS_PSYNCH_CVCLRPREPOST = 312 ++ SYS_AIO_FSYNC = 313 ++ SYS_AIO_RETURN = 314 ++ SYS_AIO_SUSPEND = 315 ++ SYS_AIO_CANCEL = 316 ++ SYS_AIO_ERROR = 317 ++ SYS_AIO_READ = 318 ++ SYS_AIO_WRITE = 319 ++ SYS_LIO_LISTIO = 320 ++ SYS_IOPOLICYSYS = 322 ++ SYS_PROCESS_POLICY = 323 ++ SYS_MLOCKALL = 324 ++ SYS_MUNLOCKALL = 325 ++ SYS_ISSETUGID = 327 ++ SYS___PTHREAD_KILL = 328 ++ SYS___PTHREAD_SIGMASK = 329 ++ SYS___SIGWAIT = 330 ++ SYS___DISABLE_THREADSIGNAL = 331 ++ SYS___PTHREAD_MARKCANCEL = 332 ++ SYS___PTHREAD_CANCELED = 333 ++ SYS___SEMWAIT_SIGNAL = 334 ++ SYS_PROC_INFO = 336 ++ SYS_SENDFILE = 337 ++ SYS_STAT64 = 338 ++ SYS_FSTAT64 = 339 ++ SYS_LSTAT64 = 340 ++ SYS_STAT64_EXTENDED = 341 ++ SYS_LSTAT64_EXTENDED = 342 ++ SYS_FSTAT64_EXTENDED = 343 ++ SYS_GETDIRENTRIES64 = 344 ++ SYS_STATFS64 = 345 ++ SYS_FSTATFS64 = 346 ++ SYS_GETFSSTAT64 = 347 ++ SYS___PTHREAD_CHDIR = 348 ++ SYS___PTHREAD_FCHDIR = 349 ++ SYS_AUDIT = 350 ++ SYS_AUDITON = 351 ++ SYS_GETAUID = 353 ++ SYS_SETAUID = 354 ++ SYS_GETAUDIT_ADDR = 357 ++ SYS_SETAUDIT_ADDR = 358 ++ SYS_AUDITCTL = 359 ++ SYS_BSDTHREAD_CREATE = 360 ++ SYS_BSDTHREAD_TERMINATE = 361 ++ SYS_KQUEUE = 362 ++ SYS_KEVENT = 363 ++ SYS_LCHOWN = 364 ++ SYS_STACK_SNAPSHOT = 365 ++ SYS_BSDTHREAD_REGISTER = 366 ++ SYS_WORKQ_OPEN = 367 ++ SYS_WORKQ_KERNRETURN = 368 ++ SYS_KEVENT64 = 369 ++ SYS___OLD_SEMWAIT_SIGNAL = 370 ++ SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371 ++ SYS_THREAD_SELFID = 372 ++ SYS_LEDGER = 373 ++ SYS___MAC_EXECVE = 380 ++ SYS___MAC_SYSCALL = 381 ++ SYS___MAC_GET_FILE = 382 ++ SYS___MAC_SET_FILE = 383 ++ SYS___MAC_GET_LINK = 384 ++ SYS___MAC_SET_LINK = 385 ++ SYS___MAC_GET_PROC = 386 ++ SYS___MAC_SET_PROC = 387 ++ SYS___MAC_GET_FD = 388 ++ SYS___MAC_SET_FD = 389 ++ SYS___MAC_GET_PID = 390 ++ SYS___MAC_GET_LCID = 391 ++ SYS___MAC_GET_LCTX = 392 ++ SYS___MAC_SET_LCTX = 393 ++ SYS_SETLCID = 394 ++ SYS_GETLCID = 395 ++ SYS_READ_NOCANCEL = 396 ++ SYS_WRITE_NOCANCEL = 397 ++ SYS_OPEN_NOCANCEL = 398 ++ SYS_CLOSE_NOCANCEL = 399 ++ SYS_WAIT4_NOCANCEL = 400 ++ SYS_RECVMSG_NOCANCEL = 401 ++ SYS_SENDMSG_NOCANCEL = 402 ++ SYS_RECVFROM_NOCANCEL = 403 ++ SYS_ACCEPT_NOCANCEL = 404 ++ SYS_MSYNC_NOCANCEL = 405 ++ SYS_FCNTL_NOCANCEL = 406 ++ SYS_SELECT_NOCANCEL = 407 ++ SYS_FSYNC_NOCANCEL = 408 ++ SYS_CONNECT_NOCANCEL = 409 ++ SYS_SIGSUSPEND_NOCANCEL = 410 ++ SYS_READV_NOCANCEL = 411 ++ SYS_WRITEV_NOCANCEL = 412 ++ SYS_SENDTO_NOCANCEL = 413 ++ SYS_PREAD_NOCANCEL = 414 ++ SYS_PWRITE_NOCANCEL = 415 ++ SYS_WAITID_NOCANCEL = 416 ++ SYS_POLL_NOCANCEL = 417 ++ SYS_MSGSND_NOCANCEL = 418 ++ SYS_MSGRCV_NOCANCEL = 419 ++ SYS_SEM_WAIT_NOCANCEL = 420 ++ SYS_AIO_SUSPEND_NOCANCEL = 421 ++ SYS___SIGWAIT_NOCANCEL = 422 ++ SYS___SEMWAIT_SIGNAL_NOCANCEL = 423 ++ SYS___MAC_MOUNT = 424 ++ SYS___MAC_GET_MOUNT = 425 ++ SYS___MAC_GETFSSTAT = 426 ++ SYS_FSGETPATH = 427 ++ SYS_AUDIT_SESSION_SELF = 428 ++ SYS_AUDIT_SESSION_JOIN = 429 ++ SYS_FILEPORT_MAKEPORT = 430 ++ SYS_FILEPORT_MAKEFD = 431 ++ SYS_AUDIT_SESSION_PORT = 432 ++ SYS_PID_SUSPEND = 433 ++ SYS_PID_RESUME = 434 ++ SYS_PID_HIBERNATE = 435 ++ SYS_PID_SHUTDOWN_SOCKETS = 436 ++ SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438 ++ SYS_KAS_INFO = 439 ++ SYS_MEMORYSTATUS_CONTROL = 440 ++ SYS_GUARDED_OPEN_NP = 441 ++ SYS_GUARDED_CLOSE_NP = 442 ++ SYS_GUARDED_KQUEUE_NP = 443 ++ SYS_CHANGE_FDGUARD_NP = 444 ++ SYS_PROC_RLIMIT_CONTROL = 446 ++ SYS_CONNECTX = 447 ++ SYS_DISCONNECTX = 448 ++ SYS_PEELOFF = 449 ++ SYS_SOCKET_DELEGATE = 450 ++ SYS_TELEMETRY = 451 ++ SYS_PROC_UUID_POLICY = 452 ++ SYS_MEMORYSTATUS_GET_LEVEL = 453 ++ SYS_SYSTEM_OVERRIDE = 454 ++ SYS_VFS_PURGE = 455 ++ SYS_SFI_CTL = 456 ++ SYS_SFI_PIDCTL = 457 ++ SYS_COALITION = 458 ++ SYS_COALITION_INFO = 459 ++ SYS_NECP_MATCH_POLICY = 460 ++ SYS_GETATTRLISTBULK = 461 ++ SYS_OPENAT = 463 ++ SYS_OPENAT_NOCANCEL = 464 ++ SYS_RENAMEAT = 465 ++ SYS_FACCESSAT = 466 ++ SYS_FCHMODAT = 467 ++ SYS_FCHOWNAT = 468 ++ SYS_FSTATAT = 469 ++ SYS_FSTATAT64 = 470 ++ SYS_LINKAT = 471 ++ SYS_UNLINKAT = 472 ++ SYS_READLINKAT = 473 ++ SYS_SYMLINKAT = 474 ++ SYS_MKDIRAT = 475 ++ SYS_GETATTRLISTAT = 476 ++ SYS_PROC_TRACE_LOG = 477 ++ SYS_BSDTHREAD_CTL = 478 ++ SYS_OPENBYID_NP = 479 ++ SYS_RECVMSG_X = 480 ++ SYS_SENDMSG_X = 481 ++ SYS_THREAD_SELFUSAGE = 482 ++ SYS_CSRCTL = 483 ++ SYS_GUARDED_OPEN_DPROTECTED_NP = 484 ++ SYS_GUARDED_WRITE_NP = 485 ++ SYS_GUARDED_PWRITE_NP = 486 ++ SYS_GUARDED_WRITEV_NP = 487 ++ SYS_RENAME_EXT = 488 ++ SYS_MREMAP_ENCRYPTED = 489 ++ SYS_MAXSYSCALL = 490 ++) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go +new file mode 100644 +index 0000000..b8c9aea +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm.go +@@ -0,0 +1,358 @@ ++// mksysnum_darwin.pl /usr/include/sys/syscall.h ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT ++ ++// +build arm,darwin ++ ++package unix ++ ++const ( ++ SYS_SYSCALL = 0 ++ SYS_EXIT = 1 ++ SYS_FORK = 2 ++ SYS_READ = 3 ++ SYS_WRITE = 4 ++ SYS_OPEN = 5 ++ SYS_CLOSE = 6 ++ SYS_WAIT4 = 7 ++ SYS_LINK = 9 ++ SYS_UNLINK = 10 ++ SYS_CHDIR = 12 ++ SYS_FCHDIR = 13 ++ SYS_MKNOD = 14 ++ SYS_CHMOD = 15 ++ SYS_CHOWN = 16 ++ SYS_GETFSSTAT = 18 ++ SYS_GETPID = 20 ++ SYS_SETUID = 23 ++ SYS_GETUID = 24 ++ SYS_GETEUID = 25 ++ SYS_PTRACE = 26 ++ SYS_RECVMSG = 27 ++ SYS_SENDMSG = 28 ++ SYS_RECVFROM = 29 ++ SYS_ACCEPT = 30 ++ SYS_GETPEERNAME = 31 ++ SYS_GETSOCKNAME = 32 ++ SYS_ACCESS = 33 ++ SYS_CHFLAGS = 34 ++ SYS_FCHFLAGS = 35 ++ SYS_SYNC = 36 ++ SYS_KILL = 37 ++ SYS_GETPPID = 39 ++ SYS_DUP = 41 ++ SYS_PIPE = 42 ++ SYS_GETEGID = 43 ++ SYS_SIGACTION = 46 ++ SYS_GETGID = 47 ++ SYS_SIGPROCMASK = 48 ++ SYS_GETLOGIN = 49 ++ SYS_SETLOGIN = 50 ++ SYS_ACCT = 51 ++ SYS_SIGPENDING = 52 ++ SYS_SIGALTSTACK = 53 ++ SYS_IOCTL = 54 ++ SYS_REBOOT = 55 ++ SYS_REVOKE = 56 ++ SYS_SYMLINK = 57 ++ SYS_READLINK = 58 ++ SYS_EXECVE = 59 ++ SYS_UMASK = 60 ++ SYS_CHROOT = 61 ++ SYS_MSYNC = 65 ++ SYS_VFORK = 66 ++ SYS_MUNMAP = 73 ++ SYS_MPROTECT = 74 ++ SYS_MADVISE = 75 ++ SYS_MINCORE = 78 ++ SYS_GETGROUPS = 79 ++ SYS_SETGROUPS = 80 ++ SYS_GETPGRP = 81 ++ SYS_SETPGID = 82 ++ SYS_SETITIMER = 83 ++ SYS_SWAPON = 85 ++ SYS_GETITIMER = 86 ++ SYS_GETDTABLESIZE = 89 ++ SYS_DUP2 = 90 ++ SYS_FCNTL = 92 ++ SYS_SELECT = 93 ++ SYS_FSYNC = 95 ++ SYS_SETPRIORITY = 96 ++ SYS_SOCKET = 97 ++ SYS_CONNECT = 98 ++ SYS_GETPRIORITY = 100 ++ SYS_BIND = 104 ++ SYS_SETSOCKOPT = 105 ++ SYS_LISTEN = 106 ++ SYS_SIGSUSPEND = 111 ++ SYS_GETTIMEOFDAY = 116 ++ SYS_GETRUSAGE = 117 ++ SYS_GETSOCKOPT = 118 ++ SYS_READV = 120 ++ SYS_WRITEV = 121 ++ SYS_SETTIMEOFDAY = 122 ++ SYS_FCHOWN = 123 ++ SYS_FCHMOD = 124 ++ SYS_SETREUID = 126 ++ SYS_SETREGID = 127 ++ SYS_RENAME = 128 ++ SYS_FLOCK = 131 ++ SYS_MKFIFO = 132 ++ SYS_SENDTO = 133 ++ SYS_SHUTDOWN = 134 ++ SYS_SOCKETPAIR = 135 ++ SYS_MKDIR = 136 ++ SYS_RMDIR = 137 ++ SYS_UTIMES = 138 ++ SYS_FUTIMES = 139 ++ SYS_ADJTIME = 140 ++ SYS_GETHOSTUUID = 142 ++ SYS_SETSID = 147 ++ SYS_GETPGID = 151 ++ SYS_SETPRIVEXEC = 152 ++ SYS_PREAD = 153 ++ SYS_PWRITE = 154 ++ SYS_NFSSVC = 155 ++ SYS_STATFS = 157 ++ SYS_FSTATFS = 158 ++ SYS_UNMOUNT = 159 ++ SYS_GETFH = 161 ++ SYS_QUOTACTL = 165 ++ SYS_MOUNT = 167 ++ SYS_CSOPS = 169 ++ SYS_CSOPS_AUDITTOKEN = 170 ++ SYS_WAITID = 173 ++ SYS_KDEBUG_TRACE = 180 ++ SYS_SETGID = 181 ++ SYS_SETEGID = 182 ++ SYS_SETEUID = 183 ++ SYS_SIGRETURN = 184 ++ SYS_CHUD = 185 ++ SYS_FDATASYNC = 187 ++ SYS_STAT = 188 ++ SYS_FSTAT = 189 ++ SYS_LSTAT = 190 ++ SYS_PATHCONF = 191 ++ SYS_FPATHCONF = 192 ++ SYS_GETRLIMIT = 194 ++ SYS_SETRLIMIT = 195 ++ SYS_GETDIRENTRIES = 196 ++ SYS_MMAP = 197 ++ SYS_LSEEK = 199 ++ SYS_TRUNCATE = 200 ++ SYS_FTRUNCATE = 201 ++ SYS___SYSCTL = 202 ++ SYS_MLOCK = 203 ++ SYS_MUNLOCK = 204 ++ SYS_UNDELETE = 205 ++ SYS_ATSOCKET = 206 ++ SYS_ATGETMSG = 207 ++ SYS_ATPUTMSG = 208 ++ SYS_ATPSNDREQ = 209 ++ SYS_ATPSNDRSP = 210 ++ SYS_ATPGETREQ = 211 ++ SYS_ATPGETRSP = 212 ++ SYS_OPEN_DPROTECTED_NP = 216 ++ SYS_GETATTRLIST = 220 ++ SYS_SETATTRLIST = 221 ++ SYS_GETDIRENTRIESATTR = 222 ++ SYS_EXCHANGEDATA = 223 ++ SYS_SEARCHFS = 225 ++ SYS_DELETE = 226 ++ SYS_COPYFILE = 227 ++ SYS_FGETATTRLIST = 228 ++ SYS_FSETATTRLIST = 229 ++ SYS_POLL = 230 ++ SYS_WATCHEVENT = 231 ++ SYS_WAITEVENT = 232 ++ SYS_MODWATCH = 233 ++ SYS_GETXATTR = 234 ++ SYS_FGETXATTR = 235 ++ SYS_SETXATTR = 236 ++ SYS_FSETXATTR = 237 ++ SYS_REMOVEXATTR = 238 ++ SYS_FREMOVEXATTR = 239 ++ SYS_LISTXATTR = 240 ++ SYS_FLISTXATTR = 241 ++ SYS_FSCTL = 242 ++ SYS_INITGROUPS = 243 ++ SYS_POSIX_SPAWN = 244 ++ SYS_FFSCTL = 245 ++ SYS_NFSCLNT = 247 ++ SYS_FHOPEN = 248 ++ SYS_MINHERIT = 250 ++ SYS_SEMSYS = 251 ++ SYS_MSGSYS = 252 ++ SYS_SHMSYS = 253 ++ SYS_SEMCTL = 254 ++ SYS_SEMGET = 255 ++ SYS_SEMOP = 256 ++ SYS_MSGCTL = 258 ++ SYS_MSGGET = 259 ++ SYS_MSGSND = 260 ++ SYS_MSGRCV = 261 ++ SYS_SHMAT = 262 ++ SYS_SHMCTL = 263 ++ SYS_SHMDT = 264 ++ SYS_SHMGET = 265 ++ SYS_SHM_OPEN = 266 ++ SYS_SHM_UNLINK = 267 ++ SYS_SEM_OPEN = 268 ++ SYS_SEM_CLOSE = 269 ++ SYS_SEM_UNLINK = 270 ++ SYS_SEM_WAIT = 271 ++ SYS_SEM_TRYWAIT = 272 ++ SYS_SEM_POST = 273 ++ SYS_SEM_GETVALUE = 274 ++ SYS_SEM_INIT = 275 ++ SYS_SEM_DESTROY = 276 ++ SYS_OPEN_EXTENDED = 277 ++ SYS_UMASK_EXTENDED = 278 ++ SYS_STAT_EXTENDED = 279 ++ SYS_LSTAT_EXTENDED = 280 ++ SYS_FSTAT_EXTENDED = 281 ++ SYS_CHMOD_EXTENDED = 282 ++ SYS_FCHMOD_EXTENDED = 283 ++ SYS_ACCESS_EXTENDED = 284 ++ SYS_SETTID = 285 ++ SYS_GETTID = 286 ++ SYS_SETSGROUPS = 287 ++ SYS_GETSGROUPS = 288 ++ SYS_SETWGROUPS = 289 ++ SYS_GETWGROUPS = 290 ++ SYS_MKFIFO_EXTENDED = 291 ++ SYS_MKDIR_EXTENDED = 292 ++ SYS_IDENTITYSVC = 293 ++ SYS_SHARED_REGION_CHECK_NP = 294 ++ SYS_VM_PRESSURE_MONITOR = 296 ++ SYS_PSYNCH_RW_LONGRDLOCK = 297 ++ SYS_PSYNCH_RW_YIELDWRLOCK = 298 ++ SYS_PSYNCH_RW_DOWNGRADE = 299 ++ SYS_PSYNCH_RW_UPGRADE = 300 ++ SYS_PSYNCH_MUTEXWAIT = 301 ++ SYS_PSYNCH_MUTEXDROP = 302 ++ SYS_PSYNCH_CVBROAD = 303 ++ SYS_PSYNCH_CVSIGNAL = 304 ++ SYS_PSYNCH_CVWAIT = 305 ++ SYS_PSYNCH_RW_RDLOCK = 306 ++ SYS_PSYNCH_RW_WRLOCK = 307 ++ SYS_PSYNCH_RW_UNLOCK = 308 ++ SYS_PSYNCH_RW_UNLOCK2 = 309 ++ SYS_GETSID = 310 ++ SYS_SETTID_WITH_PID = 311 ++ SYS_PSYNCH_CVCLRPREPOST = 312 ++ SYS_AIO_FSYNC = 313 ++ SYS_AIO_RETURN = 314 ++ SYS_AIO_SUSPEND = 315 ++ SYS_AIO_CANCEL = 316 ++ SYS_AIO_ERROR = 317 ++ SYS_AIO_READ = 318 ++ SYS_AIO_WRITE = 319 ++ SYS_LIO_LISTIO = 320 ++ SYS_IOPOLICYSYS = 322 ++ SYS_PROCESS_POLICY = 323 ++ SYS_MLOCKALL = 324 ++ SYS_MUNLOCKALL = 325 ++ SYS_ISSETUGID = 327 ++ SYS___PTHREAD_KILL = 328 ++ SYS___PTHREAD_SIGMASK = 329 ++ SYS___SIGWAIT = 330 ++ SYS___DISABLE_THREADSIGNAL = 331 ++ SYS___PTHREAD_MARKCANCEL = 332 ++ SYS___PTHREAD_CANCELED = 333 ++ SYS___SEMWAIT_SIGNAL = 334 ++ SYS_PROC_INFO = 336 ++ SYS_SENDFILE = 337 ++ SYS_STAT64 = 338 ++ SYS_FSTAT64 = 339 ++ SYS_LSTAT64 = 340 ++ SYS_STAT64_EXTENDED = 341 ++ SYS_LSTAT64_EXTENDED = 342 ++ SYS_FSTAT64_EXTENDED = 343 ++ SYS_GETDIRENTRIES64 = 344 ++ SYS_STATFS64 = 345 ++ SYS_FSTATFS64 = 346 ++ SYS_GETFSSTAT64 = 347 ++ SYS___PTHREAD_CHDIR = 348 ++ SYS___PTHREAD_FCHDIR = 349 ++ SYS_AUDIT = 350 ++ SYS_AUDITON = 351 ++ SYS_GETAUID = 353 ++ SYS_SETAUID = 354 ++ SYS_GETAUDIT_ADDR = 357 ++ SYS_SETAUDIT_ADDR = 358 ++ SYS_AUDITCTL = 359 ++ SYS_BSDTHREAD_CREATE = 360 ++ SYS_BSDTHREAD_TERMINATE = 361 ++ SYS_KQUEUE = 362 ++ SYS_KEVENT = 363 ++ SYS_LCHOWN = 364 ++ SYS_STACK_SNAPSHOT = 365 ++ SYS_BSDTHREAD_REGISTER = 366 ++ SYS_WORKQ_OPEN = 367 ++ SYS_WORKQ_KERNRETURN = 368 ++ SYS_KEVENT64 = 369 ++ SYS___OLD_SEMWAIT_SIGNAL = 370 ++ SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371 ++ SYS_THREAD_SELFID = 372 ++ SYS_LEDGER = 373 ++ SYS___MAC_EXECVE = 380 ++ SYS___MAC_SYSCALL = 381 ++ SYS___MAC_GET_FILE = 382 ++ SYS___MAC_SET_FILE = 383 ++ SYS___MAC_GET_LINK = 384 ++ SYS___MAC_SET_LINK = 385 ++ SYS___MAC_GET_PROC = 386 ++ SYS___MAC_SET_PROC = 387 ++ SYS___MAC_GET_FD = 388 ++ SYS___MAC_SET_FD = 389 ++ SYS___MAC_GET_PID = 390 ++ SYS___MAC_GET_LCID = 391 ++ SYS___MAC_GET_LCTX = 392 ++ SYS___MAC_SET_LCTX = 393 ++ SYS_SETLCID = 394 ++ SYS_GETLCID = 395 ++ SYS_READ_NOCANCEL = 396 ++ SYS_WRITE_NOCANCEL = 397 ++ SYS_OPEN_NOCANCEL = 398 ++ SYS_CLOSE_NOCANCEL = 399 ++ SYS_WAIT4_NOCANCEL = 400 ++ SYS_RECVMSG_NOCANCEL = 401 ++ SYS_SENDMSG_NOCANCEL = 402 ++ SYS_RECVFROM_NOCANCEL = 403 ++ SYS_ACCEPT_NOCANCEL = 404 ++ SYS_MSYNC_NOCANCEL = 405 ++ SYS_FCNTL_NOCANCEL = 406 ++ SYS_SELECT_NOCANCEL = 407 ++ SYS_FSYNC_NOCANCEL = 408 ++ SYS_CONNECT_NOCANCEL = 409 ++ SYS_SIGSUSPEND_NOCANCEL = 410 ++ SYS_READV_NOCANCEL = 411 ++ SYS_WRITEV_NOCANCEL = 412 ++ SYS_SENDTO_NOCANCEL = 413 ++ SYS_PREAD_NOCANCEL = 414 ++ SYS_PWRITE_NOCANCEL = 415 ++ SYS_WAITID_NOCANCEL = 416 ++ SYS_POLL_NOCANCEL = 417 ++ SYS_MSGSND_NOCANCEL = 418 ++ SYS_MSGRCV_NOCANCEL = 419 ++ SYS_SEM_WAIT_NOCANCEL = 420 ++ SYS_AIO_SUSPEND_NOCANCEL = 421 ++ SYS___SIGWAIT_NOCANCEL = 422 ++ SYS___SEMWAIT_SIGNAL_NOCANCEL = 423 ++ SYS___MAC_MOUNT = 424 ++ SYS___MAC_GET_MOUNT = 425 ++ SYS___MAC_GETFSSTAT = 426 ++ SYS_FSGETPATH = 427 ++ SYS_AUDIT_SESSION_SELF = 428 ++ SYS_AUDIT_SESSION_JOIN = 429 ++ SYS_FILEPORT_MAKEPORT = 430 ++ SYS_FILEPORT_MAKEFD = 431 ++ SYS_AUDIT_SESSION_PORT = 432 ++ SYS_PID_SUSPEND = 433 ++ SYS_PID_RESUME = 434 ++ SYS_PID_HIBERNATE = 435 ++ SYS_PID_SHUTDOWN_SOCKETS = 436 ++ SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438 ++ SYS_KAS_INFO = 439 ++ SYS_MAXSYSCALL = 440 ++) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go +new file mode 100644 +index 0000000..26677eb +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go +@@ -0,0 +1,398 @@ ++// mksysnum_darwin.pl /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.4.sdk/usr/include/sys/syscall.h ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT ++ ++// +build arm64,darwin ++ ++package unix ++ ++const ( ++ SYS_SYSCALL = 0 ++ SYS_EXIT = 1 ++ SYS_FORK = 2 ++ SYS_READ = 3 ++ SYS_WRITE = 4 ++ SYS_OPEN = 5 ++ SYS_CLOSE = 6 ++ SYS_WAIT4 = 7 ++ SYS_LINK = 9 ++ SYS_UNLINK = 10 ++ SYS_CHDIR = 12 ++ SYS_FCHDIR = 13 ++ SYS_MKNOD = 14 ++ SYS_CHMOD = 15 ++ SYS_CHOWN = 16 ++ SYS_GETFSSTAT = 18 ++ SYS_GETPID = 20 ++ SYS_SETUID = 23 ++ SYS_GETUID = 24 ++ SYS_GETEUID = 25 ++ SYS_PTRACE = 26 ++ SYS_RECVMSG = 27 ++ SYS_SENDMSG = 28 ++ SYS_RECVFROM = 29 ++ SYS_ACCEPT = 30 ++ SYS_GETPEERNAME = 31 ++ SYS_GETSOCKNAME = 32 ++ SYS_ACCESS = 33 ++ SYS_CHFLAGS = 34 ++ SYS_FCHFLAGS = 35 ++ SYS_SYNC = 36 ++ SYS_KILL = 37 ++ SYS_GETPPID = 39 ++ SYS_DUP = 41 ++ SYS_PIPE = 42 ++ SYS_GETEGID = 43 ++ SYS_SIGACTION = 46 ++ SYS_GETGID = 47 ++ SYS_SIGPROCMASK = 48 ++ SYS_GETLOGIN = 49 ++ SYS_SETLOGIN = 50 ++ SYS_ACCT = 51 ++ SYS_SIGPENDING = 52 ++ SYS_SIGALTSTACK = 53 ++ SYS_IOCTL = 54 ++ SYS_REBOOT = 55 ++ SYS_REVOKE = 56 ++ SYS_SYMLINK = 57 ++ SYS_READLINK = 58 ++ SYS_EXECVE = 59 ++ SYS_UMASK = 60 ++ SYS_CHROOT = 61 ++ SYS_MSYNC = 65 ++ SYS_VFORK = 66 ++ SYS_MUNMAP = 73 ++ SYS_MPROTECT = 74 ++ SYS_MADVISE = 75 ++ SYS_MINCORE = 78 ++ SYS_GETGROUPS = 79 ++ SYS_SETGROUPS = 80 ++ SYS_GETPGRP = 81 ++ SYS_SETPGID = 82 ++ SYS_SETITIMER = 83 ++ SYS_SWAPON = 85 ++ SYS_GETITIMER = 86 ++ SYS_GETDTABLESIZE = 89 ++ SYS_DUP2 = 90 ++ SYS_FCNTL = 92 ++ SYS_SELECT = 93 ++ SYS_FSYNC = 95 ++ SYS_SETPRIORITY = 96 ++ SYS_SOCKET = 97 ++ SYS_CONNECT = 98 ++ SYS_GETPRIORITY = 100 ++ SYS_BIND = 104 ++ SYS_SETSOCKOPT = 105 ++ SYS_LISTEN = 106 ++ SYS_SIGSUSPEND = 111 ++ SYS_GETTIMEOFDAY = 116 ++ SYS_GETRUSAGE = 117 ++ SYS_GETSOCKOPT = 118 ++ SYS_READV = 120 ++ SYS_WRITEV = 121 ++ SYS_SETTIMEOFDAY = 122 ++ SYS_FCHOWN = 123 ++ SYS_FCHMOD = 124 ++ SYS_SETREUID = 126 ++ SYS_SETREGID = 127 ++ SYS_RENAME = 128 ++ SYS_FLOCK = 131 ++ SYS_MKFIFO = 132 ++ SYS_SENDTO = 133 ++ SYS_SHUTDOWN = 134 ++ SYS_SOCKETPAIR = 135 ++ SYS_MKDIR = 136 ++ SYS_RMDIR = 137 ++ SYS_UTIMES = 138 ++ SYS_FUTIMES = 139 ++ SYS_ADJTIME = 140 ++ SYS_GETHOSTUUID = 142 ++ SYS_SETSID = 147 ++ SYS_GETPGID = 151 ++ SYS_SETPRIVEXEC = 152 ++ SYS_PREAD = 153 ++ SYS_PWRITE = 154 ++ SYS_NFSSVC = 155 ++ SYS_STATFS = 157 ++ SYS_FSTATFS = 158 ++ SYS_UNMOUNT = 159 ++ SYS_GETFH = 161 ++ SYS_QUOTACTL = 165 ++ SYS_MOUNT = 167 ++ SYS_CSOPS = 169 ++ SYS_CSOPS_AUDITTOKEN = 170 ++ SYS_WAITID = 173 ++ SYS_KDEBUG_TRACE64 = 179 ++ SYS_KDEBUG_TRACE = 180 ++ SYS_SETGID = 181 ++ SYS_SETEGID = 182 ++ SYS_SETEUID = 183 ++ SYS_SIGRETURN = 184 ++ SYS_CHUD = 185 ++ SYS_FDATASYNC = 187 ++ SYS_STAT = 188 ++ SYS_FSTAT = 189 ++ SYS_LSTAT = 190 ++ SYS_PATHCONF = 191 ++ SYS_FPATHCONF = 192 ++ SYS_GETRLIMIT = 194 ++ SYS_SETRLIMIT = 195 ++ SYS_GETDIRENTRIES = 196 ++ SYS_MMAP = 197 ++ SYS_LSEEK = 199 ++ SYS_TRUNCATE = 200 ++ SYS_FTRUNCATE = 201 ++ SYS_SYSCTL = 202 ++ SYS_MLOCK = 203 ++ SYS_MUNLOCK = 204 ++ SYS_UNDELETE = 205 ++ SYS_OPEN_DPROTECTED_NP = 216 ++ SYS_GETATTRLIST = 220 ++ SYS_SETATTRLIST = 221 ++ SYS_GETDIRENTRIESATTR = 222 ++ SYS_EXCHANGEDATA = 223 ++ SYS_SEARCHFS = 225 ++ SYS_DELETE = 226 ++ SYS_COPYFILE = 227 ++ SYS_FGETATTRLIST = 228 ++ SYS_FSETATTRLIST = 229 ++ SYS_POLL = 230 ++ SYS_WATCHEVENT = 231 ++ SYS_WAITEVENT = 232 ++ SYS_MODWATCH = 233 ++ SYS_GETXATTR = 234 ++ SYS_FGETXATTR = 235 ++ SYS_SETXATTR = 236 ++ SYS_FSETXATTR = 237 ++ SYS_REMOVEXATTR = 238 ++ SYS_FREMOVEXATTR = 239 ++ SYS_LISTXATTR = 240 ++ SYS_FLISTXATTR = 241 ++ SYS_FSCTL = 242 ++ SYS_INITGROUPS = 243 ++ SYS_POSIX_SPAWN = 244 ++ SYS_FFSCTL = 245 ++ SYS_NFSCLNT = 247 ++ SYS_FHOPEN = 248 ++ SYS_MINHERIT = 250 ++ SYS_SEMSYS = 251 ++ SYS_MSGSYS = 252 ++ SYS_SHMSYS = 253 ++ SYS_SEMCTL = 254 ++ SYS_SEMGET = 255 ++ SYS_SEMOP = 256 ++ SYS_MSGCTL = 258 ++ SYS_MSGGET = 259 ++ SYS_MSGSND = 260 ++ SYS_MSGRCV = 261 ++ SYS_SHMAT = 262 ++ SYS_SHMCTL = 263 ++ SYS_SHMDT = 264 ++ SYS_SHMGET = 265 ++ SYS_SHM_OPEN = 266 ++ SYS_SHM_UNLINK = 267 ++ SYS_SEM_OPEN = 268 ++ SYS_SEM_CLOSE = 269 ++ SYS_SEM_UNLINK = 270 ++ SYS_SEM_WAIT = 271 ++ SYS_SEM_TRYWAIT = 272 ++ SYS_SEM_POST = 273 ++ SYS_SYSCTLBYNAME = 274 ++ SYS_OPEN_EXTENDED = 277 ++ SYS_UMASK_EXTENDED = 278 ++ SYS_STAT_EXTENDED = 279 ++ SYS_LSTAT_EXTENDED = 280 ++ SYS_FSTAT_EXTENDED = 281 ++ SYS_CHMOD_EXTENDED = 282 ++ SYS_FCHMOD_EXTENDED = 283 ++ SYS_ACCESS_EXTENDED = 284 ++ SYS_SETTID = 285 ++ SYS_GETTID = 286 ++ SYS_SETSGROUPS = 287 ++ SYS_GETSGROUPS = 288 ++ SYS_SETWGROUPS = 289 ++ SYS_GETWGROUPS = 290 ++ SYS_MKFIFO_EXTENDED = 291 ++ SYS_MKDIR_EXTENDED = 292 ++ SYS_IDENTITYSVC = 293 ++ SYS_SHARED_REGION_CHECK_NP = 294 ++ SYS_VM_PRESSURE_MONITOR = 296 ++ SYS_PSYNCH_RW_LONGRDLOCK = 297 ++ SYS_PSYNCH_RW_YIELDWRLOCK = 298 ++ SYS_PSYNCH_RW_DOWNGRADE = 299 ++ SYS_PSYNCH_RW_UPGRADE = 300 ++ SYS_PSYNCH_MUTEXWAIT = 301 ++ SYS_PSYNCH_MUTEXDROP = 302 ++ SYS_PSYNCH_CVBROAD = 303 ++ SYS_PSYNCH_CVSIGNAL = 304 ++ SYS_PSYNCH_CVWAIT = 305 ++ SYS_PSYNCH_RW_RDLOCK = 306 ++ SYS_PSYNCH_RW_WRLOCK = 307 ++ SYS_PSYNCH_RW_UNLOCK = 308 ++ SYS_PSYNCH_RW_UNLOCK2 = 309 ++ SYS_GETSID = 310 ++ SYS_SETTID_WITH_PID = 311 ++ SYS_PSYNCH_CVCLRPREPOST = 312 ++ SYS_AIO_FSYNC = 313 ++ SYS_AIO_RETURN = 314 ++ SYS_AIO_SUSPEND = 315 ++ SYS_AIO_CANCEL = 316 ++ SYS_AIO_ERROR = 317 ++ SYS_AIO_READ = 318 ++ SYS_AIO_WRITE = 319 ++ SYS_LIO_LISTIO = 320 ++ SYS_IOPOLICYSYS = 322 ++ SYS_PROCESS_POLICY = 323 ++ SYS_MLOCKALL = 324 ++ SYS_MUNLOCKALL = 325 ++ SYS_ISSETUGID = 327 ++ SYS___PTHREAD_KILL = 328 ++ SYS___PTHREAD_SIGMASK = 329 ++ SYS___SIGWAIT = 330 ++ SYS___DISABLE_THREADSIGNAL = 331 ++ SYS___PTHREAD_MARKCANCEL = 332 ++ SYS___PTHREAD_CANCELED = 333 ++ SYS___SEMWAIT_SIGNAL = 334 ++ SYS_PROC_INFO = 336 ++ SYS_SENDFILE = 337 ++ SYS_STAT64 = 338 ++ SYS_FSTAT64 = 339 ++ SYS_LSTAT64 = 340 ++ SYS_STAT64_EXTENDED = 341 ++ SYS_LSTAT64_EXTENDED = 342 ++ SYS_FSTAT64_EXTENDED = 343 ++ SYS_GETDIRENTRIES64 = 344 ++ SYS_STATFS64 = 345 ++ SYS_FSTATFS64 = 346 ++ SYS_GETFSSTAT64 = 347 ++ SYS___PTHREAD_CHDIR = 348 ++ SYS___PTHREAD_FCHDIR = 349 ++ SYS_AUDIT = 350 ++ SYS_AUDITON = 351 ++ SYS_GETAUID = 353 ++ SYS_SETAUID = 354 ++ SYS_GETAUDIT_ADDR = 357 ++ SYS_SETAUDIT_ADDR = 358 ++ SYS_AUDITCTL = 359 ++ SYS_BSDTHREAD_CREATE = 360 ++ SYS_BSDTHREAD_TERMINATE = 361 ++ SYS_KQUEUE = 362 ++ SYS_KEVENT = 363 ++ SYS_LCHOWN = 364 ++ SYS_STACK_SNAPSHOT = 365 ++ SYS_BSDTHREAD_REGISTER = 366 ++ SYS_WORKQ_OPEN = 367 ++ SYS_WORKQ_KERNRETURN = 368 ++ SYS_KEVENT64 = 369 ++ SYS___OLD_SEMWAIT_SIGNAL = 370 ++ SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371 ++ SYS_THREAD_SELFID = 372 ++ SYS_LEDGER = 373 ++ SYS___MAC_EXECVE = 380 ++ SYS___MAC_SYSCALL = 381 ++ SYS___MAC_GET_FILE = 382 ++ SYS___MAC_SET_FILE = 383 ++ SYS___MAC_GET_LINK = 384 ++ SYS___MAC_SET_LINK = 385 ++ SYS___MAC_GET_PROC = 386 ++ SYS___MAC_SET_PROC = 387 ++ SYS___MAC_GET_FD = 388 ++ SYS___MAC_SET_FD = 389 ++ SYS___MAC_GET_PID = 390 ++ SYS___MAC_GET_LCID = 391 ++ SYS___MAC_GET_LCTX = 392 ++ SYS___MAC_SET_LCTX = 393 ++ SYS_SETLCID = 394 ++ SYS_GETLCID = 395 ++ SYS_READ_NOCANCEL = 396 ++ SYS_WRITE_NOCANCEL = 397 ++ SYS_OPEN_NOCANCEL = 398 ++ SYS_CLOSE_NOCANCEL = 399 ++ SYS_WAIT4_NOCANCEL = 400 ++ SYS_RECVMSG_NOCANCEL = 401 ++ SYS_SENDMSG_NOCANCEL = 402 ++ SYS_RECVFROM_NOCANCEL = 403 ++ SYS_ACCEPT_NOCANCEL = 404 ++ SYS_MSYNC_NOCANCEL = 405 ++ SYS_FCNTL_NOCANCEL = 406 ++ SYS_SELECT_NOCANCEL = 407 ++ SYS_FSYNC_NOCANCEL = 408 ++ SYS_CONNECT_NOCANCEL = 409 ++ SYS_SIGSUSPEND_NOCANCEL = 410 ++ SYS_READV_NOCANCEL = 411 ++ SYS_WRITEV_NOCANCEL = 412 ++ SYS_SENDTO_NOCANCEL = 413 ++ SYS_PREAD_NOCANCEL = 414 ++ SYS_PWRITE_NOCANCEL = 415 ++ SYS_WAITID_NOCANCEL = 416 ++ SYS_POLL_NOCANCEL = 417 ++ SYS_MSGSND_NOCANCEL = 418 ++ SYS_MSGRCV_NOCANCEL = 419 ++ SYS_SEM_WAIT_NOCANCEL = 420 ++ SYS_AIO_SUSPEND_NOCANCEL = 421 ++ SYS___SIGWAIT_NOCANCEL = 422 ++ SYS___SEMWAIT_SIGNAL_NOCANCEL = 423 ++ SYS___MAC_MOUNT = 424 ++ SYS___MAC_GET_MOUNT = 425 ++ SYS___MAC_GETFSSTAT = 426 ++ SYS_FSGETPATH = 427 ++ SYS_AUDIT_SESSION_SELF = 428 ++ SYS_AUDIT_SESSION_JOIN = 429 ++ SYS_FILEPORT_MAKEPORT = 430 ++ SYS_FILEPORT_MAKEFD = 431 ++ SYS_AUDIT_SESSION_PORT = 432 ++ SYS_PID_SUSPEND = 433 ++ SYS_PID_RESUME = 434 ++ SYS_PID_HIBERNATE = 435 ++ SYS_PID_SHUTDOWN_SOCKETS = 436 ++ SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438 ++ SYS_KAS_INFO = 439 ++ SYS_MEMORYSTATUS_CONTROL = 440 ++ SYS_GUARDED_OPEN_NP = 441 ++ SYS_GUARDED_CLOSE_NP = 442 ++ SYS_GUARDED_KQUEUE_NP = 443 ++ SYS_CHANGE_FDGUARD_NP = 444 ++ SYS_PROC_RLIMIT_CONTROL = 446 ++ SYS_CONNECTX = 447 ++ SYS_DISCONNECTX = 448 ++ SYS_PEELOFF = 449 ++ SYS_SOCKET_DELEGATE = 450 ++ SYS_TELEMETRY = 451 ++ SYS_PROC_UUID_POLICY = 452 ++ SYS_MEMORYSTATUS_GET_LEVEL = 453 ++ SYS_SYSTEM_OVERRIDE = 454 ++ SYS_VFS_PURGE = 455 ++ SYS_SFI_CTL = 456 ++ SYS_SFI_PIDCTL = 457 ++ SYS_COALITION = 458 ++ SYS_COALITION_INFO = 459 ++ SYS_NECP_MATCH_POLICY = 460 ++ SYS_GETATTRLISTBULK = 461 ++ SYS_OPENAT = 463 ++ SYS_OPENAT_NOCANCEL = 464 ++ SYS_RENAMEAT = 465 ++ SYS_FACCESSAT = 466 ++ SYS_FCHMODAT = 467 ++ SYS_FCHOWNAT = 468 ++ SYS_FSTATAT = 469 ++ SYS_FSTATAT64 = 470 ++ SYS_LINKAT = 471 ++ SYS_UNLINKAT = 472 ++ SYS_READLINKAT = 473 ++ SYS_SYMLINKAT = 474 ++ SYS_MKDIRAT = 475 ++ SYS_GETATTRLISTAT = 476 ++ SYS_PROC_TRACE_LOG = 477 ++ SYS_BSDTHREAD_CTL = 478 ++ SYS_OPENBYID_NP = 479 ++ SYS_RECVMSG_X = 480 ++ SYS_SENDMSG_X = 481 ++ SYS_THREAD_SELFUSAGE = 482 ++ SYS_CSRCTL = 483 ++ SYS_GUARDED_OPEN_DPROTECTED_NP = 484 ++ SYS_GUARDED_WRITE_NP = 485 ++ SYS_GUARDED_PWRITE_NP = 486 ++ SYS_GUARDED_WRITEV_NP = 487 ++ SYS_RENAME_EXT = 488 ++ SYS_MREMAP_ENCRYPTED = 489 ++ SYS_MAXSYSCALL = 490 ++) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go +new file mode 100644 +index 0000000..d6038fa +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go +@@ -0,0 +1,304 @@ ++// mksysnum_dragonfly.pl ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT ++ ++// +build amd64,dragonfly ++ ++package unix ++ ++const ( ++ // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int ++ SYS_EXIT = 1 // { void exit(int rval); } ++ SYS_FORK = 2 // { int fork(void); } ++ SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } ++ SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } ++ SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } ++ SYS_CLOSE = 6 // { int close(int fd); } ++ SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, \ ++ SYS_LINK = 9 // { int link(char *path, char *link); } ++ SYS_UNLINK = 10 // { int unlink(char *path); } ++ SYS_CHDIR = 12 // { int chdir(char *path); } ++ SYS_FCHDIR = 13 // { int fchdir(int fd); } ++ SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); } ++ SYS_CHMOD = 15 // { int chmod(char *path, int mode); } ++ SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } ++ SYS_OBREAK = 17 // { int obreak(char *nsize); } break obreak_args int ++ SYS_GETFSSTAT = 18 // { int getfsstat(struct statfs *buf, long bufsize, \ ++ SYS_GETPID = 20 // { pid_t getpid(void); } ++ SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, \ ++ SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } ++ SYS_SETUID = 23 // { int setuid(uid_t uid); } ++ SYS_GETUID = 24 // { uid_t getuid(void); } ++ SYS_GETEUID = 25 // { uid_t geteuid(void); } ++ SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, \ ++ SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } ++ SYS_SENDMSG = 28 // { int sendmsg(int s, caddr_t msg, int flags); } ++ SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, \ ++ SYS_ACCEPT = 30 // { int accept(int s, caddr_t name, int *anamelen); } ++ SYS_GETPEERNAME = 31 // { int getpeername(int fdes, caddr_t asa, int *alen); } ++ SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, caddr_t asa, int *alen); } ++ SYS_ACCESS = 33 // { int access(char *path, int flags); } ++ SYS_CHFLAGS = 34 // { int chflags(char *path, int flags); } ++ SYS_FCHFLAGS = 35 // { int fchflags(int fd, int flags); } ++ SYS_SYNC = 36 // { int sync(void); } ++ SYS_KILL = 37 // { int kill(int pid, int signum); } ++ SYS_GETPPID = 39 // { pid_t getppid(void); } ++ SYS_DUP = 41 // { int dup(u_int fd); } ++ SYS_PIPE = 42 // { int pipe(void); } ++ SYS_GETEGID = 43 // { gid_t getegid(void); } ++ SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, \ ++ SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, \ ++ SYS_GETGID = 47 // { gid_t getgid(void); } ++ SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } ++ SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } ++ SYS_ACCT = 51 // { int acct(char *path); } ++ SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } ++ SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } ++ SYS_REBOOT = 55 // { int reboot(int opt); } ++ SYS_REVOKE = 56 // { int revoke(char *path); } ++ SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } ++ SYS_READLINK = 58 // { int readlink(char *path, char *buf, int count); } ++ SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } ++ SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args int ++ SYS_CHROOT = 61 // { int chroot(char *path); } ++ SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } ++ SYS_VFORK = 66 // { pid_t vfork(void); } ++ SYS_SBRK = 69 // { int sbrk(int incr); } ++ SYS_SSTK = 70 // { int sstk(int incr); } ++ SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } ++ SYS_MPROTECT = 74 // { int mprotect(void *addr, size_t len, int prot); } ++ SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } ++ SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, \ ++ SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } ++ SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } ++ SYS_GETPGRP = 81 // { int getpgrp(void); } ++ SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } ++ SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, \ ++ SYS_SWAPON = 85 // { int swapon(char *name); } ++ SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } ++ SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } ++ SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } ++ SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } ++ SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, \ ++ SYS_FSYNC = 95 // { int fsync(int fd); } ++ SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } ++ SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } ++ SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } ++ SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } ++ SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } ++ SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, \ ++ SYS_LISTEN = 106 // { int listen(int s, int backlog); } ++ SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, \ ++ SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } ++ SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, \ ++ SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } ++ SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, \ ++ SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, \ ++ SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } ++ SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } ++ SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } ++ SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } ++ SYS_RENAME = 128 // { int rename(char *from, char *to); } ++ SYS_FLOCK = 131 // { int flock(int fd, int how); } ++ SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } ++ SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, \ ++ SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } ++ SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, \ ++ SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } ++ SYS_RMDIR = 137 // { int rmdir(char *path); } ++ SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } ++ SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, \ ++ SYS_SETSID = 147 // { int setsid(void); } ++ SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, \ ++ SYS_STATFS = 157 // { int statfs(char *path, struct statfs *buf); } ++ SYS_FSTATFS = 158 // { int fstatfs(int fd, struct statfs *buf); } ++ SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } ++ SYS_GETDOMAINNAME = 162 // { int getdomainname(char *domainname, int len); } ++ SYS_SETDOMAINNAME = 163 // { int setdomainname(char *domainname, int len); } ++ SYS_UNAME = 164 // { int uname(struct utsname *name); } ++ SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } ++ SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, \ ++ SYS_EXTPREAD = 173 // { ssize_t extpread(int fd, void *buf, \ ++ SYS_EXTPWRITE = 174 // { ssize_t extpwrite(int fd, const void *buf, \ ++ SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } ++ SYS_SETGID = 181 // { int setgid(gid_t gid); } ++ SYS_SETEGID = 182 // { int setegid(gid_t egid); } ++ SYS_SETEUID = 183 // { int seteuid(uid_t euid); } ++ SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } ++ SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } ++ SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, \ ++ SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, \ ++ SYS_MMAP = 197 // { caddr_t mmap(caddr_t addr, size_t len, int prot, \ ++ // SYS_NOSYS = 198; // { int nosys(void); } __syscall __syscall_args int ++ SYS_LSEEK = 199 // { off_t lseek(int fd, int pad, off_t offset, \ ++ SYS_TRUNCATE = 200 // { int truncate(char *path, int pad, off_t length); } ++ SYS_FTRUNCATE = 201 // { int ftruncate(int fd, int pad, off_t length); } ++ SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, \ ++ SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } ++ SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } ++ SYS_UNDELETE = 205 // { int undelete(char *path); } ++ SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } ++ SYS_GETPGID = 207 // { int getpgid(pid_t pid); } ++ SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, \ ++ SYS___SEMCTL = 220 // { int __semctl(int semid, int semnum, int cmd, \ ++ SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } ++ SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, \ ++ SYS_MSGCTL = 224 // { int msgctl(int msqid, int cmd, \ ++ SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } ++ SYS_MSGSND = 226 // { int msgsnd(int msqid, void *msgp, size_t msgsz, \ ++ SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, \ ++ SYS_SHMAT = 228 // { caddr_t shmat(int shmid, const void *shmaddr, \ ++ SYS_SHMCTL = 229 // { int shmctl(int shmid, int cmd, \ ++ SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } ++ SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); } ++ SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, \ ++ SYS_CLOCK_SETTIME = 233 // { int clock_settime(clockid_t clock_id, \ ++ SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, \ ++ SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, \ ++ SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } ++ SYS_RFORK = 251 // { int rfork(int flags); } ++ SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, \ ++ SYS_ISSETUGID = 253 // { int issetugid(void); } ++ SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } ++ SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } ++ SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } ++ SYS_EXTPREADV = 289 // { ssize_t extpreadv(int fd, struct iovec *iovp, \ ++ SYS_EXTPWRITEV = 290 // { ssize_t extpwritev(int fd, struct iovec *iovp,\ ++ SYS_FHSTATFS = 297 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } ++ SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } ++ SYS_MODNEXT = 300 // { int modnext(int modid); } ++ SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat* stat); } ++ SYS_MODFNEXT = 302 // { int modfnext(int modid); } ++ SYS_MODFIND = 303 // { int modfind(const char *name); } ++ SYS_KLDLOAD = 304 // { int kldload(const char *file); } ++ SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } ++ SYS_KLDFIND = 306 // { int kldfind(const char *file); } ++ SYS_KLDNEXT = 307 // { int kldnext(int fileid); } ++ SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); } ++ SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } ++ SYS_GETSID = 310 // { int getsid(pid_t pid); } ++ SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } ++ SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } ++ SYS_AIO_RETURN = 314 // { int aio_return(struct aiocb *aiocbp); } ++ SYS_AIO_SUSPEND = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } ++ SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } ++ SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } ++ SYS_AIO_READ = 318 // { int aio_read(struct aiocb *aiocbp); } ++ SYS_AIO_WRITE = 319 // { int aio_write(struct aiocb *aiocbp); } ++ SYS_LIO_LISTIO = 320 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); } ++ SYS_YIELD = 321 // { int yield(void); } ++ SYS_MLOCKALL = 324 // { int mlockall(int how); } ++ SYS_MUNLOCKALL = 325 // { int munlockall(void); } ++ SYS___GETCWD = 326 // { int __getcwd(u_char *buf, u_int buflen); } ++ SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); } ++ SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); } ++ SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); } ++ SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } ++ SYS_SCHED_YIELD = 331 // { int sched_yield (void); } ++ SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } ++ SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } ++ SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); } ++ SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } ++ SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } ++ SYS_JAIL = 338 // { int jail(struct jail *jail); } ++ SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, \ ++ SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } ++ SYS_SIGACTION = 342 // { int sigaction(int sig, const struct sigaction *act, \ ++ SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } ++ SYS_SIGRETURN = 344 // { int sigreturn(ucontext_t *sigcntxp); } ++ SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set,\ ++ SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set,\ ++ SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, \ ++ SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, \ ++ SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, \ ++ SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, \ ++ SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, \ ++ SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); } ++ SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, \ ++ SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, \ ++ SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, \ ++ SYS_EXTATTR_SET_FILE = 356 // { int extattr_set_file(const char *path, \ ++ SYS_EXTATTR_GET_FILE = 357 // { int extattr_get_file(const char *path, \ ++ SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, \ ++ SYS_AIO_WAITCOMPLETE = 359 // { int aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); } ++ SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } ++ SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } ++ SYS_KQUEUE = 362 // { int kqueue(void); } ++ SYS_KEVENT = 363 // { int kevent(int fd, \ ++ SYS_SCTP_PEELOFF = 364 // { int sctp_peeloff(int sd, caddr_t name ); } ++ SYS_LCHFLAGS = 391 // { int lchflags(char *path, int flags); } ++ SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } ++ SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, \ ++ SYS_VARSYM_SET = 450 // { int varsym_set(int level, const char *name, const char *data); } ++ SYS_VARSYM_GET = 451 // { int varsym_get(int mask, const char *wild, char *buf, int bufsize); } ++ SYS_VARSYM_LIST = 452 // { int varsym_list(int level, char *buf, int maxsize, int *marker); } ++ SYS_EXEC_SYS_REGISTER = 465 // { int exec_sys_register(void *entry); } ++ SYS_EXEC_SYS_UNREGISTER = 466 // { int exec_sys_unregister(int id); } ++ SYS_SYS_CHECKPOINT = 467 // { int sys_checkpoint(int type, int fd, pid_t pid, int retval); } ++ SYS_MOUNTCTL = 468 // { int mountctl(const char *path, int op, int fd, const void *ctl, int ctllen, void *buf, int buflen); } ++ SYS_UMTX_SLEEP = 469 // { int umtx_sleep(volatile const int *ptr, int value, int timeout); } ++ SYS_UMTX_WAKEUP = 470 // { int umtx_wakeup(volatile const int *ptr, int count); } ++ SYS_JAIL_ATTACH = 471 // { int jail_attach(int jid); } ++ SYS_SET_TLS_AREA = 472 // { int set_tls_area(int which, struct tls_info *info, size_t infosize); } ++ SYS_GET_TLS_AREA = 473 // { int get_tls_area(int which, struct tls_info *info, size_t infosize); } ++ SYS_CLOSEFROM = 474 // { int closefrom(int fd); } ++ SYS_STAT = 475 // { int stat(const char *path, struct stat *ub); } ++ SYS_FSTAT = 476 // { int fstat(int fd, struct stat *sb); } ++ SYS_LSTAT = 477 // { int lstat(const char *path, struct stat *ub); } ++ SYS_FHSTAT = 478 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } ++ SYS_GETDIRENTRIES = 479 // { int getdirentries(int fd, char *buf, u_int count, \ ++ SYS_GETDENTS = 480 // { int getdents(int fd, char *buf, size_t count); } ++ SYS_USCHED_SET = 481 // { int usched_set(pid_t pid, int cmd, void *data, \ ++ SYS_EXTACCEPT = 482 // { int extaccept(int s, int flags, caddr_t name, int *anamelen); } ++ SYS_EXTCONNECT = 483 // { int extconnect(int s, int flags, caddr_t name, int namelen); } ++ SYS_MCONTROL = 485 // { int mcontrol(void *addr, size_t len, int behav, off_t value); } ++ SYS_VMSPACE_CREATE = 486 // { int vmspace_create(void *id, int type, void *data); } ++ SYS_VMSPACE_DESTROY = 487 // { int vmspace_destroy(void *id); } ++ SYS_VMSPACE_CTL = 488 // { int vmspace_ctl(void *id, int cmd, \ ++ SYS_VMSPACE_MMAP = 489 // { int vmspace_mmap(void *id, void *addr, size_t len, \ ++ SYS_VMSPACE_MUNMAP = 490 // { int vmspace_munmap(void *id, void *addr, \ ++ SYS_VMSPACE_MCONTROL = 491 // { int vmspace_mcontrol(void *id, void *addr, \ ++ SYS_VMSPACE_PREAD = 492 // { ssize_t vmspace_pread(void *id, void *buf, \ ++ SYS_VMSPACE_PWRITE = 493 // { ssize_t vmspace_pwrite(void *id, const void *buf, \ ++ SYS_EXTEXIT = 494 // { void extexit(int how, int status, void *addr); } ++ SYS_LWP_CREATE = 495 // { int lwp_create(struct lwp_params *params); } ++ SYS_LWP_GETTID = 496 // { lwpid_t lwp_gettid(void); } ++ SYS_LWP_KILL = 497 // { int lwp_kill(pid_t pid, lwpid_t tid, int signum); } ++ SYS_LWP_RTPRIO = 498 // { int lwp_rtprio(int function, pid_t pid, lwpid_t tid, struct rtprio *rtp); } ++ SYS_PSELECT = 499 // { int pselect(int nd, fd_set *in, fd_set *ou, \ ++ SYS_STATVFS = 500 // { int statvfs(const char *path, struct statvfs *buf); } ++ SYS_FSTATVFS = 501 // { int fstatvfs(int fd, struct statvfs *buf); } ++ SYS_FHSTATVFS = 502 // { int fhstatvfs(const struct fhandle *u_fhp, struct statvfs *buf); } ++ SYS_GETVFSSTAT = 503 // { int getvfsstat(struct statfs *buf, \ ++ SYS_OPENAT = 504 // { int openat(int fd, char *path, int flags, int mode); } ++ SYS_FSTATAT = 505 // { int fstatat(int fd, char *path, \ ++ SYS_FCHMODAT = 506 // { int fchmodat(int fd, char *path, int mode, \ ++ SYS_FCHOWNAT = 507 // { int fchownat(int fd, char *path, int uid, int gid, \ ++ SYS_UNLINKAT = 508 // { int unlinkat(int fd, char *path, int flags); } ++ SYS_FACCESSAT = 509 // { int faccessat(int fd, char *path, int amode, \ ++ SYS_MQ_OPEN = 510 // { mqd_t mq_open(const char * name, int oflag, \ ++ SYS_MQ_CLOSE = 511 // { int mq_close(mqd_t mqdes); } ++ SYS_MQ_UNLINK = 512 // { int mq_unlink(const char *name); } ++ SYS_MQ_GETATTR = 513 // { int mq_getattr(mqd_t mqdes, \ ++ SYS_MQ_SETATTR = 514 // { int mq_setattr(mqd_t mqdes, \ ++ SYS_MQ_NOTIFY = 515 // { int mq_notify(mqd_t mqdes, \ ++ SYS_MQ_SEND = 516 // { int mq_send(mqd_t mqdes, const char *msg_ptr, \ ++ SYS_MQ_RECEIVE = 517 // { ssize_t mq_receive(mqd_t mqdes, char *msg_ptr, \ ++ SYS_MQ_TIMEDSEND = 518 // { int mq_timedsend(mqd_t mqdes, \ ++ SYS_MQ_TIMEDRECEIVE = 519 // { ssize_t mq_timedreceive(mqd_t mqdes, \ ++ SYS_IOPRIO_SET = 520 // { int ioprio_set(int which, int who, int prio); } ++ SYS_IOPRIO_GET = 521 // { int ioprio_get(int which, int who); } ++ SYS_CHROOT_KERNEL = 522 // { int chroot_kernel(char *path); } ++ SYS_RENAMEAT = 523 // { int renameat(int oldfd, char *old, int newfd, \ ++ SYS_MKDIRAT = 524 // { int mkdirat(int fd, char *path, mode_t mode); } ++ SYS_MKFIFOAT = 525 // { int mkfifoat(int fd, char *path, mode_t mode); } ++ SYS_MKNODAT = 526 // { int mknodat(int fd, char *path, mode_t mode, \ ++ SYS_READLINKAT = 527 // { int readlinkat(int fd, char *path, char *buf, \ ++ SYS_SYMLINKAT = 528 // { int symlinkat(char *path1, int fd, char *path2); } ++ SYS_SWAPOFF = 529 // { int swapoff(char *name); } ++ SYS_VQUOTACTL = 530 // { int vquotactl(const char *path, \ ++ SYS_LINKAT = 531 // { int linkat(int fd1, char *path1, int fd2, \ ++ SYS_EACCESS = 532 // { int eaccess(char *path, int flags); } ++ SYS_LPATHCONF = 533 // { int lpathconf(char *path, int name); } ++ SYS_VMM_GUEST_CTL = 534 // { int vmm_guest_ctl(int op, struct vmm_guest_options *options); } ++ SYS_VMM_GUEST_SYNC_ADDR = 535 // { int vmm_guest_sync_addr(long *dstaddr, long *srcaddr); } ++) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go +new file mode 100644 +index 0000000..262a845 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go +@@ -0,0 +1,351 @@ ++// mksysnum_freebsd.pl ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT ++ ++// +build 386,freebsd ++ ++package unix ++ ++const ( ++ // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int ++ SYS_EXIT = 1 // { void sys_exit(int rval); } exit \ ++ SYS_FORK = 2 // { int fork(void); } ++ SYS_READ = 3 // { ssize_t read(int fd, void *buf, \ ++ SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, \ ++ SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } ++ SYS_CLOSE = 6 // { int close(int fd); } ++ SYS_WAIT4 = 7 // { int wait4(int pid, int *status, \ ++ SYS_LINK = 9 // { int link(char *path, char *link); } ++ SYS_UNLINK = 10 // { int unlink(char *path); } ++ SYS_CHDIR = 12 // { int chdir(char *path); } ++ SYS_FCHDIR = 13 // { int fchdir(int fd); } ++ SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); } ++ SYS_CHMOD = 15 // { int chmod(char *path, int mode); } ++ SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } ++ SYS_OBREAK = 17 // { int obreak(char *nsize); } break \ ++ SYS_GETPID = 20 // { pid_t getpid(void); } ++ SYS_MOUNT = 21 // { int mount(char *type, char *path, \ ++ SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } ++ SYS_SETUID = 23 // { int setuid(uid_t uid); } ++ SYS_GETUID = 24 // { uid_t getuid(void); } ++ SYS_GETEUID = 25 // { uid_t geteuid(void); } ++ SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, \ ++ SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, \ ++ SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, \ ++ SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, \ ++ SYS_ACCEPT = 30 // { int accept(int s, \ ++ SYS_GETPEERNAME = 31 // { int getpeername(int fdes, \ ++ SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, \ ++ SYS_ACCESS = 33 // { int access(char *path, int amode); } ++ SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } ++ SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } ++ SYS_SYNC = 36 // { int sync(void); } ++ SYS_KILL = 37 // { int kill(int pid, int signum); } ++ SYS_GETPPID = 39 // { pid_t getppid(void); } ++ SYS_DUP = 41 // { int dup(u_int fd); } ++ SYS_PIPE = 42 // { int pipe(void); } ++ SYS_GETEGID = 43 // { gid_t getegid(void); } ++ SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, \ ++ SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, \ ++ SYS_GETGID = 47 // { gid_t getgid(void); } ++ SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int \ ++ SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } ++ SYS_ACCT = 51 // { int acct(char *path); } ++ SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, \ ++ SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, \ ++ SYS_REBOOT = 55 // { int reboot(int opt); } ++ SYS_REVOKE = 56 // { int revoke(char *path); } ++ SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } ++ SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, \ ++ SYS_EXECVE = 59 // { int execve(char *fname, char **argv, \ ++ SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args \ ++ SYS_CHROOT = 61 // { int chroot(char *path); } ++ SYS_MSYNC = 65 // { int msync(void *addr, size_t len, \ ++ SYS_VFORK = 66 // { int vfork(void); } ++ SYS_SBRK = 69 // { int sbrk(int incr); } ++ SYS_SSTK = 70 // { int sstk(int incr); } ++ SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise \ ++ SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } ++ SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, \ ++ SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, \ ++ SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, \ ++ SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, \ ++ SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, \ ++ SYS_GETPGRP = 81 // { int getpgrp(void); } ++ SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } ++ SYS_SETITIMER = 83 // { int setitimer(u_int which, struct \ ++ SYS_SWAPON = 85 // { int swapon(char *name); } ++ SYS_GETITIMER = 86 // { int getitimer(u_int which, \ ++ SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } ++ SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } ++ SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } ++ SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, \ ++ SYS_FSYNC = 95 // { int fsync(int fd); } ++ SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, \ ++ SYS_SOCKET = 97 // { int socket(int domain, int type, \ ++ SYS_CONNECT = 98 // { int connect(int s, caddr_t name, \ ++ SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } ++ SYS_BIND = 104 // { int bind(int s, caddr_t name, \ ++ SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, \ ++ SYS_LISTEN = 106 // { int listen(int s, int backlog); } ++ SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, \ ++ SYS_GETRUSAGE = 117 // { int getrusage(int who, \ ++ SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, \ ++ SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, \ ++ SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, \ ++ SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, \ ++ SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } ++ SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } ++ SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } ++ SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } ++ SYS_RENAME = 128 // { int rename(char *from, char *to); } ++ SYS_FLOCK = 131 // { int flock(int fd, int how); } ++ SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } ++ SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, \ ++ SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } ++ SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, \ ++ SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } ++ SYS_RMDIR = 137 // { int rmdir(char *path); } ++ SYS_UTIMES = 138 // { int utimes(char *path, \ ++ SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, \ ++ SYS_SETSID = 147 // { int setsid(void); } ++ SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, \ ++ SYS_LGETFH = 160 // { int lgetfh(char *fname, \ ++ SYS_GETFH = 161 // { int getfh(char *fname, \ ++ SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } ++ SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, \ ++ SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, \ ++ SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, \ ++ SYS_SETFIB = 175 // { int setfib(int fibnum); } ++ SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } ++ SYS_SETGID = 181 // { int setgid(gid_t gid); } ++ SYS_SETEGID = 182 // { int setegid(gid_t egid); } ++ SYS_SETEUID = 183 // { int seteuid(uid_t euid); } ++ SYS_STAT = 188 // { int stat(char *path, struct stat *ub); } ++ SYS_FSTAT = 189 // { int fstat(int fd, struct stat *sb); } ++ SYS_LSTAT = 190 // { int lstat(char *path, struct stat *ub); } ++ SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } ++ SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } ++ SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, \ ++ SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, \ ++ SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, \ ++ SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, \ ++ SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, \ ++ SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, \ ++ SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, \ ++ SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, \ ++ SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } ++ SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } ++ SYS_UNDELETE = 205 // { int undelete(char *path); } ++ SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } ++ SYS_GETPGID = 207 // { int getpgid(pid_t pid); } ++ SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, \ ++ SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, \ ++ SYS_CLOCK_SETTIME = 233 // { int clock_settime( \ ++ SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, \ ++ SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, \ ++ SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } ++ SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, \ ++ SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct \ ++ SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } ++ SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, \ ++ SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } ++ SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( \ ++ SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( \ ++ SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,\ ++ SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } ++ SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, \ ++ SYS_RFORK = 251 // { int rfork(int flags); } ++ SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, \ ++ SYS_ISSETUGID = 253 // { int issetugid(void); } ++ SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } ++ SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, \ ++ SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } ++ SYS_LUTIMES = 276 // { int lutimes(char *path, \ ++ SYS_NSTAT = 278 // { int nstat(char *path, struct nstat *ub); } ++ SYS_NFSTAT = 279 // { int nfstat(int fd, struct nstat *sb); } ++ SYS_NLSTAT = 280 // { int nlstat(char *path, struct nstat *ub); } ++ SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, \ ++ SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, \ ++ SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, \ ++ SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, \ ++ SYS_MODNEXT = 300 // { int modnext(int modid); } ++ SYS_MODSTAT = 301 // { int modstat(int modid, \ ++ SYS_MODFNEXT = 302 // { int modfnext(int modid); } ++ SYS_MODFIND = 303 // { int modfind(const char *name); } ++ SYS_KLDLOAD = 304 // { int kldload(const char *file); } ++ SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } ++ SYS_KLDFIND = 306 // { int kldfind(const char *file); } ++ SYS_KLDNEXT = 307 // { int kldnext(int fileid); } ++ SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct \ ++ SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } ++ SYS_GETSID = 310 // { int getsid(pid_t pid); } ++ SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, \ ++ SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, \ ++ SYS_YIELD = 321 // { int yield(void); } ++ SYS_MLOCKALL = 324 // { int mlockall(int how); } ++ SYS_MUNLOCKALL = 325 // { int munlockall(void); } ++ SYS___GETCWD = 326 // { int __getcwd(char *buf, u_int buflen); } ++ SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, \ ++ SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct \ ++ SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int \ ++ SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } ++ SYS_SCHED_YIELD = 331 // { int sched_yield (void); } ++ SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } ++ SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } ++ SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, \ ++ SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } ++ SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, \ ++ SYS_JAIL = 338 // { int jail(struct jail *jail); } ++ SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, \ ++ SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } ++ SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } ++ SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, \ ++ SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, \ ++ SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, \ ++ SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, \ ++ SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, \ ++ SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, \ ++ SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, \ ++ SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, \ ++ SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, \ ++ SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, \ ++ SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, \ ++ SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( \ ++ SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( \ ++ SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, \ ++ SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, \ ++ SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, \ ++ SYS_KQUEUE = 362 // { int kqueue(void); } ++ SYS_KEVENT = 363 // { int kevent(int fd, \ ++ SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, \ ++ SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, \ ++ SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, \ ++ SYS___SETUGID = 374 // { int __setugid(int flag); } ++ SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } ++ SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, \ ++ SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } ++ SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } ++ SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, \ ++ SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, \ ++ SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, \ ++ SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, \ ++ SYS_KENV = 390 // { int kenv(int what, const char *name, \ ++ SYS_LCHFLAGS = 391 // { int lchflags(const char *path, \ ++ SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, \ ++ SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, \ ++ SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, \ ++ SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, \ ++ SYS_STATFS = 396 // { int statfs(char *path, \ ++ SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } ++ SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, \ ++ SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, \ ++ SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, \ ++ SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, \ ++ SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( \ ++ SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( \ ++ SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( \ ++ SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, \ ++ SYS_SIGACTION = 416 // { int sigaction(int sig, \ ++ SYS_SIGRETURN = 417 // { int sigreturn( \ ++ SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } ++ SYS_SETCONTEXT = 422 // { int setcontext( \ ++ SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, \ ++ SYS_SWAPOFF = 424 // { int swapoff(const char *name); } ++ SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, \ ++ SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, \ ++ SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, \ ++ SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, \ ++ SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, \ ++ SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, \ ++ SYS_THR_EXIT = 431 // { void thr_exit(long *state); } ++ SYS_THR_SELF = 432 // { int thr_self(long *id); } ++ SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } ++ SYS__UMTX_LOCK = 434 // { int _umtx_lock(struct umtx *umtx); } ++ SYS__UMTX_UNLOCK = 435 // { int _umtx_unlock(struct umtx *umtx); } ++ SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } ++ SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, \ ++ SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( \ ++ SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( \ ++ SYS_THR_SUSPEND = 442 // { int thr_suspend( \ ++ SYS_THR_WAKE = 443 // { int thr_wake(long id); } ++ SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } ++ SYS_AUDIT = 445 // { int audit(const void *record, \ ++ SYS_AUDITON = 446 // { int auditon(int cmd, void *data, \ ++ SYS_GETAUID = 447 // { int getauid(uid_t *auid); } ++ SYS_SETAUID = 448 // { int setauid(uid_t *auid); } ++ SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } ++ SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } ++ SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( \ ++ SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( \ ++ SYS_AUDITCTL = 453 // { int auditctl(char *path); } ++ SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, \ ++ SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, \ ++ SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } ++ SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } ++ SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } ++ SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, \ ++ SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } ++ SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, \ ++ SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, \ ++ SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, \ ++ SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, \ ++ SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, \ ++ SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, \ ++ SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, \ ++ SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } ++ SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } ++ SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } ++ SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, \ ++ SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } ++ SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } ++ SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, \ ++ SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, \ ++ SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, \ ++ SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, \ ++ SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, \ ++ SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, \ ++ SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, \ ++ SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, \ ++ SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, \ ++ SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, \ ++ SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, \ ++ SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } ++ SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } ++ SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, \ ++ SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, \ ++ SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, \ ++ SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, \ ++ SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, \ ++ SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } ++ SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } ++ SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, \ ++ SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, \ ++ SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } ++ SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } ++ SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } ++ SYS_CAP_NEW = 514 // { int cap_new(int fd, uint64_t rights); } ++ SYS_CAP_GETRIGHTS = 515 // { int cap_getrights(int fd, \ ++ SYS_CAP_ENTER = 516 // { int cap_enter(void); } ++ SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } ++ SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } ++ SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } ++ SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } ++ SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, \ ++ SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, \ ++ SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } ++ SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, \ ++ SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, \ ++ SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, \ ++ SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, \ ++ SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, \ ++ SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, \ ++ SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, \ ++ SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, \ ++ SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, \ ++ SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, \ ++ SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, \ ++ SYS_ACCEPT4 = 541 // { int accept4(int s, \ ++ SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } ++ SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, \ ++ SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, \ ++) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go +new file mode 100644 +index 0000000..57a60ea +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go +@@ -0,0 +1,351 @@ ++// mksysnum_freebsd.pl ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT ++ ++// +build amd64,freebsd ++ ++package unix ++ ++const ( ++ // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int ++ SYS_EXIT = 1 // { void sys_exit(int rval); } exit \ ++ SYS_FORK = 2 // { int fork(void); } ++ SYS_READ = 3 // { ssize_t read(int fd, void *buf, \ ++ SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, \ ++ SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } ++ SYS_CLOSE = 6 // { int close(int fd); } ++ SYS_WAIT4 = 7 // { int wait4(int pid, int *status, \ ++ SYS_LINK = 9 // { int link(char *path, char *link); } ++ SYS_UNLINK = 10 // { int unlink(char *path); } ++ SYS_CHDIR = 12 // { int chdir(char *path); } ++ SYS_FCHDIR = 13 // { int fchdir(int fd); } ++ SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); } ++ SYS_CHMOD = 15 // { int chmod(char *path, int mode); } ++ SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } ++ SYS_OBREAK = 17 // { int obreak(char *nsize); } break \ ++ SYS_GETPID = 20 // { pid_t getpid(void); } ++ SYS_MOUNT = 21 // { int mount(char *type, char *path, \ ++ SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } ++ SYS_SETUID = 23 // { int setuid(uid_t uid); } ++ SYS_GETUID = 24 // { uid_t getuid(void); } ++ SYS_GETEUID = 25 // { uid_t geteuid(void); } ++ SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, \ ++ SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, \ ++ SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, \ ++ SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, \ ++ SYS_ACCEPT = 30 // { int accept(int s, \ ++ SYS_GETPEERNAME = 31 // { int getpeername(int fdes, \ ++ SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, \ ++ SYS_ACCESS = 33 // { int access(char *path, int amode); } ++ SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } ++ SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } ++ SYS_SYNC = 36 // { int sync(void); } ++ SYS_KILL = 37 // { int kill(int pid, int signum); } ++ SYS_GETPPID = 39 // { pid_t getppid(void); } ++ SYS_DUP = 41 // { int dup(u_int fd); } ++ SYS_PIPE = 42 // { int pipe(void); } ++ SYS_GETEGID = 43 // { gid_t getegid(void); } ++ SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, \ ++ SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, \ ++ SYS_GETGID = 47 // { gid_t getgid(void); } ++ SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int \ ++ SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } ++ SYS_ACCT = 51 // { int acct(char *path); } ++ SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, \ ++ SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, \ ++ SYS_REBOOT = 55 // { int reboot(int opt); } ++ SYS_REVOKE = 56 // { int revoke(char *path); } ++ SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } ++ SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, \ ++ SYS_EXECVE = 59 // { int execve(char *fname, char **argv, \ ++ SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args \ ++ SYS_CHROOT = 61 // { int chroot(char *path); } ++ SYS_MSYNC = 65 // { int msync(void *addr, size_t len, \ ++ SYS_VFORK = 66 // { int vfork(void); } ++ SYS_SBRK = 69 // { int sbrk(int incr); } ++ SYS_SSTK = 70 // { int sstk(int incr); } ++ SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise \ ++ SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } ++ SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, \ ++ SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, \ ++ SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, \ ++ SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, \ ++ SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, \ ++ SYS_GETPGRP = 81 // { int getpgrp(void); } ++ SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } ++ SYS_SETITIMER = 83 // { int setitimer(u_int which, struct \ ++ SYS_SWAPON = 85 // { int swapon(char *name); } ++ SYS_GETITIMER = 86 // { int getitimer(u_int which, \ ++ SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } ++ SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } ++ SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } ++ SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, \ ++ SYS_FSYNC = 95 // { int fsync(int fd); } ++ SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, \ ++ SYS_SOCKET = 97 // { int socket(int domain, int type, \ ++ SYS_CONNECT = 98 // { int connect(int s, caddr_t name, \ ++ SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } ++ SYS_BIND = 104 // { int bind(int s, caddr_t name, \ ++ SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, \ ++ SYS_LISTEN = 106 // { int listen(int s, int backlog); } ++ SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, \ ++ SYS_GETRUSAGE = 117 // { int getrusage(int who, \ ++ SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, \ ++ SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, \ ++ SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, \ ++ SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, \ ++ SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } ++ SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } ++ SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } ++ SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } ++ SYS_RENAME = 128 // { int rename(char *from, char *to); } ++ SYS_FLOCK = 131 // { int flock(int fd, int how); } ++ SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } ++ SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, \ ++ SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } ++ SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, \ ++ SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } ++ SYS_RMDIR = 137 // { int rmdir(char *path); } ++ SYS_UTIMES = 138 // { int utimes(char *path, \ ++ SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, \ ++ SYS_SETSID = 147 // { int setsid(void); } ++ SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, \ ++ SYS_LGETFH = 160 // { int lgetfh(char *fname, \ ++ SYS_GETFH = 161 // { int getfh(char *fname, \ ++ SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } ++ SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, \ ++ SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, \ ++ SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, \ ++ SYS_SETFIB = 175 // { int setfib(int fibnum); } ++ SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } ++ SYS_SETGID = 181 // { int setgid(gid_t gid); } ++ SYS_SETEGID = 182 // { int setegid(gid_t egid); } ++ SYS_SETEUID = 183 // { int seteuid(uid_t euid); } ++ SYS_STAT = 188 // { int stat(char *path, struct stat *ub); } ++ SYS_FSTAT = 189 // { int fstat(int fd, struct stat *sb); } ++ SYS_LSTAT = 190 // { int lstat(char *path, struct stat *ub); } ++ SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } ++ SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } ++ SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, \ ++ SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, \ ++ SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, \ ++ SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, \ ++ SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, \ ++ SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, \ ++ SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, \ ++ SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, \ ++ SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } ++ SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } ++ SYS_UNDELETE = 205 // { int undelete(char *path); } ++ SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } ++ SYS_GETPGID = 207 // { int getpgid(pid_t pid); } ++ SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, \ ++ SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, \ ++ SYS_CLOCK_SETTIME = 233 // { int clock_settime( \ ++ SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, \ ++ SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, \ ++ SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } ++ SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, \ ++ SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct \ ++ SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } ++ SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, \ ++ SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } ++ SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( \ ++ SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( \ ++ SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,\ ++ SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } ++ SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, \ ++ SYS_RFORK = 251 // { int rfork(int flags); } ++ SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, \ ++ SYS_ISSETUGID = 253 // { int issetugid(void); } ++ SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } ++ SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, \ ++ SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } ++ SYS_LUTIMES = 276 // { int lutimes(char *path, \ ++ SYS_NSTAT = 278 // { int nstat(char *path, struct nstat *ub); } ++ SYS_NFSTAT = 279 // { int nfstat(int fd, struct nstat *sb); } ++ SYS_NLSTAT = 280 // { int nlstat(char *path, struct nstat *ub); } ++ SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, \ ++ SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, \ ++ SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, \ ++ SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, \ ++ SYS_MODNEXT = 300 // { int modnext(int modid); } ++ SYS_MODSTAT = 301 // { int modstat(int modid, \ ++ SYS_MODFNEXT = 302 // { int modfnext(int modid); } ++ SYS_MODFIND = 303 // { int modfind(const char *name); } ++ SYS_KLDLOAD = 304 // { int kldload(const char *file); } ++ SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } ++ SYS_KLDFIND = 306 // { int kldfind(const char *file); } ++ SYS_KLDNEXT = 307 // { int kldnext(int fileid); } ++ SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct \ ++ SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } ++ SYS_GETSID = 310 // { int getsid(pid_t pid); } ++ SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, \ ++ SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, \ ++ SYS_YIELD = 321 // { int yield(void); } ++ SYS_MLOCKALL = 324 // { int mlockall(int how); } ++ SYS_MUNLOCKALL = 325 // { int munlockall(void); } ++ SYS___GETCWD = 326 // { int __getcwd(char *buf, u_int buflen); } ++ SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, \ ++ SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct \ ++ SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int \ ++ SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } ++ SYS_SCHED_YIELD = 331 // { int sched_yield (void); } ++ SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } ++ SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } ++ SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, \ ++ SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } ++ SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, \ ++ SYS_JAIL = 338 // { int jail(struct jail *jail); } ++ SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, \ ++ SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } ++ SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } ++ SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, \ ++ SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, \ ++ SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, \ ++ SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, \ ++ SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, \ ++ SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, \ ++ SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, \ ++ SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, \ ++ SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, \ ++ SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, \ ++ SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, \ ++ SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( \ ++ SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( \ ++ SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, \ ++ SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, \ ++ SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, \ ++ SYS_KQUEUE = 362 // { int kqueue(void); } ++ SYS_KEVENT = 363 // { int kevent(int fd, \ ++ SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, \ ++ SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, \ ++ SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, \ ++ SYS___SETUGID = 374 // { int __setugid(int flag); } ++ SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } ++ SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, \ ++ SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } ++ SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } ++ SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, \ ++ SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, \ ++ SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, \ ++ SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, \ ++ SYS_KENV = 390 // { int kenv(int what, const char *name, \ ++ SYS_LCHFLAGS = 391 // { int lchflags(const char *path, \ ++ SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, \ ++ SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, \ ++ SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, \ ++ SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, \ ++ SYS_STATFS = 396 // { int statfs(char *path, \ ++ SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } ++ SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, \ ++ SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, \ ++ SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, \ ++ SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, \ ++ SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( \ ++ SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( \ ++ SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( \ ++ SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, \ ++ SYS_SIGACTION = 416 // { int sigaction(int sig, \ ++ SYS_SIGRETURN = 417 // { int sigreturn( \ ++ SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } ++ SYS_SETCONTEXT = 422 // { int setcontext( \ ++ SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, \ ++ SYS_SWAPOFF = 424 // { int swapoff(const char *name); } ++ SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, \ ++ SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, \ ++ SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, \ ++ SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, \ ++ SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, \ ++ SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, \ ++ SYS_THR_EXIT = 431 // { void thr_exit(long *state); } ++ SYS_THR_SELF = 432 // { int thr_self(long *id); } ++ SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } ++ SYS__UMTX_LOCK = 434 // { int _umtx_lock(struct umtx *umtx); } ++ SYS__UMTX_UNLOCK = 435 // { int _umtx_unlock(struct umtx *umtx); } ++ SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } ++ SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, \ ++ SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( \ ++ SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( \ ++ SYS_THR_SUSPEND = 442 // { int thr_suspend( \ ++ SYS_THR_WAKE = 443 // { int thr_wake(long id); } ++ SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } ++ SYS_AUDIT = 445 // { int audit(const void *record, \ ++ SYS_AUDITON = 446 // { int auditon(int cmd, void *data, \ ++ SYS_GETAUID = 447 // { int getauid(uid_t *auid); } ++ SYS_SETAUID = 448 // { int setauid(uid_t *auid); } ++ SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } ++ SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } ++ SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( \ ++ SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( \ ++ SYS_AUDITCTL = 453 // { int auditctl(char *path); } ++ SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, \ ++ SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, \ ++ SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } ++ SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } ++ SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } ++ SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, \ ++ SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } ++ SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, \ ++ SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, \ ++ SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, \ ++ SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, \ ++ SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, \ ++ SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, \ ++ SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, \ ++ SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } ++ SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } ++ SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } ++ SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, \ ++ SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } ++ SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } ++ SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, \ ++ SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, \ ++ SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, \ ++ SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, \ ++ SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, \ ++ SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, \ ++ SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, \ ++ SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, \ ++ SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, \ ++ SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, \ ++ SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, \ ++ SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } ++ SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } ++ SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, \ ++ SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, \ ++ SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, \ ++ SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, \ ++ SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, \ ++ SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } ++ SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } ++ SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, \ ++ SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, \ ++ SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } ++ SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } ++ SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } ++ SYS_CAP_NEW = 514 // { int cap_new(int fd, uint64_t rights); } ++ SYS_CAP_GETRIGHTS = 515 // { int cap_getrights(int fd, \ ++ SYS_CAP_ENTER = 516 // { int cap_enter(void); } ++ SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } ++ SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } ++ SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } ++ SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } ++ SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, \ ++ SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, \ ++ SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } ++ SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, \ ++ SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, \ ++ SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, \ ++ SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, \ ++ SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, \ ++ SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, \ ++ SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, \ ++ SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, \ ++ SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, \ ++ SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, \ ++ SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, \ ++ SYS_ACCEPT4 = 541 // { int accept4(int s, \ ++ SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } ++ SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, \ ++ SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, \ ++) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go +new file mode 100644 +index 0000000..206b9f6 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go +@@ -0,0 +1,351 @@ ++// mksysnum_freebsd.pl ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT ++ ++// +build arm,freebsd ++ ++package unix ++ ++const ( ++ // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int ++ SYS_EXIT = 1 // { void sys_exit(int rval); } exit \ ++ SYS_FORK = 2 // { int fork(void); } ++ SYS_READ = 3 // { ssize_t read(int fd, void *buf, \ ++ SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, \ ++ SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } ++ SYS_CLOSE = 6 // { int close(int fd); } ++ SYS_WAIT4 = 7 // { int wait4(int pid, int *status, \ ++ SYS_LINK = 9 // { int link(char *path, char *link); } ++ SYS_UNLINK = 10 // { int unlink(char *path); } ++ SYS_CHDIR = 12 // { int chdir(char *path); } ++ SYS_FCHDIR = 13 // { int fchdir(int fd); } ++ SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); } ++ SYS_CHMOD = 15 // { int chmod(char *path, int mode); } ++ SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } ++ SYS_OBREAK = 17 // { int obreak(char *nsize); } break \ ++ SYS_GETPID = 20 // { pid_t getpid(void); } ++ SYS_MOUNT = 21 // { int mount(char *type, char *path, \ ++ SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } ++ SYS_SETUID = 23 // { int setuid(uid_t uid); } ++ SYS_GETUID = 24 // { uid_t getuid(void); } ++ SYS_GETEUID = 25 // { uid_t geteuid(void); } ++ SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, \ ++ SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, \ ++ SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, \ ++ SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, \ ++ SYS_ACCEPT = 30 // { int accept(int s, \ ++ SYS_GETPEERNAME = 31 // { int getpeername(int fdes, \ ++ SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, \ ++ SYS_ACCESS = 33 // { int access(char *path, int amode); } ++ SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } ++ SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } ++ SYS_SYNC = 36 // { int sync(void); } ++ SYS_KILL = 37 // { int kill(int pid, int signum); } ++ SYS_GETPPID = 39 // { pid_t getppid(void); } ++ SYS_DUP = 41 // { int dup(u_int fd); } ++ SYS_PIPE = 42 // { int pipe(void); } ++ SYS_GETEGID = 43 // { gid_t getegid(void); } ++ SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, \ ++ SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, \ ++ SYS_GETGID = 47 // { gid_t getgid(void); } ++ SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int \ ++ SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } ++ SYS_ACCT = 51 // { int acct(char *path); } ++ SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, \ ++ SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, \ ++ SYS_REBOOT = 55 // { int reboot(int opt); } ++ SYS_REVOKE = 56 // { int revoke(char *path); } ++ SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } ++ SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, \ ++ SYS_EXECVE = 59 // { int execve(char *fname, char **argv, \ ++ SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args \ ++ SYS_CHROOT = 61 // { int chroot(char *path); } ++ SYS_MSYNC = 65 // { int msync(void *addr, size_t len, \ ++ SYS_VFORK = 66 // { int vfork(void); } ++ SYS_SBRK = 69 // { int sbrk(int incr); } ++ SYS_SSTK = 70 // { int sstk(int incr); } ++ SYS_OVADVISE = 72 // { int ovadvise(int anom); } vadvise \ ++ SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } ++ SYS_MPROTECT = 74 // { int mprotect(const void *addr, size_t len, \ ++ SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, \ ++ SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, \ ++ SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, \ ++ SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, \ ++ SYS_GETPGRP = 81 // { int getpgrp(void); } ++ SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } ++ SYS_SETITIMER = 83 // { int setitimer(u_int which, struct \ ++ SYS_SWAPON = 85 // { int swapon(char *name); } ++ SYS_GETITIMER = 86 // { int getitimer(u_int which, \ ++ SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } ++ SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } ++ SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } ++ SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, \ ++ SYS_FSYNC = 95 // { int fsync(int fd); } ++ SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, \ ++ SYS_SOCKET = 97 // { int socket(int domain, int type, \ ++ SYS_CONNECT = 98 // { int connect(int s, caddr_t name, \ ++ SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } ++ SYS_BIND = 104 // { int bind(int s, caddr_t name, \ ++ SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, \ ++ SYS_LISTEN = 106 // { int listen(int s, int backlog); } ++ SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, \ ++ SYS_GETRUSAGE = 117 // { int getrusage(int who, \ ++ SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, \ ++ SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, \ ++ SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, \ ++ SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, \ ++ SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } ++ SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } ++ SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } ++ SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } ++ SYS_RENAME = 128 // { int rename(char *from, char *to); } ++ SYS_FLOCK = 131 // { int flock(int fd, int how); } ++ SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } ++ SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, \ ++ SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } ++ SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, \ ++ SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } ++ SYS_RMDIR = 137 // { int rmdir(char *path); } ++ SYS_UTIMES = 138 // { int utimes(char *path, \ ++ SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, \ ++ SYS_SETSID = 147 // { int setsid(void); } ++ SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, \ ++ SYS_LGETFH = 160 // { int lgetfh(char *fname, \ ++ SYS_GETFH = 161 // { int getfh(char *fname, \ ++ SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } ++ SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, \ ++ SYS_FREEBSD6_PREAD = 173 // { ssize_t freebsd6_pread(int fd, void *buf, \ ++ SYS_FREEBSD6_PWRITE = 174 // { ssize_t freebsd6_pwrite(int fd, \ ++ SYS_SETFIB = 175 // { int setfib(int fibnum); } ++ SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } ++ SYS_SETGID = 181 // { int setgid(gid_t gid); } ++ SYS_SETEGID = 182 // { int setegid(gid_t egid); } ++ SYS_SETEUID = 183 // { int seteuid(uid_t euid); } ++ SYS_STAT = 188 // { int stat(char *path, struct stat *ub); } ++ SYS_FSTAT = 189 // { int fstat(int fd, struct stat *sb); } ++ SYS_LSTAT = 190 // { int lstat(char *path, struct stat *ub); } ++ SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } ++ SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } ++ SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, \ ++ SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, \ ++ SYS_GETDIRENTRIES = 196 // { int getdirentries(int fd, char *buf, \ ++ SYS_FREEBSD6_MMAP = 197 // { caddr_t freebsd6_mmap(caddr_t addr, \ ++ SYS_FREEBSD6_LSEEK = 199 // { off_t freebsd6_lseek(int fd, int pad, \ ++ SYS_FREEBSD6_TRUNCATE = 200 // { int freebsd6_truncate(char *path, int pad, \ ++ SYS_FREEBSD6_FTRUNCATE = 201 // { int freebsd6_ftruncate(int fd, int pad, \ ++ SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, \ ++ SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } ++ SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } ++ SYS_UNDELETE = 205 // { int undelete(char *path); } ++ SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } ++ SYS_GETPGID = 207 // { int getpgid(pid_t pid); } ++ SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, \ ++ SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, \ ++ SYS_CLOCK_SETTIME = 233 // { int clock_settime( \ ++ SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, \ ++ SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, \ ++ SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } ++ SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, \ ++ SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct \ ++ SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } ++ SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, \ ++ SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } ++ SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate( \ ++ SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate( \ ++ SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id,\ ++ SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } ++ SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, \ ++ SYS_RFORK = 251 // { int rfork(int flags); } ++ SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, \ ++ SYS_ISSETUGID = 253 // { int issetugid(void); } ++ SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } ++ SYS_GETDENTS = 272 // { int getdents(int fd, char *buf, \ ++ SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } ++ SYS_LUTIMES = 276 // { int lutimes(char *path, \ ++ SYS_NSTAT = 278 // { int nstat(char *path, struct nstat *ub); } ++ SYS_NFSTAT = 279 // { int nfstat(int fd, struct nstat *sb); } ++ SYS_NLSTAT = 280 // { int nlstat(char *path, struct nstat *ub); } ++ SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, \ ++ SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, \ ++ SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, \ ++ SYS_FHSTAT = 299 // { int fhstat(const struct fhandle *u_fhp, \ ++ SYS_MODNEXT = 300 // { int modnext(int modid); } ++ SYS_MODSTAT = 301 // { int modstat(int modid, \ ++ SYS_MODFNEXT = 302 // { int modfnext(int modid); } ++ SYS_MODFIND = 303 // { int modfind(const char *name); } ++ SYS_KLDLOAD = 304 // { int kldload(const char *file); } ++ SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } ++ SYS_KLDFIND = 306 // { int kldfind(const char *file); } ++ SYS_KLDNEXT = 307 // { int kldnext(int fileid); } ++ SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct \ ++ SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } ++ SYS_GETSID = 310 // { int getsid(pid_t pid); } ++ SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, \ ++ SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, \ ++ SYS_YIELD = 321 // { int yield(void); } ++ SYS_MLOCKALL = 324 // { int mlockall(int how); } ++ SYS_MUNLOCKALL = 325 // { int munlockall(void); } ++ SYS___GETCWD = 326 // { int __getcwd(char *buf, u_int buflen); } ++ SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, \ ++ SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct \ ++ SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int \ ++ SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } ++ SYS_SCHED_YIELD = 331 // { int sched_yield (void); } ++ SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } ++ SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } ++ SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, \ ++ SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } ++ SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, \ ++ SYS_JAIL = 338 // { int jail(struct jail *jail); } ++ SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, \ ++ SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } ++ SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } ++ SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, \ ++ SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, \ ++ SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, \ ++ SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, \ ++ SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, \ ++ SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, \ ++ SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, \ ++ SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, \ ++ SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, \ ++ SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, \ ++ SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, \ ++ SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file( \ ++ SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file( \ ++ SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, \ ++ SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, \ ++ SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, \ ++ SYS_KQUEUE = 362 // { int kqueue(void); } ++ SYS_KEVENT = 363 // { int kevent(int fd, \ ++ SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, \ ++ SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, \ ++ SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, \ ++ SYS___SETUGID = 374 // { int __setugid(int flag); } ++ SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } ++ SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, \ ++ SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } ++ SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } ++ SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, \ ++ SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, \ ++ SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, \ ++ SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, \ ++ SYS_KENV = 390 // { int kenv(int what, const char *name, \ ++ SYS_LCHFLAGS = 391 // { int lchflags(const char *path, \ ++ SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, \ ++ SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, \ ++ SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, \ ++ SYS_GETFSSTAT = 395 // { int getfsstat(struct statfs *buf, \ ++ SYS_STATFS = 396 // { int statfs(char *path, \ ++ SYS_FSTATFS = 397 // { int fstatfs(int fd, struct statfs *buf); } ++ SYS_FHSTATFS = 398 // { int fhstatfs(const struct fhandle *u_fhp, \ ++ SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, \ ++ SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, \ ++ SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, \ ++ SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link( \ ++ SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link( \ ++ SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link( \ ++ SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, \ ++ SYS_SIGACTION = 416 // { int sigaction(int sig, \ ++ SYS_SIGRETURN = 417 // { int sigreturn( \ ++ SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } ++ SYS_SETCONTEXT = 422 // { int setcontext( \ ++ SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, \ ++ SYS_SWAPOFF = 424 // { int swapoff(const char *name); } ++ SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, \ ++ SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, \ ++ SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, \ ++ SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, \ ++ SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, \ ++ SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, \ ++ SYS_THR_EXIT = 431 // { void thr_exit(long *state); } ++ SYS_THR_SELF = 432 // { int thr_self(long *id); } ++ SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } ++ SYS__UMTX_LOCK = 434 // { int _umtx_lock(struct umtx *umtx); } ++ SYS__UMTX_UNLOCK = 435 // { int _umtx_unlock(struct umtx *umtx); } ++ SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } ++ SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, \ ++ SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file( \ ++ SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link( \ ++ SYS_THR_SUSPEND = 442 // { int thr_suspend( \ ++ SYS_THR_WAKE = 443 // { int thr_wake(long id); } ++ SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } ++ SYS_AUDIT = 445 // { int audit(const void *record, \ ++ SYS_AUDITON = 446 // { int auditon(int cmd, void *data, \ ++ SYS_GETAUID = 447 // { int getauid(uid_t *auid); } ++ SYS_SETAUID = 448 // { int setauid(uid_t *auid); } ++ SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } ++ SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } ++ SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr( \ ++ SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr( \ ++ SYS_AUDITCTL = 453 // { int auditctl(char *path); } ++ SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, \ ++ SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, \ ++ SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } ++ SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } ++ SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } ++ SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, \ ++ SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } ++ SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, \ ++ SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, \ ++ SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, \ ++ SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, \ ++ SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, \ ++ SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, \ ++ SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, \ ++ SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } ++ SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } ++ SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } ++ SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, \ ++ SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } ++ SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } ++ SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, \ ++ SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, \ ++ SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, \ ++ SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, \ ++ SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, \ ++ SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, \ ++ SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, \ ++ SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, \ ++ SYS_FSTATAT = 493 // { int fstatat(int fd, char *path, \ ++ SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, \ ++ SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, \ ++ SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } ++ SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } ++ SYS_MKNODAT = 498 // { int mknodat(int fd, char *path, mode_t mode, \ ++ SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, \ ++ SYS_READLINKAT = 500 // { int readlinkat(int fd, char *path, char *buf, \ ++ SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, \ ++ SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, \ ++ SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } ++ SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } ++ SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, \ ++ SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, \ ++ SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } ++ SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } ++ SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } ++ SYS_CAP_NEW = 514 // { int cap_new(int fd, uint64_t rights); } ++ SYS_CAP_GETRIGHTS = 515 // { int cap_getrights(int fd, \ ++ SYS_CAP_ENTER = 516 // { int cap_enter(void); } ++ SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } ++ SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } ++ SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } ++ SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } ++ SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, \ ++ SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, \ ++ SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } ++ SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, \ ++ SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, \ ++ SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, \ ++ SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, \ ++ SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, \ ++ SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, \ ++ SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, \ ++ SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, \ ++ SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, \ ++ SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, \ ++ SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, \ ++ SYS_ACCEPT4 = 541 // { int accept4(int s, \ ++ SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } ++ SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, \ ++ SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, \ ++) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go +new file mode 100644 +index 0000000..206b3c2 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go +@@ -0,0 +1,388 @@ ++// mksysnum_linux.pl -Ilinux/usr/include -m32 -D__i386__ linux/usr/include/asm/unistd.h ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT ++ ++// +build 386,linux ++ ++package unix ++ ++const ( ++ SYS_RESTART_SYSCALL = 0 ++ SYS_EXIT = 1 ++ SYS_FORK = 2 ++ SYS_READ = 3 ++ SYS_WRITE = 4 ++ SYS_OPEN = 5 ++ SYS_CLOSE = 6 ++ SYS_WAITPID = 7 ++ SYS_CREAT = 8 ++ SYS_LINK = 9 ++ SYS_UNLINK = 10 ++ SYS_EXECVE = 11 ++ SYS_CHDIR = 12 ++ SYS_TIME = 13 ++ SYS_MKNOD = 14 ++ SYS_CHMOD = 15 ++ SYS_LCHOWN = 16 ++ SYS_BREAK = 17 ++ SYS_OLDSTAT = 18 ++ SYS_LSEEK = 19 ++ SYS_GETPID = 20 ++ SYS_MOUNT = 21 ++ SYS_UMOUNT = 22 ++ SYS_SETUID = 23 ++ SYS_GETUID = 24 ++ SYS_STIME = 25 ++ SYS_PTRACE = 26 ++ SYS_ALARM = 27 ++ SYS_OLDFSTAT = 28 ++ SYS_PAUSE = 29 ++ SYS_UTIME = 30 ++ SYS_STTY = 31 ++ SYS_GTTY = 32 ++ SYS_ACCESS = 33 ++ SYS_NICE = 34 ++ SYS_FTIME = 35 ++ SYS_SYNC = 36 ++ SYS_KILL = 37 ++ SYS_RENAME = 38 ++ SYS_MKDIR = 39 ++ SYS_RMDIR = 40 ++ SYS_DUP = 41 ++ SYS_PIPE = 42 ++ SYS_TIMES = 43 ++ SYS_PROF = 44 ++ SYS_BRK = 45 ++ SYS_SETGID = 46 ++ SYS_GETGID = 47 ++ SYS_SIGNAL = 48 ++ SYS_GETEUID = 49 ++ SYS_GETEGID = 50 ++ SYS_ACCT = 51 ++ SYS_UMOUNT2 = 52 ++ SYS_LOCK = 53 ++ SYS_IOCTL = 54 ++ SYS_FCNTL = 55 ++ SYS_MPX = 56 ++ SYS_SETPGID = 57 ++ SYS_ULIMIT = 58 ++ SYS_OLDOLDUNAME = 59 ++ SYS_UMASK = 60 ++ SYS_CHROOT = 61 ++ SYS_USTAT = 62 ++ SYS_DUP2 = 63 ++ SYS_GETPPID = 64 ++ SYS_GETPGRP = 65 ++ SYS_SETSID = 66 ++ SYS_SIGACTION = 67 ++ SYS_SGETMASK = 68 ++ SYS_SSETMASK = 69 ++ SYS_SETREUID = 70 ++ SYS_SETREGID = 71 ++ SYS_SIGSUSPEND = 72 ++ SYS_SIGPENDING = 73 ++ SYS_SETHOSTNAME = 74 ++ SYS_SETRLIMIT = 75 ++ SYS_GETRLIMIT = 76 ++ SYS_GETRUSAGE = 77 ++ SYS_GETTIMEOFDAY = 78 ++ SYS_SETTIMEOFDAY = 79 ++ SYS_GETGROUPS = 80 ++ SYS_SETGROUPS = 81 ++ SYS_SELECT = 82 ++ SYS_SYMLINK = 83 ++ SYS_OLDLSTAT = 84 ++ SYS_READLINK = 85 ++ SYS_USELIB = 86 ++ SYS_SWAPON = 87 ++ SYS_REBOOT = 88 ++ SYS_READDIR = 89 ++ SYS_MMAP = 90 ++ SYS_MUNMAP = 91 ++ SYS_TRUNCATE = 92 ++ SYS_FTRUNCATE = 93 ++ SYS_FCHMOD = 94 ++ SYS_FCHOWN = 95 ++ SYS_GETPRIORITY = 96 ++ SYS_SETPRIORITY = 97 ++ SYS_PROFIL = 98 ++ SYS_STATFS = 99 ++ SYS_FSTATFS = 100 ++ SYS_IOPERM = 101 ++ SYS_SOCKETCALL = 102 ++ SYS_SYSLOG = 103 ++ SYS_SETITIMER = 104 ++ SYS_GETITIMER = 105 ++ SYS_STAT = 106 ++ SYS_LSTAT = 107 ++ SYS_FSTAT = 108 ++ SYS_OLDUNAME = 109 ++ SYS_IOPL = 110 ++ SYS_VHANGUP = 111 ++ SYS_IDLE = 112 ++ SYS_VM86OLD = 113 ++ SYS_WAIT4 = 114 ++ SYS_SWAPOFF = 115 ++ SYS_SYSINFO = 116 ++ SYS_IPC = 117 ++ SYS_FSYNC = 118 ++ SYS_SIGRETURN = 119 ++ SYS_CLONE = 120 ++ SYS_SETDOMAINNAME = 121 ++ SYS_UNAME = 122 ++ SYS_MODIFY_LDT = 123 ++ SYS_ADJTIMEX = 124 ++ SYS_MPROTECT = 125 ++ SYS_SIGPROCMASK = 126 ++ SYS_CREATE_MODULE = 127 ++ SYS_INIT_MODULE = 128 ++ SYS_DELETE_MODULE = 129 ++ SYS_GET_KERNEL_SYMS = 130 ++ SYS_QUOTACTL = 131 ++ SYS_GETPGID = 132 ++ SYS_FCHDIR = 133 ++ SYS_BDFLUSH = 134 ++ SYS_SYSFS = 135 ++ SYS_PERSONALITY = 136 ++ SYS_AFS_SYSCALL = 137 ++ SYS_SETFSUID = 138 ++ SYS_SETFSGID = 139 ++ SYS__LLSEEK = 140 ++ SYS_GETDENTS = 141 ++ SYS__NEWSELECT = 142 ++ SYS_FLOCK = 143 ++ SYS_MSYNC = 144 ++ SYS_READV = 145 ++ SYS_WRITEV = 146 ++ SYS_GETSID = 147 ++ SYS_FDATASYNC = 148 ++ SYS__SYSCTL = 149 ++ SYS_MLOCK = 150 ++ SYS_MUNLOCK = 151 ++ SYS_MLOCKALL = 152 ++ SYS_MUNLOCKALL = 153 ++ SYS_SCHED_SETPARAM = 154 ++ SYS_SCHED_GETPARAM = 155 ++ SYS_SCHED_SETSCHEDULER = 156 ++ SYS_SCHED_GETSCHEDULER = 157 ++ SYS_SCHED_YIELD = 158 ++ SYS_SCHED_GET_PRIORITY_MAX = 159 ++ SYS_SCHED_GET_PRIORITY_MIN = 160 ++ SYS_SCHED_RR_GET_INTERVAL = 161 ++ SYS_NANOSLEEP = 162 ++ SYS_MREMAP = 163 ++ SYS_SETRESUID = 164 ++ SYS_GETRESUID = 165 ++ SYS_VM86 = 166 ++ SYS_QUERY_MODULE = 167 ++ SYS_POLL = 168 ++ SYS_NFSSERVCTL = 169 ++ SYS_SETRESGID = 170 ++ SYS_GETRESGID = 171 ++ SYS_PRCTL = 172 ++ SYS_RT_SIGRETURN = 173 ++ SYS_RT_SIGACTION = 174 ++ SYS_RT_SIGPROCMASK = 175 ++ SYS_RT_SIGPENDING = 176 ++ SYS_RT_SIGTIMEDWAIT = 177 ++ SYS_RT_SIGQUEUEINFO = 178 ++ SYS_RT_SIGSUSPEND = 179 ++ SYS_PREAD64 = 180 ++ SYS_PWRITE64 = 181 ++ SYS_CHOWN = 182 ++ SYS_GETCWD = 183 ++ SYS_CAPGET = 184 ++ SYS_CAPSET = 185 ++ SYS_SIGALTSTACK = 186 ++ SYS_SENDFILE = 187 ++ SYS_GETPMSG = 188 ++ SYS_PUTPMSG = 189 ++ SYS_VFORK = 190 ++ SYS_UGETRLIMIT = 191 ++ SYS_MMAP2 = 192 ++ SYS_TRUNCATE64 = 193 ++ SYS_FTRUNCATE64 = 194 ++ SYS_STAT64 = 195 ++ SYS_LSTAT64 = 196 ++ SYS_FSTAT64 = 197 ++ SYS_LCHOWN32 = 198 ++ SYS_GETUID32 = 199 ++ SYS_GETGID32 = 200 ++ SYS_GETEUID32 = 201 ++ SYS_GETEGID32 = 202 ++ SYS_SETREUID32 = 203 ++ SYS_SETREGID32 = 204 ++ SYS_GETGROUPS32 = 205 ++ SYS_SETGROUPS32 = 206 ++ SYS_FCHOWN32 = 207 ++ SYS_SETRESUID32 = 208 ++ SYS_GETRESUID32 = 209 ++ SYS_SETRESGID32 = 210 ++ SYS_GETRESGID32 = 211 ++ SYS_CHOWN32 = 212 ++ SYS_SETUID32 = 213 ++ SYS_SETGID32 = 214 ++ SYS_SETFSUID32 = 215 ++ SYS_SETFSGID32 = 216 ++ SYS_PIVOT_ROOT = 217 ++ SYS_MINCORE = 218 ++ SYS_MADVISE = 219 ++ SYS_GETDENTS64 = 220 ++ SYS_FCNTL64 = 221 ++ SYS_GETTID = 224 ++ SYS_READAHEAD = 225 ++ SYS_SETXATTR = 226 ++ SYS_LSETXATTR = 227 ++ SYS_FSETXATTR = 228 ++ SYS_GETXATTR = 229 ++ SYS_LGETXATTR = 230 ++ SYS_FGETXATTR = 231 ++ SYS_LISTXATTR = 232 ++ SYS_LLISTXATTR = 233 ++ SYS_FLISTXATTR = 234 ++ SYS_REMOVEXATTR = 235 ++ SYS_LREMOVEXATTR = 236 ++ SYS_FREMOVEXATTR = 237 ++ SYS_TKILL = 238 ++ SYS_SENDFILE64 = 239 ++ SYS_FUTEX = 240 ++ SYS_SCHED_SETAFFINITY = 241 ++ SYS_SCHED_GETAFFINITY = 242 ++ SYS_SET_THREAD_AREA = 243 ++ SYS_GET_THREAD_AREA = 244 ++ SYS_IO_SETUP = 245 ++ SYS_IO_DESTROY = 246 ++ SYS_IO_GETEVENTS = 247 ++ SYS_IO_SUBMIT = 248 ++ SYS_IO_CANCEL = 249 ++ SYS_FADVISE64 = 250 ++ SYS_EXIT_GROUP = 252 ++ SYS_LOOKUP_DCOOKIE = 253 ++ SYS_EPOLL_CREATE = 254 ++ SYS_EPOLL_CTL = 255 ++ SYS_EPOLL_WAIT = 256 ++ SYS_REMAP_FILE_PAGES = 257 ++ SYS_SET_TID_ADDRESS = 258 ++ SYS_TIMER_CREATE = 259 ++ SYS_TIMER_SETTIME = 260 ++ SYS_TIMER_GETTIME = 261 ++ SYS_TIMER_GETOVERRUN = 262 ++ SYS_TIMER_DELETE = 263 ++ SYS_CLOCK_SETTIME = 264 ++ SYS_CLOCK_GETTIME = 265 ++ SYS_CLOCK_GETRES = 266 ++ SYS_CLOCK_NANOSLEEP = 267 ++ SYS_STATFS64 = 268 ++ SYS_FSTATFS64 = 269 ++ SYS_TGKILL = 270 ++ SYS_UTIMES = 271 ++ SYS_FADVISE64_64 = 272 ++ SYS_VSERVER = 273 ++ SYS_MBIND = 274 ++ SYS_GET_MEMPOLICY = 275 ++ SYS_SET_MEMPOLICY = 276 ++ SYS_MQ_OPEN = 277 ++ SYS_MQ_UNLINK = 278 ++ SYS_MQ_TIMEDSEND = 279 ++ SYS_MQ_TIMEDRECEIVE = 280 ++ SYS_MQ_NOTIFY = 281 ++ SYS_MQ_GETSETATTR = 282 ++ SYS_KEXEC_LOAD = 283 ++ SYS_WAITID = 284 ++ SYS_ADD_KEY = 286 ++ SYS_REQUEST_KEY = 287 ++ SYS_KEYCTL = 288 ++ SYS_IOPRIO_SET = 289 ++ SYS_IOPRIO_GET = 290 ++ SYS_INOTIFY_INIT = 291 ++ SYS_INOTIFY_ADD_WATCH = 292 ++ SYS_INOTIFY_RM_WATCH = 293 ++ SYS_MIGRATE_PAGES = 294 ++ SYS_OPENAT = 295 ++ SYS_MKDIRAT = 296 ++ SYS_MKNODAT = 297 ++ SYS_FCHOWNAT = 298 ++ SYS_FUTIMESAT = 299 ++ SYS_FSTATAT64 = 300 ++ SYS_UNLINKAT = 301 ++ SYS_RENAMEAT = 302 ++ SYS_LINKAT = 303 ++ SYS_SYMLINKAT = 304 ++ SYS_READLINKAT = 305 ++ SYS_FCHMODAT = 306 ++ SYS_FACCESSAT = 307 ++ SYS_PSELECT6 = 308 ++ SYS_PPOLL = 309 ++ SYS_UNSHARE = 310 ++ SYS_SET_ROBUST_LIST = 311 ++ SYS_GET_ROBUST_LIST = 312 ++ SYS_SPLICE = 313 ++ SYS_SYNC_FILE_RANGE = 314 ++ SYS_TEE = 315 ++ SYS_VMSPLICE = 316 ++ SYS_MOVE_PAGES = 317 ++ SYS_GETCPU = 318 ++ SYS_EPOLL_PWAIT = 319 ++ SYS_UTIMENSAT = 320 ++ SYS_SIGNALFD = 321 ++ SYS_TIMERFD_CREATE = 322 ++ SYS_EVENTFD = 323 ++ SYS_FALLOCATE = 324 ++ SYS_TIMERFD_SETTIME = 325 ++ SYS_TIMERFD_GETTIME = 326 ++ SYS_SIGNALFD4 = 327 ++ SYS_EVENTFD2 = 328 ++ SYS_EPOLL_CREATE1 = 329 ++ SYS_DUP3 = 330 ++ SYS_PIPE2 = 331 ++ SYS_INOTIFY_INIT1 = 332 ++ SYS_PREADV = 333 ++ SYS_PWRITEV = 334 ++ SYS_RT_TGSIGQUEUEINFO = 335 ++ SYS_PERF_EVENT_OPEN = 336 ++ SYS_RECVMMSG = 337 ++ SYS_FANOTIFY_INIT = 338 ++ SYS_FANOTIFY_MARK = 339 ++ SYS_PRLIMIT64 = 340 ++ SYS_NAME_TO_HANDLE_AT = 341 ++ SYS_OPEN_BY_HANDLE_AT = 342 ++ SYS_CLOCK_ADJTIME = 343 ++ SYS_SYNCFS = 344 ++ SYS_SENDMMSG = 345 ++ SYS_SETNS = 346 ++ SYS_PROCESS_VM_READV = 347 ++ SYS_PROCESS_VM_WRITEV = 348 ++ SYS_KCMP = 349 ++ SYS_FINIT_MODULE = 350 ++ SYS_SCHED_SETATTR = 351 ++ SYS_SCHED_GETATTR = 352 ++ SYS_RENAMEAT2 = 353 ++ SYS_SECCOMP = 354 ++ SYS_GETRANDOM = 355 ++ SYS_MEMFD_CREATE = 356 ++ SYS_BPF = 357 ++ SYS_EXECVEAT = 358 ++ SYS_SOCKET = 359 ++ SYS_SOCKETPAIR = 360 ++ SYS_BIND = 361 ++ SYS_CONNECT = 362 ++ SYS_LISTEN = 363 ++ SYS_ACCEPT4 = 364 ++ SYS_GETSOCKOPT = 365 ++ SYS_SETSOCKOPT = 366 ++ SYS_GETSOCKNAME = 367 ++ SYS_GETPEERNAME = 368 ++ SYS_SENDTO = 369 ++ SYS_SENDMSG = 370 ++ SYS_RECVFROM = 371 ++ SYS_RECVMSG = 372 ++ SYS_SHUTDOWN = 373 ++ SYS_USERFAULTFD = 374 ++ SYS_MEMBARRIER = 375 ++ SYS_MLOCK2 = 376 ++ SYS_COPY_FILE_RANGE = 377 ++ SYS_PREADV2 = 378 ++ SYS_PWRITEV2 = 379 ++ SYS_PKEY_MPROTECT = 380 ++ SYS_PKEY_ALLOC = 381 ++ SYS_PKEY_FREE = 382 ++) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +new file mode 100644 +index 0000000..9042317 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +@@ -0,0 +1,341 @@ ++// mksysnum_linux.pl -Ilinux/usr/include -m64 linux/usr/include/asm/unistd.h ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT ++ ++// +build amd64,linux ++ ++package unix ++ ++const ( ++ SYS_READ = 0 ++ SYS_WRITE = 1 ++ SYS_OPEN = 2 ++ SYS_CLOSE = 3 ++ SYS_STAT = 4 ++ SYS_FSTAT = 5 ++ SYS_LSTAT = 6 ++ SYS_POLL = 7 ++ SYS_LSEEK = 8 ++ SYS_MMAP = 9 ++ SYS_MPROTECT = 10 ++ SYS_MUNMAP = 11 ++ SYS_BRK = 12 ++ SYS_RT_SIGACTION = 13 ++ SYS_RT_SIGPROCMASK = 14 ++ SYS_RT_SIGRETURN = 15 ++ SYS_IOCTL = 16 ++ SYS_PREAD64 = 17 ++ SYS_PWRITE64 = 18 ++ SYS_READV = 19 ++ SYS_WRITEV = 20 ++ SYS_ACCESS = 21 ++ SYS_PIPE = 22 ++ SYS_SELECT = 23 ++ SYS_SCHED_YIELD = 24 ++ SYS_MREMAP = 25 ++ SYS_MSYNC = 26 ++ SYS_MINCORE = 27 ++ SYS_MADVISE = 28 ++ SYS_SHMGET = 29 ++ SYS_SHMAT = 30 ++ SYS_SHMCTL = 31 ++ SYS_DUP = 32 ++ SYS_DUP2 = 33 ++ SYS_PAUSE = 34 ++ SYS_NANOSLEEP = 35 ++ SYS_GETITIMER = 36 ++ SYS_ALARM = 37 ++ SYS_SETITIMER = 38 ++ SYS_GETPID = 39 ++ SYS_SENDFILE = 40 ++ SYS_SOCKET = 41 ++ SYS_CONNECT = 42 ++ SYS_ACCEPT = 43 ++ SYS_SENDTO = 44 ++ SYS_RECVFROM = 45 ++ SYS_SENDMSG = 46 ++ SYS_RECVMSG = 47 ++ SYS_SHUTDOWN = 48 ++ SYS_BIND = 49 ++ SYS_LISTEN = 50 ++ SYS_GETSOCKNAME = 51 ++ SYS_GETPEERNAME = 52 ++ SYS_SOCKETPAIR = 53 ++ SYS_SETSOCKOPT = 54 ++ SYS_GETSOCKOPT = 55 ++ SYS_CLONE = 56 ++ SYS_FORK = 57 ++ SYS_VFORK = 58 ++ SYS_EXECVE = 59 ++ SYS_EXIT = 60 ++ SYS_WAIT4 = 61 ++ SYS_KILL = 62 ++ SYS_UNAME = 63 ++ SYS_SEMGET = 64 ++ SYS_SEMOP = 65 ++ SYS_SEMCTL = 66 ++ SYS_SHMDT = 67 ++ SYS_MSGGET = 68 ++ SYS_MSGSND = 69 ++ SYS_MSGRCV = 70 ++ SYS_MSGCTL = 71 ++ SYS_FCNTL = 72 ++ SYS_FLOCK = 73 ++ SYS_FSYNC = 74 ++ SYS_FDATASYNC = 75 ++ SYS_TRUNCATE = 76 ++ SYS_FTRUNCATE = 77 ++ SYS_GETDENTS = 78 ++ SYS_GETCWD = 79 ++ SYS_CHDIR = 80 ++ SYS_FCHDIR = 81 ++ SYS_RENAME = 82 ++ SYS_MKDIR = 83 ++ SYS_RMDIR = 84 ++ SYS_CREAT = 85 ++ SYS_LINK = 86 ++ SYS_UNLINK = 87 ++ SYS_SYMLINK = 88 ++ SYS_READLINK = 89 ++ SYS_CHMOD = 90 ++ SYS_FCHMOD = 91 ++ SYS_CHOWN = 92 ++ SYS_FCHOWN = 93 ++ SYS_LCHOWN = 94 ++ SYS_UMASK = 95 ++ SYS_GETTIMEOFDAY = 96 ++ SYS_GETRLIMIT = 97 ++ SYS_GETRUSAGE = 98 ++ SYS_SYSINFO = 99 ++ SYS_TIMES = 100 ++ SYS_PTRACE = 101 ++ SYS_GETUID = 102 ++ SYS_SYSLOG = 103 ++ SYS_GETGID = 104 ++ SYS_SETUID = 105 ++ SYS_SETGID = 106 ++ SYS_GETEUID = 107 ++ SYS_GETEGID = 108 ++ SYS_SETPGID = 109 ++ SYS_GETPPID = 110 ++ SYS_GETPGRP = 111 ++ SYS_SETSID = 112 ++ SYS_SETREUID = 113 ++ SYS_SETREGID = 114 ++ SYS_GETGROUPS = 115 ++ SYS_SETGROUPS = 116 ++ SYS_SETRESUID = 117 ++ SYS_GETRESUID = 118 ++ SYS_SETRESGID = 119 ++ SYS_GETRESGID = 120 ++ SYS_GETPGID = 121 ++ SYS_SETFSUID = 122 ++ SYS_SETFSGID = 123 ++ SYS_GETSID = 124 ++ SYS_CAPGET = 125 ++ SYS_CAPSET = 126 ++ SYS_RT_SIGPENDING = 127 ++ SYS_RT_SIGTIMEDWAIT = 128 ++ SYS_RT_SIGQUEUEINFO = 129 ++ SYS_RT_SIGSUSPEND = 130 ++ SYS_SIGALTSTACK = 131 ++ SYS_UTIME = 132 ++ SYS_MKNOD = 133 ++ SYS_USELIB = 134 ++ SYS_PERSONALITY = 135 ++ SYS_USTAT = 136 ++ SYS_STATFS = 137 ++ SYS_FSTATFS = 138 ++ SYS_SYSFS = 139 ++ SYS_GETPRIORITY = 140 ++ SYS_SETPRIORITY = 141 ++ SYS_SCHED_SETPARAM = 142 ++ SYS_SCHED_GETPARAM = 143 ++ SYS_SCHED_SETSCHEDULER = 144 ++ SYS_SCHED_GETSCHEDULER = 145 ++ SYS_SCHED_GET_PRIORITY_MAX = 146 ++ SYS_SCHED_GET_PRIORITY_MIN = 147 ++ SYS_SCHED_RR_GET_INTERVAL = 148 ++ SYS_MLOCK = 149 ++ SYS_MUNLOCK = 150 ++ SYS_MLOCKALL = 151 ++ SYS_MUNLOCKALL = 152 ++ SYS_VHANGUP = 153 ++ SYS_MODIFY_LDT = 154 ++ SYS_PIVOT_ROOT = 155 ++ SYS__SYSCTL = 156 ++ SYS_PRCTL = 157 ++ SYS_ARCH_PRCTL = 158 ++ SYS_ADJTIMEX = 159 ++ SYS_SETRLIMIT = 160 ++ SYS_CHROOT = 161 ++ SYS_SYNC = 162 ++ SYS_ACCT = 163 ++ SYS_SETTIMEOFDAY = 164 ++ SYS_MOUNT = 165 ++ SYS_UMOUNT2 = 166 ++ SYS_SWAPON = 167 ++ SYS_SWAPOFF = 168 ++ SYS_REBOOT = 169 ++ SYS_SETHOSTNAME = 170 ++ SYS_SETDOMAINNAME = 171 ++ SYS_IOPL = 172 ++ SYS_IOPERM = 173 ++ SYS_CREATE_MODULE = 174 ++ SYS_INIT_MODULE = 175 ++ SYS_DELETE_MODULE = 176 ++ SYS_GET_KERNEL_SYMS = 177 ++ SYS_QUERY_MODULE = 178 ++ SYS_QUOTACTL = 179 ++ SYS_NFSSERVCTL = 180 ++ SYS_GETPMSG = 181 ++ SYS_PUTPMSG = 182 ++ SYS_AFS_SYSCALL = 183 ++ SYS_TUXCALL = 184 ++ SYS_SECURITY = 185 ++ SYS_GETTID = 186 ++ SYS_READAHEAD = 187 ++ SYS_SETXATTR = 188 ++ SYS_LSETXATTR = 189 ++ SYS_FSETXATTR = 190 ++ SYS_GETXATTR = 191 ++ SYS_LGETXATTR = 192 ++ SYS_FGETXATTR = 193 ++ SYS_LISTXATTR = 194 ++ SYS_LLISTXATTR = 195 ++ SYS_FLISTXATTR = 196 ++ SYS_REMOVEXATTR = 197 ++ SYS_LREMOVEXATTR = 198 ++ SYS_FREMOVEXATTR = 199 ++ SYS_TKILL = 200 ++ SYS_TIME = 201 ++ SYS_FUTEX = 202 ++ SYS_SCHED_SETAFFINITY = 203 ++ SYS_SCHED_GETAFFINITY = 204 ++ SYS_SET_THREAD_AREA = 205 ++ SYS_IO_SETUP = 206 ++ SYS_IO_DESTROY = 207 ++ SYS_IO_GETEVENTS = 208 ++ SYS_IO_SUBMIT = 209 ++ SYS_IO_CANCEL = 210 ++ SYS_GET_THREAD_AREA = 211 ++ SYS_LOOKUP_DCOOKIE = 212 ++ SYS_EPOLL_CREATE = 213 ++ SYS_EPOLL_CTL_OLD = 214 ++ SYS_EPOLL_WAIT_OLD = 215 ++ SYS_REMAP_FILE_PAGES = 216 ++ SYS_GETDENTS64 = 217 ++ SYS_SET_TID_ADDRESS = 218 ++ SYS_RESTART_SYSCALL = 219 ++ SYS_SEMTIMEDOP = 220 ++ SYS_FADVISE64 = 221 ++ SYS_TIMER_CREATE = 222 ++ SYS_TIMER_SETTIME = 223 ++ SYS_TIMER_GETTIME = 224 ++ SYS_TIMER_GETOVERRUN = 225 ++ SYS_TIMER_DELETE = 226 ++ SYS_CLOCK_SETTIME = 227 ++ SYS_CLOCK_GETTIME = 228 ++ SYS_CLOCK_GETRES = 229 ++ SYS_CLOCK_NANOSLEEP = 230 ++ SYS_EXIT_GROUP = 231 ++ SYS_EPOLL_WAIT = 232 ++ SYS_EPOLL_CTL = 233 ++ SYS_TGKILL = 234 ++ SYS_UTIMES = 235 ++ SYS_VSERVER = 236 ++ SYS_MBIND = 237 ++ SYS_SET_MEMPOLICY = 238 ++ SYS_GET_MEMPOLICY = 239 ++ SYS_MQ_OPEN = 240 ++ SYS_MQ_UNLINK = 241 ++ SYS_MQ_TIMEDSEND = 242 ++ SYS_MQ_TIMEDRECEIVE = 243 ++ SYS_MQ_NOTIFY = 244 ++ SYS_MQ_GETSETATTR = 245 ++ SYS_KEXEC_LOAD = 246 ++ SYS_WAITID = 247 ++ SYS_ADD_KEY = 248 ++ SYS_REQUEST_KEY = 249 ++ SYS_KEYCTL = 250 ++ SYS_IOPRIO_SET = 251 ++ SYS_IOPRIO_GET = 252 ++ SYS_INOTIFY_INIT = 253 ++ SYS_INOTIFY_ADD_WATCH = 254 ++ SYS_INOTIFY_RM_WATCH = 255 ++ SYS_MIGRATE_PAGES = 256 ++ SYS_OPENAT = 257 ++ SYS_MKDIRAT = 258 ++ SYS_MKNODAT = 259 ++ SYS_FCHOWNAT = 260 ++ SYS_FUTIMESAT = 261 ++ SYS_NEWFSTATAT = 262 ++ SYS_UNLINKAT = 263 ++ SYS_RENAMEAT = 264 ++ SYS_LINKAT = 265 ++ SYS_SYMLINKAT = 266 ++ SYS_READLINKAT = 267 ++ SYS_FCHMODAT = 268 ++ SYS_FACCESSAT = 269 ++ SYS_PSELECT6 = 270 ++ SYS_PPOLL = 271 ++ SYS_UNSHARE = 272 ++ SYS_SET_ROBUST_LIST = 273 ++ SYS_GET_ROBUST_LIST = 274 ++ SYS_SPLICE = 275 ++ SYS_TEE = 276 ++ SYS_SYNC_FILE_RANGE = 277 ++ SYS_VMSPLICE = 278 ++ SYS_MOVE_PAGES = 279 ++ SYS_UTIMENSAT = 280 ++ SYS_EPOLL_PWAIT = 281 ++ SYS_SIGNALFD = 282 ++ SYS_TIMERFD_CREATE = 283 ++ SYS_EVENTFD = 284 ++ SYS_FALLOCATE = 285 ++ SYS_TIMERFD_SETTIME = 286 ++ SYS_TIMERFD_GETTIME = 287 ++ SYS_ACCEPT4 = 288 ++ SYS_SIGNALFD4 = 289 ++ SYS_EVENTFD2 = 290 ++ SYS_EPOLL_CREATE1 = 291 ++ SYS_DUP3 = 292 ++ SYS_PIPE2 = 293 ++ SYS_INOTIFY_INIT1 = 294 ++ SYS_PREADV = 295 ++ SYS_PWRITEV = 296 ++ SYS_RT_TGSIGQUEUEINFO = 297 ++ SYS_PERF_EVENT_OPEN = 298 ++ SYS_RECVMMSG = 299 ++ SYS_FANOTIFY_INIT = 300 ++ SYS_FANOTIFY_MARK = 301 ++ SYS_PRLIMIT64 = 302 ++ SYS_NAME_TO_HANDLE_AT = 303 ++ SYS_OPEN_BY_HANDLE_AT = 304 ++ SYS_CLOCK_ADJTIME = 305 ++ SYS_SYNCFS = 306 ++ SYS_SENDMMSG = 307 ++ SYS_SETNS = 308 ++ SYS_GETCPU = 309 ++ SYS_PROCESS_VM_READV = 310 ++ SYS_PROCESS_VM_WRITEV = 311 ++ SYS_KCMP = 312 ++ SYS_FINIT_MODULE = 313 ++ SYS_SCHED_SETATTR = 314 ++ SYS_SCHED_GETATTR = 315 ++ SYS_RENAMEAT2 = 316 ++ SYS_SECCOMP = 317 ++ SYS_GETRANDOM = 318 ++ SYS_MEMFD_CREATE = 319 ++ SYS_KEXEC_FILE_LOAD = 320 ++ SYS_BPF = 321 ++ SYS_EXECVEAT = 322 ++ SYS_USERFAULTFD = 323 ++ SYS_MEMBARRIER = 324 ++ SYS_MLOCK2 = 325 ++ SYS_COPY_FILE_RANGE = 326 ++ SYS_PREADV2 = 327 ++ SYS_PWRITEV2 = 328 ++ SYS_PKEY_MPROTECT = 329 ++ SYS_PKEY_ALLOC = 330 ++ SYS_PKEY_FREE = 331 ++) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +new file mode 100644 +index 0000000..e3e6745 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +@@ -0,0 +1,361 @@ ++// mksysnum_linux.pl -Ilinux/usr/include -m32 -D__ARM_EABI__ linux/usr/include/asm/unistd.h ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT ++ ++// +build arm,linux ++ ++package unix ++ ++const ( ++ SYS_RESTART_SYSCALL = 0 ++ SYS_EXIT = 1 ++ SYS_FORK = 2 ++ SYS_READ = 3 ++ SYS_WRITE = 4 ++ SYS_OPEN = 5 ++ SYS_CLOSE = 6 ++ SYS_CREAT = 8 ++ SYS_LINK = 9 ++ SYS_UNLINK = 10 ++ SYS_EXECVE = 11 ++ SYS_CHDIR = 12 ++ SYS_MKNOD = 14 ++ SYS_CHMOD = 15 ++ SYS_LCHOWN = 16 ++ SYS_LSEEK = 19 ++ SYS_GETPID = 20 ++ SYS_MOUNT = 21 ++ SYS_SETUID = 23 ++ SYS_GETUID = 24 ++ SYS_PTRACE = 26 ++ SYS_PAUSE = 29 ++ SYS_ACCESS = 33 ++ SYS_NICE = 34 ++ SYS_SYNC = 36 ++ SYS_KILL = 37 ++ SYS_RENAME = 38 ++ SYS_MKDIR = 39 ++ SYS_RMDIR = 40 ++ SYS_DUP = 41 ++ SYS_PIPE = 42 ++ SYS_TIMES = 43 ++ SYS_BRK = 45 ++ SYS_SETGID = 46 ++ SYS_GETGID = 47 ++ SYS_GETEUID = 49 ++ SYS_GETEGID = 50 ++ SYS_ACCT = 51 ++ SYS_UMOUNT2 = 52 ++ SYS_IOCTL = 54 ++ SYS_FCNTL = 55 ++ SYS_SETPGID = 57 ++ SYS_UMASK = 60 ++ SYS_CHROOT = 61 ++ SYS_USTAT = 62 ++ SYS_DUP2 = 63 ++ SYS_GETPPID = 64 ++ SYS_GETPGRP = 65 ++ SYS_SETSID = 66 ++ SYS_SIGACTION = 67 ++ SYS_SETREUID = 70 ++ SYS_SETREGID = 71 ++ SYS_SIGSUSPEND = 72 ++ SYS_SIGPENDING = 73 ++ SYS_SETHOSTNAME = 74 ++ SYS_SETRLIMIT = 75 ++ SYS_GETRUSAGE = 77 ++ SYS_GETTIMEOFDAY = 78 ++ SYS_SETTIMEOFDAY = 79 ++ SYS_GETGROUPS = 80 ++ SYS_SETGROUPS = 81 ++ SYS_SYMLINK = 83 ++ SYS_READLINK = 85 ++ SYS_USELIB = 86 ++ SYS_SWAPON = 87 ++ SYS_REBOOT = 88 ++ SYS_MUNMAP = 91 ++ SYS_TRUNCATE = 92 ++ SYS_FTRUNCATE = 93 ++ SYS_FCHMOD = 94 ++ SYS_FCHOWN = 95 ++ SYS_GETPRIORITY = 96 ++ SYS_SETPRIORITY = 97 ++ SYS_STATFS = 99 ++ SYS_FSTATFS = 100 ++ SYS_SYSLOG = 103 ++ SYS_SETITIMER = 104 ++ SYS_GETITIMER = 105 ++ SYS_STAT = 106 ++ SYS_LSTAT = 107 ++ SYS_FSTAT = 108 ++ SYS_VHANGUP = 111 ++ SYS_WAIT4 = 114 ++ SYS_SWAPOFF = 115 ++ SYS_SYSINFO = 116 ++ SYS_FSYNC = 118 ++ SYS_SIGRETURN = 119 ++ SYS_CLONE = 120 ++ SYS_SETDOMAINNAME = 121 ++ SYS_UNAME = 122 ++ SYS_ADJTIMEX = 124 ++ SYS_MPROTECT = 125 ++ SYS_SIGPROCMASK = 126 ++ SYS_INIT_MODULE = 128 ++ SYS_DELETE_MODULE = 129 ++ SYS_QUOTACTL = 131 ++ SYS_GETPGID = 132 ++ SYS_FCHDIR = 133 ++ SYS_BDFLUSH = 134 ++ SYS_SYSFS = 135 ++ SYS_PERSONALITY = 136 ++ SYS_SETFSUID = 138 ++ SYS_SETFSGID = 139 ++ SYS__LLSEEK = 140 ++ SYS_GETDENTS = 141 ++ SYS__NEWSELECT = 142 ++ SYS_FLOCK = 143 ++ SYS_MSYNC = 144 ++ SYS_READV = 145 ++ SYS_WRITEV = 146 ++ SYS_GETSID = 147 ++ SYS_FDATASYNC = 148 ++ SYS__SYSCTL = 149 ++ SYS_MLOCK = 150 ++ SYS_MUNLOCK = 151 ++ SYS_MLOCKALL = 152 ++ SYS_MUNLOCKALL = 153 ++ SYS_SCHED_SETPARAM = 154 ++ SYS_SCHED_GETPARAM = 155 ++ SYS_SCHED_SETSCHEDULER = 156 ++ SYS_SCHED_GETSCHEDULER = 157 ++ SYS_SCHED_YIELD = 158 ++ SYS_SCHED_GET_PRIORITY_MAX = 159 ++ SYS_SCHED_GET_PRIORITY_MIN = 160 ++ SYS_SCHED_RR_GET_INTERVAL = 161 ++ SYS_NANOSLEEP = 162 ++ SYS_MREMAP = 163 ++ SYS_SETRESUID = 164 ++ SYS_GETRESUID = 165 ++ SYS_POLL = 168 ++ SYS_NFSSERVCTL = 169 ++ SYS_SETRESGID = 170 ++ SYS_GETRESGID = 171 ++ SYS_PRCTL = 172 ++ SYS_RT_SIGRETURN = 173 ++ SYS_RT_SIGACTION = 174 ++ SYS_RT_SIGPROCMASK = 175 ++ SYS_RT_SIGPENDING = 176 ++ SYS_RT_SIGTIMEDWAIT = 177 ++ SYS_RT_SIGQUEUEINFO = 178 ++ SYS_RT_SIGSUSPEND = 179 ++ SYS_PREAD64 = 180 ++ SYS_PWRITE64 = 181 ++ SYS_CHOWN = 182 ++ SYS_GETCWD = 183 ++ SYS_CAPGET = 184 ++ SYS_CAPSET = 185 ++ SYS_SIGALTSTACK = 186 ++ SYS_SENDFILE = 187 ++ SYS_VFORK = 190 ++ SYS_UGETRLIMIT = 191 ++ SYS_MMAP2 = 192 ++ SYS_TRUNCATE64 = 193 ++ SYS_FTRUNCATE64 = 194 ++ SYS_STAT64 = 195 ++ SYS_LSTAT64 = 196 ++ SYS_FSTAT64 = 197 ++ SYS_LCHOWN32 = 198 ++ SYS_GETUID32 = 199 ++ SYS_GETGID32 = 200 ++ SYS_GETEUID32 = 201 ++ SYS_GETEGID32 = 202 ++ SYS_SETREUID32 = 203 ++ SYS_SETREGID32 = 204 ++ SYS_GETGROUPS32 = 205 ++ SYS_SETGROUPS32 = 206 ++ SYS_FCHOWN32 = 207 ++ SYS_SETRESUID32 = 208 ++ SYS_GETRESUID32 = 209 ++ SYS_SETRESGID32 = 210 ++ SYS_GETRESGID32 = 211 ++ SYS_CHOWN32 = 212 ++ SYS_SETUID32 = 213 ++ SYS_SETGID32 = 214 ++ SYS_SETFSUID32 = 215 ++ SYS_SETFSGID32 = 216 ++ SYS_GETDENTS64 = 217 ++ SYS_PIVOT_ROOT = 218 ++ SYS_MINCORE = 219 ++ SYS_MADVISE = 220 ++ SYS_FCNTL64 = 221 ++ SYS_GETTID = 224 ++ SYS_READAHEAD = 225 ++ SYS_SETXATTR = 226 ++ SYS_LSETXATTR = 227 ++ SYS_FSETXATTR = 228 ++ SYS_GETXATTR = 229 ++ SYS_LGETXATTR = 230 ++ SYS_FGETXATTR = 231 ++ SYS_LISTXATTR = 232 ++ SYS_LLISTXATTR = 233 ++ SYS_FLISTXATTR = 234 ++ SYS_REMOVEXATTR = 235 ++ SYS_LREMOVEXATTR = 236 ++ SYS_FREMOVEXATTR = 237 ++ SYS_TKILL = 238 ++ SYS_SENDFILE64 = 239 ++ SYS_FUTEX = 240 ++ SYS_SCHED_SETAFFINITY = 241 ++ SYS_SCHED_GETAFFINITY = 242 ++ SYS_IO_SETUP = 243 ++ SYS_IO_DESTROY = 244 ++ SYS_IO_GETEVENTS = 245 ++ SYS_IO_SUBMIT = 246 ++ SYS_IO_CANCEL = 247 ++ SYS_EXIT_GROUP = 248 ++ SYS_LOOKUP_DCOOKIE = 249 ++ SYS_EPOLL_CREATE = 250 ++ SYS_EPOLL_CTL = 251 ++ SYS_EPOLL_WAIT = 252 ++ SYS_REMAP_FILE_PAGES = 253 ++ SYS_SET_TID_ADDRESS = 256 ++ SYS_TIMER_CREATE = 257 ++ SYS_TIMER_SETTIME = 258 ++ SYS_TIMER_GETTIME = 259 ++ SYS_TIMER_GETOVERRUN = 260 ++ SYS_TIMER_DELETE = 261 ++ SYS_CLOCK_SETTIME = 262 ++ SYS_CLOCK_GETTIME = 263 ++ SYS_CLOCK_GETRES = 264 ++ SYS_CLOCK_NANOSLEEP = 265 ++ SYS_STATFS64 = 266 ++ SYS_FSTATFS64 = 267 ++ SYS_TGKILL = 268 ++ SYS_UTIMES = 269 ++ SYS_ARM_FADVISE64_64 = 270 ++ SYS_PCICONFIG_IOBASE = 271 ++ SYS_PCICONFIG_READ = 272 ++ SYS_PCICONFIG_WRITE = 273 ++ SYS_MQ_OPEN = 274 ++ SYS_MQ_UNLINK = 275 ++ SYS_MQ_TIMEDSEND = 276 ++ SYS_MQ_TIMEDRECEIVE = 277 ++ SYS_MQ_NOTIFY = 278 ++ SYS_MQ_GETSETATTR = 279 ++ SYS_WAITID = 280 ++ SYS_SOCKET = 281 ++ SYS_BIND = 282 ++ SYS_CONNECT = 283 ++ SYS_LISTEN = 284 ++ SYS_ACCEPT = 285 ++ SYS_GETSOCKNAME = 286 ++ SYS_GETPEERNAME = 287 ++ SYS_SOCKETPAIR = 288 ++ SYS_SEND = 289 ++ SYS_SENDTO = 290 ++ SYS_RECV = 291 ++ SYS_RECVFROM = 292 ++ SYS_SHUTDOWN = 293 ++ SYS_SETSOCKOPT = 294 ++ SYS_GETSOCKOPT = 295 ++ SYS_SENDMSG = 296 ++ SYS_RECVMSG = 297 ++ SYS_SEMOP = 298 ++ SYS_SEMGET = 299 ++ SYS_SEMCTL = 300 ++ SYS_MSGSND = 301 ++ SYS_MSGRCV = 302 ++ SYS_MSGGET = 303 ++ SYS_MSGCTL = 304 ++ SYS_SHMAT = 305 ++ SYS_SHMDT = 306 ++ SYS_SHMGET = 307 ++ SYS_SHMCTL = 308 ++ SYS_ADD_KEY = 309 ++ SYS_REQUEST_KEY = 310 ++ SYS_KEYCTL = 311 ++ SYS_SEMTIMEDOP = 312 ++ SYS_VSERVER = 313 ++ SYS_IOPRIO_SET = 314 ++ SYS_IOPRIO_GET = 315 ++ SYS_INOTIFY_INIT = 316 ++ SYS_INOTIFY_ADD_WATCH = 317 ++ SYS_INOTIFY_RM_WATCH = 318 ++ SYS_MBIND = 319 ++ SYS_GET_MEMPOLICY = 320 ++ SYS_SET_MEMPOLICY = 321 ++ SYS_OPENAT = 322 ++ SYS_MKDIRAT = 323 ++ SYS_MKNODAT = 324 ++ SYS_FCHOWNAT = 325 ++ SYS_FUTIMESAT = 326 ++ SYS_FSTATAT64 = 327 ++ SYS_UNLINKAT = 328 ++ SYS_RENAMEAT = 329 ++ SYS_LINKAT = 330 ++ SYS_SYMLINKAT = 331 ++ SYS_READLINKAT = 332 ++ SYS_FCHMODAT = 333 ++ SYS_FACCESSAT = 334 ++ SYS_PSELECT6 = 335 ++ SYS_PPOLL = 336 ++ SYS_UNSHARE = 337 ++ SYS_SET_ROBUST_LIST = 338 ++ SYS_GET_ROBUST_LIST = 339 ++ SYS_SPLICE = 340 ++ SYS_ARM_SYNC_FILE_RANGE = 341 ++ SYS_TEE = 342 ++ SYS_VMSPLICE = 343 ++ SYS_MOVE_PAGES = 344 ++ SYS_GETCPU = 345 ++ SYS_EPOLL_PWAIT = 346 ++ SYS_KEXEC_LOAD = 347 ++ SYS_UTIMENSAT = 348 ++ SYS_SIGNALFD = 349 ++ SYS_TIMERFD_CREATE = 350 ++ SYS_EVENTFD = 351 ++ SYS_FALLOCATE = 352 ++ SYS_TIMERFD_SETTIME = 353 ++ SYS_TIMERFD_GETTIME = 354 ++ SYS_SIGNALFD4 = 355 ++ SYS_EVENTFD2 = 356 ++ SYS_EPOLL_CREATE1 = 357 ++ SYS_DUP3 = 358 ++ SYS_PIPE2 = 359 ++ SYS_INOTIFY_INIT1 = 360 ++ SYS_PREADV = 361 ++ SYS_PWRITEV = 362 ++ SYS_RT_TGSIGQUEUEINFO = 363 ++ SYS_PERF_EVENT_OPEN = 364 ++ SYS_RECVMMSG = 365 ++ SYS_ACCEPT4 = 366 ++ SYS_FANOTIFY_INIT = 367 ++ SYS_FANOTIFY_MARK = 368 ++ SYS_PRLIMIT64 = 369 ++ SYS_NAME_TO_HANDLE_AT = 370 ++ SYS_OPEN_BY_HANDLE_AT = 371 ++ SYS_CLOCK_ADJTIME = 372 ++ SYS_SYNCFS = 373 ++ SYS_SENDMMSG = 374 ++ SYS_SETNS = 375 ++ SYS_PROCESS_VM_READV = 376 ++ SYS_PROCESS_VM_WRITEV = 377 ++ SYS_KCMP = 378 ++ SYS_FINIT_MODULE = 379 ++ SYS_SCHED_SETATTR = 380 ++ SYS_SCHED_GETATTR = 381 ++ SYS_RENAMEAT2 = 382 ++ SYS_SECCOMP = 383 ++ SYS_GETRANDOM = 384 ++ SYS_MEMFD_CREATE = 385 ++ SYS_BPF = 386 ++ SYS_EXECVEAT = 387 ++ SYS_USERFAULTFD = 388 ++ SYS_MEMBARRIER = 389 ++ SYS_MLOCK2 = 390 ++ SYS_COPY_FILE_RANGE = 391 ++ SYS_PREADV2 = 392 ++ SYS_PWRITEV2 = 393 ++ SYS_PKEY_MPROTECT = 394 ++ SYS_PKEY_ALLOC = 395 ++ SYS_PKEY_FREE = 396 ++) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +new file mode 100644 +index 0000000..90e43d0 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +@@ -0,0 +1,285 @@ ++// mksysnum_linux.pl -Ilinux/usr/include -m64 linux/usr/include/asm/unistd.h ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT ++ ++// +build arm64,linux ++ ++package unix ++ ++const ( ++ SYS_IO_SETUP = 0 ++ SYS_IO_DESTROY = 1 ++ SYS_IO_SUBMIT = 2 ++ SYS_IO_CANCEL = 3 ++ SYS_IO_GETEVENTS = 4 ++ SYS_SETXATTR = 5 ++ SYS_LSETXATTR = 6 ++ SYS_FSETXATTR = 7 ++ SYS_GETXATTR = 8 ++ SYS_LGETXATTR = 9 ++ SYS_FGETXATTR = 10 ++ SYS_LISTXATTR = 11 ++ SYS_LLISTXATTR = 12 ++ SYS_FLISTXATTR = 13 ++ SYS_REMOVEXATTR = 14 ++ SYS_LREMOVEXATTR = 15 ++ SYS_FREMOVEXATTR = 16 ++ SYS_GETCWD = 17 ++ SYS_LOOKUP_DCOOKIE = 18 ++ SYS_EVENTFD2 = 19 ++ SYS_EPOLL_CREATE1 = 20 ++ SYS_EPOLL_CTL = 21 ++ SYS_EPOLL_PWAIT = 22 ++ SYS_DUP = 23 ++ SYS_DUP3 = 24 ++ SYS_FCNTL = 25 ++ SYS_INOTIFY_INIT1 = 26 ++ SYS_INOTIFY_ADD_WATCH = 27 ++ SYS_INOTIFY_RM_WATCH = 28 ++ SYS_IOCTL = 29 ++ SYS_IOPRIO_SET = 30 ++ SYS_IOPRIO_GET = 31 ++ SYS_FLOCK = 32 ++ SYS_MKNODAT = 33 ++ SYS_MKDIRAT = 34 ++ SYS_UNLINKAT = 35 ++ SYS_SYMLINKAT = 36 ++ SYS_LINKAT = 37 ++ SYS_RENAMEAT = 38 ++ SYS_UMOUNT2 = 39 ++ SYS_MOUNT = 40 ++ SYS_PIVOT_ROOT = 41 ++ SYS_NFSSERVCTL = 42 ++ SYS_STATFS = 43 ++ SYS_FSTATFS = 44 ++ SYS_TRUNCATE = 45 ++ SYS_FTRUNCATE = 46 ++ SYS_FALLOCATE = 47 ++ SYS_FACCESSAT = 48 ++ SYS_CHDIR = 49 ++ SYS_FCHDIR = 50 ++ SYS_CHROOT = 51 ++ SYS_FCHMOD = 52 ++ SYS_FCHMODAT = 53 ++ SYS_FCHOWNAT = 54 ++ SYS_FCHOWN = 55 ++ SYS_OPENAT = 56 ++ SYS_CLOSE = 57 ++ SYS_VHANGUP = 58 ++ SYS_PIPE2 = 59 ++ SYS_QUOTACTL = 60 ++ SYS_GETDENTS64 = 61 ++ SYS_LSEEK = 62 ++ SYS_READ = 63 ++ SYS_WRITE = 64 ++ SYS_READV = 65 ++ SYS_WRITEV = 66 ++ SYS_PREAD64 = 67 ++ SYS_PWRITE64 = 68 ++ SYS_PREADV = 69 ++ SYS_PWRITEV = 70 ++ SYS_SENDFILE = 71 ++ SYS_PSELECT6 = 72 ++ SYS_PPOLL = 73 ++ SYS_SIGNALFD4 = 74 ++ SYS_VMSPLICE = 75 ++ SYS_SPLICE = 76 ++ SYS_TEE = 77 ++ SYS_READLINKAT = 78 ++ SYS_FSTATAT = 79 ++ SYS_FSTAT = 80 ++ SYS_SYNC = 81 ++ SYS_FSYNC = 82 ++ SYS_FDATASYNC = 83 ++ SYS_SYNC_FILE_RANGE = 84 ++ SYS_TIMERFD_CREATE = 85 ++ SYS_TIMERFD_SETTIME = 86 ++ SYS_TIMERFD_GETTIME = 87 ++ SYS_UTIMENSAT = 88 ++ SYS_ACCT = 89 ++ SYS_CAPGET = 90 ++ SYS_CAPSET = 91 ++ SYS_PERSONALITY = 92 ++ SYS_EXIT = 93 ++ SYS_EXIT_GROUP = 94 ++ SYS_WAITID = 95 ++ SYS_SET_TID_ADDRESS = 96 ++ SYS_UNSHARE = 97 ++ SYS_FUTEX = 98 ++ SYS_SET_ROBUST_LIST = 99 ++ SYS_GET_ROBUST_LIST = 100 ++ SYS_NANOSLEEP = 101 ++ SYS_GETITIMER = 102 ++ SYS_SETITIMER = 103 ++ SYS_KEXEC_LOAD = 104 ++ SYS_INIT_MODULE = 105 ++ SYS_DELETE_MODULE = 106 ++ SYS_TIMER_CREATE = 107 ++ SYS_TIMER_GETTIME = 108 ++ SYS_TIMER_GETOVERRUN = 109 ++ SYS_TIMER_SETTIME = 110 ++ SYS_TIMER_DELETE = 111 ++ SYS_CLOCK_SETTIME = 112 ++ SYS_CLOCK_GETTIME = 113 ++ SYS_CLOCK_GETRES = 114 ++ SYS_CLOCK_NANOSLEEP = 115 ++ SYS_SYSLOG = 116 ++ SYS_PTRACE = 117 ++ SYS_SCHED_SETPARAM = 118 ++ SYS_SCHED_SETSCHEDULER = 119 ++ SYS_SCHED_GETSCHEDULER = 120 ++ SYS_SCHED_GETPARAM = 121 ++ SYS_SCHED_SETAFFINITY = 122 ++ SYS_SCHED_GETAFFINITY = 123 ++ SYS_SCHED_YIELD = 124 ++ SYS_SCHED_GET_PRIORITY_MAX = 125 ++ SYS_SCHED_GET_PRIORITY_MIN = 126 ++ SYS_SCHED_RR_GET_INTERVAL = 127 ++ SYS_RESTART_SYSCALL = 128 ++ SYS_KILL = 129 ++ SYS_TKILL = 130 ++ SYS_TGKILL = 131 ++ SYS_SIGALTSTACK = 132 ++ SYS_RT_SIGSUSPEND = 133 ++ SYS_RT_SIGACTION = 134 ++ SYS_RT_SIGPROCMASK = 135 ++ SYS_RT_SIGPENDING = 136 ++ SYS_RT_SIGTIMEDWAIT = 137 ++ SYS_RT_SIGQUEUEINFO = 138 ++ SYS_RT_SIGRETURN = 139 ++ SYS_SETPRIORITY = 140 ++ SYS_GETPRIORITY = 141 ++ SYS_REBOOT = 142 ++ SYS_SETREGID = 143 ++ SYS_SETGID = 144 ++ SYS_SETREUID = 145 ++ SYS_SETUID = 146 ++ SYS_SETRESUID = 147 ++ SYS_GETRESUID = 148 ++ SYS_SETRESGID = 149 ++ SYS_GETRESGID = 150 ++ SYS_SETFSUID = 151 ++ SYS_SETFSGID = 152 ++ SYS_TIMES = 153 ++ SYS_SETPGID = 154 ++ SYS_GETPGID = 155 ++ SYS_GETSID = 156 ++ SYS_SETSID = 157 ++ SYS_GETGROUPS = 158 ++ SYS_SETGROUPS = 159 ++ SYS_UNAME = 160 ++ SYS_SETHOSTNAME = 161 ++ SYS_SETDOMAINNAME = 162 ++ SYS_GETRLIMIT = 163 ++ SYS_SETRLIMIT = 164 ++ SYS_GETRUSAGE = 165 ++ SYS_UMASK = 166 ++ SYS_PRCTL = 167 ++ SYS_GETCPU = 168 ++ SYS_GETTIMEOFDAY = 169 ++ SYS_SETTIMEOFDAY = 170 ++ SYS_ADJTIMEX = 171 ++ SYS_GETPID = 172 ++ SYS_GETPPID = 173 ++ SYS_GETUID = 174 ++ SYS_GETEUID = 175 ++ SYS_GETGID = 176 ++ SYS_GETEGID = 177 ++ SYS_GETTID = 178 ++ SYS_SYSINFO = 179 ++ SYS_MQ_OPEN = 180 ++ SYS_MQ_UNLINK = 181 ++ SYS_MQ_TIMEDSEND = 182 ++ SYS_MQ_TIMEDRECEIVE = 183 ++ SYS_MQ_NOTIFY = 184 ++ SYS_MQ_GETSETATTR = 185 ++ SYS_MSGGET = 186 ++ SYS_MSGCTL = 187 ++ SYS_MSGRCV = 188 ++ SYS_MSGSND = 189 ++ SYS_SEMGET = 190 ++ SYS_SEMCTL = 191 ++ SYS_SEMTIMEDOP = 192 ++ SYS_SEMOP = 193 ++ SYS_SHMGET = 194 ++ SYS_SHMCTL = 195 ++ SYS_SHMAT = 196 ++ SYS_SHMDT = 197 ++ SYS_SOCKET = 198 ++ SYS_SOCKETPAIR = 199 ++ SYS_BIND = 200 ++ SYS_LISTEN = 201 ++ SYS_ACCEPT = 202 ++ SYS_CONNECT = 203 ++ SYS_GETSOCKNAME = 204 ++ SYS_GETPEERNAME = 205 ++ SYS_SENDTO = 206 ++ SYS_RECVFROM = 207 ++ SYS_SETSOCKOPT = 208 ++ SYS_GETSOCKOPT = 209 ++ SYS_SHUTDOWN = 210 ++ SYS_SENDMSG = 211 ++ SYS_RECVMSG = 212 ++ SYS_READAHEAD = 213 ++ SYS_BRK = 214 ++ SYS_MUNMAP = 215 ++ SYS_MREMAP = 216 ++ SYS_ADD_KEY = 217 ++ SYS_REQUEST_KEY = 218 ++ SYS_KEYCTL = 219 ++ SYS_CLONE = 220 ++ SYS_EXECVE = 221 ++ SYS_MMAP = 222 ++ SYS_FADVISE64 = 223 ++ SYS_SWAPON = 224 ++ SYS_SWAPOFF = 225 ++ SYS_MPROTECT = 226 ++ SYS_MSYNC = 227 ++ SYS_MLOCK = 228 ++ SYS_MUNLOCK = 229 ++ SYS_MLOCKALL = 230 ++ SYS_MUNLOCKALL = 231 ++ SYS_MINCORE = 232 ++ SYS_MADVISE = 233 ++ SYS_REMAP_FILE_PAGES = 234 ++ SYS_MBIND = 235 ++ SYS_GET_MEMPOLICY = 236 ++ SYS_SET_MEMPOLICY = 237 ++ SYS_MIGRATE_PAGES = 238 ++ SYS_MOVE_PAGES = 239 ++ SYS_RT_TGSIGQUEUEINFO = 240 ++ SYS_PERF_EVENT_OPEN = 241 ++ SYS_ACCEPT4 = 242 ++ SYS_RECVMMSG = 243 ++ SYS_ARCH_SPECIFIC_SYSCALL = 244 ++ SYS_WAIT4 = 260 ++ SYS_PRLIMIT64 = 261 ++ SYS_FANOTIFY_INIT = 262 ++ SYS_FANOTIFY_MARK = 263 ++ SYS_NAME_TO_HANDLE_AT = 264 ++ SYS_OPEN_BY_HANDLE_AT = 265 ++ SYS_CLOCK_ADJTIME = 266 ++ SYS_SYNCFS = 267 ++ SYS_SETNS = 268 ++ SYS_SENDMMSG = 269 ++ SYS_PROCESS_VM_READV = 270 ++ SYS_PROCESS_VM_WRITEV = 271 ++ SYS_KCMP = 272 ++ SYS_FINIT_MODULE = 273 ++ SYS_SCHED_SETATTR = 274 ++ SYS_SCHED_GETATTR = 275 ++ SYS_RENAMEAT2 = 276 ++ SYS_SECCOMP = 277 ++ SYS_GETRANDOM = 278 ++ SYS_MEMFD_CREATE = 279 ++ SYS_BPF = 280 ++ SYS_EXECVEAT = 281 ++ SYS_USERFAULTFD = 282 ++ SYS_MEMBARRIER = 283 ++ SYS_MLOCK2 = 284 ++ SYS_COPY_FILE_RANGE = 285 ++ SYS_PREADV2 = 286 ++ SYS_PWRITEV2 = 287 ++ SYS_PKEY_MPROTECT = 288 ++ SYS_PKEY_ALLOC = 289 ++ SYS_PKEY_FREE = 290 ++) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +new file mode 100644 +index 0000000..77ff644 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +@@ -0,0 +1,374 @@ ++// mksysnum_linux.pl -Ilinux/usr/include -m32 -D_MIPS_SIM=_MIPS_SIM_ABI32 -D__MIPSEB__ linux/usr/include/asm/unistd.h ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT ++ ++// +build mips,linux ++ ++package unix ++ ++const ( ++ SYS_SYSCALL = 4000 ++ SYS_EXIT = 4001 ++ SYS_FORK = 4002 ++ SYS_READ = 4003 ++ SYS_WRITE = 4004 ++ SYS_OPEN = 4005 ++ SYS_CLOSE = 4006 ++ SYS_WAITPID = 4007 ++ SYS_CREAT = 4008 ++ SYS_LINK = 4009 ++ SYS_UNLINK = 4010 ++ SYS_EXECVE = 4011 ++ SYS_CHDIR = 4012 ++ SYS_TIME = 4013 ++ SYS_MKNOD = 4014 ++ SYS_CHMOD = 4015 ++ SYS_LCHOWN = 4016 ++ SYS_BREAK = 4017 ++ SYS_UNUSED18 = 4018 ++ SYS_LSEEK = 4019 ++ SYS_GETPID = 4020 ++ SYS_MOUNT = 4021 ++ SYS_UMOUNT = 4022 ++ SYS_SETUID = 4023 ++ SYS_GETUID = 4024 ++ SYS_STIME = 4025 ++ SYS_PTRACE = 4026 ++ SYS_ALARM = 4027 ++ SYS_UNUSED28 = 4028 ++ SYS_PAUSE = 4029 ++ SYS_UTIME = 4030 ++ SYS_STTY = 4031 ++ SYS_GTTY = 4032 ++ SYS_ACCESS = 4033 ++ SYS_NICE = 4034 ++ SYS_FTIME = 4035 ++ SYS_SYNC = 4036 ++ SYS_KILL = 4037 ++ SYS_RENAME = 4038 ++ SYS_MKDIR = 4039 ++ SYS_RMDIR = 4040 ++ SYS_DUP = 4041 ++ SYS_PIPE = 4042 ++ SYS_TIMES = 4043 ++ SYS_PROF = 4044 ++ SYS_BRK = 4045 ++ SYS_SETGID = 4046 ++ SYS_GETGID = 4047 ++ SYS_SIGNAL = 4048 ++ SYS_GETEUID = 4049 ++ SYS_GETEGID = 4050 ++ SYS_ACCT = 4051 ++ SYS_UMOUNT2 = 4052 ++ SYS_LOCK = 4053 ++ SYS_IOCTL = 4054 ++ SYS_FCNTL = 4055 ++ SYS_MPX = 4056 ++ SYS_SETPGID = 4057 ++ SYS_ULIMIT = 4058 ++ SYS_UNUSED59 = 4059 ++ SYS_UMASK = 4060 ++ SYS_CHROOT = 4061 ++ SYS_USTAT = 4062 ++ SYS_DUP2 = 4063 ++ SYS_GETPPID = 4064 ++ SYS_GETPGRP = 4065 ++ SYS_SETSID = 4066 ++ SYS_SIGACTION = 4067 ++ SYS_SGETMASK = 4068 ++ SYS_SSETMASK = 4069 ++ SYS_SETREUID = 4070 ++ SYS_SETREGID = 4071 ++ SYS_SIGSUSPEND = 4072 ++ SYS_SIGPENDING = 4073 ++ SYS_SETHOSTNAME = 4074 ++ SYS_SETRLIMIT = 4075 ++ SYS_GETRLIMIT = 4076 ++ SYS_GETRUSAGE = 4077 ++ SYS_GETTIMEOFDAY = 4078 ++ SYS_SETTIMEOFDAY = 4079 ++ SYS_GETGROUPS = 4080 ++ SYS_SETGROUPS = 4081 ++ SYS_RESERVED82 = 4082 ++ SYS_SYMLINK = 4083 ++ SYS_UNUSED84 = 4084 ++ SYS_READLINK = 4085 ++ SYS_USELIB = 4086 ++ SYS_SWAPON = 4087 ++ SYS_REBOOT = 4088 ++ SYS_READDIR = 4089 ++ SYS_MMAP = 4090 ++ SYS_MUNMAP = 4091 ++ SYS_TRUNCATE = 4092 ++ SYS_FTRUNCATE = 4093 ++ SYS_FCHMOD = 4094 ++ SYS_FCHOWN = 4095 ++ SYS_GETPRIORITY = 4096 ++ SYS_SETPRIORITY = 4097 ++ SYS_PROFIL = 4098 ++ SYS_STATFS = 4099 ++ SYS_FSTATFS = 4100 ++ SYS_IOPERM = 4101 ++ SYS_SOCKETCALL = 4102 ++ SYS_SYSLOG = 4103 ++ SYS_SETITIMER = 4104 ++ SYS_GETITIMER = 4105 ++ SYS_STAT = 4106 ++ SYS_LSTAT = 4107 ++ SYS_FSTAT = 4108 ++ SYS_UNUSED109 = 4109 ++ SYS_IOPL = 4110 ++ SYS_VHANGUP = 4111 ++ SYS_IDLE = 4112 ++ SYS_VM86 = 4113 ++ SYS_WAIT4 = 4114 ++ SYS_SWAPOFF = 4115 ++ SYS_SYSINFO = 4116 ++ SYS_IPC = 4117 ++ SYS_FSYNC = 4118 ++ SYS_SIGRETURN = 4119 ++ SYS_CLONE = 4120 ++ SYS_SETDOMAINNAME = 4121 ++ SYS_UNAME = 4122 ++ SYS_MODIFY_LDT = 4123 ++ SYS_ADJTIMEX = 4124 ++ SYS_MPROTECT = 4125 ++ SYS_SIGPROCMASK = 4126 ++ SYS_CREATE_MODULE = 4127 ++ SYS_INIT_MODULE = 4128 ++ SYS_DELETE_MODULE = 4129 ++ SYS_GET_KERNEL_SYMS = 4130 ++ SYS_QUOTACTL = 4131 ++ SYS_GETPGID = 4132 ++ SYS_FCHDIR = 4133 ++ SYS_BDFLUSH = 4134 ++ SYS_SYSFS = 4135 ++ SYS_PERSONALITY = 4136 ++ SYS_AFS_SYSCALL = 4137 ++ SYS_SETFSUID = 4138 ++ SYS_SETFSGID = 4139 ++ SYS__LLSEEK = 4140 ++ SYS_GETDENTS = 4141 ++ SYS__NEWSELECT = 4142 ++ SYS_FLOCK = 4143 ++ SYS_MSYNC = 4144 ++ SYS_READV = 4145 ++ SYS_WRITEV = 4146 ++ SYS_CACHEFLUSH = 4147 ++ SYS_CACHECTL = 4148 ++ SYS_SYSMIPS = 4149 ++ SYS_UNUSED150 = 4150 ++ SYS_GETSID = 4151 ++ SYS_FDATASYNC = 4152 ++ SYS__SYSCTL = 4153 ++ SYS_MLOCK = 4154 ++ SYS_MUNLOCK = 4155 ++ SYS_MLOCKALL = 4156 ++ SYS_MUNLOCKALL = 4157 ++ SYS_SCHED_SETPARAM = 4158 ++ SYS_SCHED_GETPARAM = 4159 ++ SYS_SCHED_SETSCHEDULER = 4160 ++ SYS_SCHED_GETSCHEDULER = 4161 ++ SYS_SCHED_YIELD = 4162 ++ SYS_SCHED_GET_PRIORITY_MAX = 4163 ++ SYS_SCHED_GET_PRIORITY_MIN = 4164 ++ SYS_SCHED_RR_GET_INTERVAL = 4165 ++ SYS_NANOSLEEP = 4166 ++ SYS_MREMAP = 4167 ++ SYS_ACCEPT = 4168 ++ SYS_BIND = 4169 ++ SYS_CONNECT = 4170 ++ SYS_GETPEERNAME = 4171 ++ SYS_GETSOCKNAME = 4172 ++ SYS_GETSOCKOPT = 4173 ++ SYS_LISTEN = 4174 ++ SYS_RECV = 4175 ++ SYS_RECVFROM = 4176 ++ SYS_RECVMSG = 4177 ++ SYS_SEND = 4178 ++ SYS_SENDMSG = 4179 ++ SYS_SENDTO = 4180 ++ SYS_SETSOCKOPT = 4181 ++ SYS_SHUTDOWN = 4182 ++ SYS_SOCKET = 4183 ++ SYS_SOCKETPAIR = 4184 ++ SYS_SETRESUID = 4185 ++ SYS_GETRESUID = 4186 ++ SYS_QUERY_MODULE = 4187 ++ SYS_POLL = 4188 ++ SYS_NFSSERVCTL = 4189 ++ SYS_SETRESGID = 4190 ++ SYS_GETRESGID = 4191 ++ SYS_PRCTL = 4192 ++ SYS_RT_SIGRETURN = 4193 ++ SYS_RT_SIGACTION = 4194 ++ SYS_RT_SIGPROCMASK = 4195 ++ SYS_RT_SIGPENDING = 4196 ++ SYS_RT_SIGTIMEDWAIT = 4197 ++ SYS_RT_SIGQUEUEINFO = 4198 ++ SYS_RT_SIGSUSPEND = 4199 ++ SYS_PREAD64 = 4200 ++ SYS_PWRITE64 = 4201 ++ SYS_CHOWN = 4202 ++ SYS_GETCWD = 4203 ++ SYS_CAPGET = 4204 ++ SYS_CAPSET = 4205 ++ SYS_SIGALTSTACK = 4206 ++ SYS_SENDFILE = 4207 ++ SYS_GETPMSG = 4208 ++ SYS_PUTPMSG = 4209 ++ SYS_MMAP2 = 4210 ++ SYS_TRUNCATE64 = 4211 ++ SYS_FTRUNCATE64 = 4212 ++ SYS_STAT64 = 4213 ++ SYS_LSTAT64 = 4214 ++ SYS_FSTAT64 = 4215 ++ SYS_PIVOT_ROOT = 4216 ++ SYS_MINCORE = 4217 ++ SYS_MADVISE = 4218 ++ SYS_GETDENTS64 = 4219 ++ SYS_FCNTL64 = 4220 ++ SYS_RESERVED221 = 4221 ++ SYS_GETTID = 4222 ++ SYS_READAHEAD = 4223 ++ SYS_SETXATTR = 4224 ++ SYS_LSETXATTR = 4225 ++ SYS_FSETXATTR = 4226 ++ SYS_GETXATTR = 4227 ++ SYS_LGETXATTR = 4228 ++ SYS_FGETXATTR = 4229 ++ SYS_LISTXATTR = 4230 ++ SYS_LLISTXATTR = 4231 ++ SYS_FLISTXATTR = 4232 ++ SYS_REMOVEXATTR = 4233 ++ SYS_LREMOVEXATTR = 4234 ++ SYS_FREMOVEXATTR = 4235 ++ SYS_TKILL = 4236 ++ SYS_SENDFILE64 = 4237 ++ SYS_FUTEX = 4238 ++ SYS_SCHED_SETAFFINITY = 4239 ++ SYS_SCHED_GETAFFINITY = 4240 ++ SYS_IO_SETUP = 4241 ++ SYS_IO_DESTROY = 4242 ++ SYS_IO_GETEVENTS = 4243 ++ SYS_IO_SUBMIT = 4244 ++ SYS_IO_CANCEL = 4245 ++ SYS_EXIT_GROUP = 4246 ++ SYS_LOOKUP_DCOOKIE = 4247 ++ SYS_EPOLL_CREATE = 4248 ++ SYS_EPOLL_CTL = 4249 ++ SYS_EPOLL_WAIT = 4250 ++ SYS_REMAP_FILE_PAGES = 4251 ++ SYS_SET_TID_ADDRESS = 4252 ++ SYS_RESTART_SYSCALL = 4253 ++ SYS_FADVISE64 = 4254 ++ SYS_STATFS64 = 4255 ++ SYS_FSTATFS64 = 4256 ++ SYS_TIMER_CREATE = 4257 ++ SYS_TIMER_SETTIME = 4258 ++ SYS_TIMER_GETTIME = 4259 ++ SYS_TIMER_GETOVERRUN = 4260 ++ SYS_TIMER_DELETE = 4261 ++ SYS_CLOCK_SETTIME = 4262 ++ SYS_CLOCK_GETTIME = 4263 ++ SYS_CLOCK_GETRES = 4264 ++ SYS_CLOCK_NANOSLEEP = 4265 ++ SYS_TGKILL = 4266 ++ SYS_UTIMES = 4267 ++ SYS_MBIND = 4268 ++ SYS_GET_MEMPOLICY = 4269 ++ SYS_SET_MEMPOLICY = 4270 ++ SYS_MQ_OPEN = 4271 ++ SYS_MQ_UNLINK = 4272 ++ SYS_MQ_TIMEDSEND = 4273 ++ SYS_MQ_TIMEDRECEIVE = 4274 ++ SYS_MQ_NOTIFY = 4275 ++ SYS_MQ_GETSETATTR = 4276 ++ SYS_VSERVER = 4277 ++ SYS_WAITID = 4278 ++ SYS_ADD_KEY = 4280 ++ SYS_REQUEST_KEY = 4281 ++ SYS_KEYCTL = 4282 ++ SYS_SET_THREAD_AREA = 4283 ++ SYS_INOTIFY_INIT = 4284 ++ SYS_INOTIFY_ADD_WATCH = 4285 ++ SYS_INOTIFY_RM_WATCH = 4286 ++ SYS_MIGRATE_PAGES = 4287 ++ SYS_OPENAT = 4288 ++ SYS_MKDIRAT = 4289 ++ SYS_MKNODAT = 4290 ++ SYS_FCHOWNAT = 4291 ++ SYS_FUTIMESAT = 4292 ++ SYS_FSTATAT64 = 4293 ++ SYS_UNLINKAT = 4294 ++ SYS_RENAMEAT = 4295 ++ SYS_LINKAT = 4296 ++ SYS_SYMLINKAT = 4297 ++ SYS_READLINKAT = 4298 ++ SYS_FCHMODAT = 4299 ++ SYS_FACCESSAT = 4300 ++ SYS_PSELECT6 = 4301 ++ SYS_PPOLL = 4302 ++ SYS_UNSHARE = 4303 ++ SYS_SPLICE = 4304 ++ SYS_SYNC_FILE_RANGE = 4305 ++ SYS_TEE = 4306 ++ SYS_VMSPLICE = 4307 ++ SYS_MOVE_PAGES = 4308 ++ SYS_SET_ROBUST_LIST = 4309 ++ SYS_GET_ROBUST_LIST = 4310 ++ SYS_KEXEC_LOAD = 4311 ++ SYS_GETCPU = 4312 ++ SYS_EPOLL_PWAIT = 4313 ++ SYS_IOPRIO_SET = 4314 ++ SYS_IOPRIO_GET = 4315 ++ SYS_UTIMENSAT = 4316 ++ SYS_SIGNALFD = 4317 ++ SYS_TIMERFD = 4318 ++ SYS_EVENTFD = 4319 ++ SYS_FALLOCATE = 4320 ++ SYS_TIMERFD_CREATE = 4321 ++ SYS_TIMERFD_GETTIME = 4322 ++ SYS_TIMERFD_SETTIME = 4323 ++ SYS_SIGNALFD4 = 4324 ++ SYS_EVENTFD2 = 4325 ++ SYS_EPOLL_CREATE1 = 4326 ++ SYS_DUP3 = 4327 ++ SYS_PIPE2 = 4328 ++ SYS_INOTIFY_INIT1 = 4329 ++ SYS_PREADV = 4330 ++ SYS_PWRITEV = 4331 ++ SYS_RT_TGSIGQUEUEINFO = 4332 ++ SYS_PERF_EVENT_OPEN = 4333 ++ SYS_ACCEPT4 = 4334 ++ SYS_RECVMMSG = 4335 ++ SYS_FANOTIFY_INIT = 4336 ++ SYS_FANOTIFY_MARK = 4337 ++ SYS_PRLIMIT64 = 4338 ++ SYS_NAME_TO_HANDLE_AT = 4339 ++ SYS_OPEN_BY_HANDLE_AT = 4340 ++ SYS_CLOCK_ADJTIME = 4341 ++ SYS_SYNCFS = 4342 ++ SYS_SENDMMSG = 4343 ++ SYS_SETNS = 4344 ++ SYS_PROCESS_VM_READV = 4345 ++ SYS_PROCESS_VM_WRITEV = 4346 ++ SYS_KCMP = 4347 ++ SYS_FINIT_MODULE = 4348 ++ SYS_SCHED_SETATTR = 4349 ++ SYS_SCHED_GETATTR = 4350 ++ SYS_RENAMEAT2 = 4351 ++ SYS_SECCOMP = 4352 ++ SYS_GETRANDOM = 4353 ++ SYS_MEMFD_CREATE = 4354 ++ SYS_BPF = 4355 ++ SYS_EXECVEAT = 4356 ++ SYS_USERFAULTFD = 4357 ++ SYS_MEMBARRIER = 4358 ++ SYS_MLOCK2 = 4359 ++ SYS_COPY_FILE_RANGE = 4360 ++ SYS_PREADV2 = 4361 ++ SYS_PWRITEV2 = 4362 ++ SYS_PKEY_MPROTECT = 4363 ++ SYS_PKEY_ALLOC = 4364 ++ SYS_PKEY_FREE = 4365 ++) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +new file mode 100644 +index 0000000..fc86fcd +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +@@ -0,0 +1,334 @@ ++// mksysnum_linux.pl -Ilinux/usr/include -m64 -D_MIPS_SIM=_MIPS_SIM_ABI64 -D__MIPSEB__ linux/usr/include/asm/unistd.h ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT ++ ++// +build mips64,linux ++ ++package unix ++ ++const ( ++ SYS_READ = 5000 ++ SYS_WRITE = 5001 ++ SYS_OPEN = 5002 ++ SYS_CLOSE = 5003 ++ SYS_STAT = 5004 ++ SYS_FSTAT = 5005 ++ SYS_LSTAT = 5006 ++ SYS_POLL = 5007 ++ SYS_LSEEK = 5008 ++ SYS_MMAP = 5009 ++ SYS_MPROTECT = 5010 ++ SYS_MUNMAP = 5011 ++ SYS_BRK = 5012 ++ SYS_RT_SIGACTION = 5013 ++ SYS_RT_SIGPROCMASK = 5014 ++ SYS_IOCTL = 5015 ++ SYS_PREAD64 = 5016 ++ SYS_PWRITE64 = 5017 ++ SYS_READV = 5018 ++ SYS_WRITEV = 5019 ++ SYS_ACCESS = 5020 ++ SYS_PIPE = 5021 ++ SYS__NEWSELECT = 5022 ++ SYS_SCHED_YIELD = 5023 ++ SYS_MREMAP = 5024 ++ SYS_MSYNC = 5025 ++ SYS_MINCORE = 5026 ++ SYS_MADVISE = 5027 ++ SYS_SHMGET = 5028 ++ SYS_SHMAT = 5029 ++ SYS_SHMCTL = 5030 ++ SYS_DUP = 5031 ++ SYS_DUP2 = 5032 ++ SYS_PAUSE = 5033 ++ SYS_NANOSLEEP = 5034 ++ SYS_GETITIMER = 5035 ++ SYS_SETITIMER = 5036 ++ SYS_ALARM = 5037 ++ SYS_GETPID = 5038 ++ SYS_SENDFILE = 5039 ++ SYS_SOCKET = 5040 ++ SYS_CONNECT = 5041 ++ SYS_ACCEPT = 5042 ++ SYS_SENDTO = 5043 ++ SYS_RECVFROM = 5044 ++ SYS_SENDMSG = 5045 ++ SYS_RECVMSG = 5046 ++ SYS_SHUTDOWN = 5047 ++ SYS_BIND = 5048 ++ SYS_LISTEN = 5049 ++ SYS_GETSOCKNAME = 5050 ++ SYS_GETPEERNAME = 5051 ++ SYS_SOCKETPAIR = 5052 ++ SYS_SETSOCKOPT = 5053 ++ SYS_GETSOCKOPT = 5054 ++ SYS_CLONE = 5055 ++ SYS_FORK = 5056 ++ SYS_EXECVE = 5057 ++ SYS_EXIT = 5058 ++ SYS_WAIT4 = 5059 ++ SYS_KILL = 5060 ++ SYS_UNAME = 5061 ++ SYS_SEMGET = 5062 ++ SYS_SEMOP = 5063 ++ SYS_SEMCTL = 5064 ++ SYS_SHMDT = 5065 ++ SYS_MSGGET = 5066 ++ SYS_MSGSND = 5067 ++ SYS_MSGRCV = 5068 ++ SYS_MSGCTL = 5069 ++ SYS_FCNTL = 5070 ++ SYS_FLOCK = 5071 ++ SYS_FSYNC = 5072 ++ SYS_FDATASYNC = 5073 ++ SYS_TRUNCATE = 5074 ++ SYS_FTRUNCATE = 5075 ++ SYS_GETDENTS = 5076 ++ SYS_GETCWD = 5077 ++ SYS_CHDIR = 5078 ++ SYS_FCHDIR = 5079 ++ SYS_RENAME = 5080 ++ SYS_MKDIR = 5081 ++ SYS_RMDIR = 5082 ++ SYS_CREAT = 5083 ++ SYS_LINK = 5084 ++ SYS_UNLINK = 5085 ++ SYS_SYMLINK = 5086 ++ SYS_READLINK = 5087 ++ SYS_CHMOD = 5088 ++ SYS_FCHMOD = 5089 ++ SYS_CHOWN = 5090 ++ SYS_FCHOWN = 5091 ++ SYS_LCHOWN = 5092 ++ SYS_UMASK = 5093 ++ SYS_GETTIMEOFDAY = 5094 ++ SYS_GETRLIMIT = 5095 ++ SYS_GETRUSAGE = 5096 ++ SYS_SYSINFO = 5097 ++ SYS_TIMES = 5098 ++ SYS_PTRACE = 5099 ++ SYS_GETUID = 5100 ++ SYS_SYSLOG = 5101 ++ SYS_GETGID = 5102 ++ SYS_SETUID = 5103 ++ SYS_SETGID = 5104 ++ SYS_GETEUID = 5105 ++ SYS_GETEGID = 5106 ++ SYS_SETPGID = 5107 ++ SYS_GETPPID = 5108 ++ SYS_GETPGRP = 5109 ++ SYS_SETSID = 5110 ++ SYS_SETREUID = 5111 ++ SYS_SETREGID = 5112 ++ SYS_GETGROUPS = 5113 ++ SYS_SETGROUPS = 5114 ++ SYS_SETRESUID = 5115 ++ SYS_GETRESUID = 5116 ++ SYS_SETRESGID = 5117 ++ SYS_GETRESGID = 5118 ++ SYS_GETPGID = 5119 ++ SYS_SETFSUID = 5120 ++ SYS_SETFSGID = 5121 ++ SYS_GETSID = 5122 ++ SYS_CAPGET = 5123 ++ SYS_CAPSET = 5124 ++ SYS_RT_SIGPENDING = 5125 ++ SYS_RT_SIGTIMEDWAIT = 5126 ++ SYS_RT_SIGQUEUEINFO = 5127 ++ SYS_RT_SIGSUSPEND = 5128 ++ SYS_SIGALTSTACK = 5129 ++ SYS_UTIME = 5130 ++ SYS_MKNOD = 5131 ++ SYS_PERSONALITY = 5132 ++ SYS_USTAT = 5133 ++ SYS_STATFS = 5134 ++ SYS_FSTATFS = 5135 ++ SYS_SYSFS = 5136 ++ SYS_GETPRIORITY = 5137 ++ SYS_SETPRIORITY = 5138 ++ SYS_SCHED_SETPARAM = 5139 ++ SYS_SCHED_GETPARAM = 5140 ++ SYS_SCHED_SETSCHEDULER = 5141 ++ SYS_SCHED_GETSCHEDULER = 5142 ++ SYS_SCHED_GET_PRIORITY_MAX = 5143 ++ SYS_SCHED_GET_PRIORITY_MIN = 5144 ++ SYS_SCHED_RR_GET_INTERVAL = 5145 ++ SYS_MLOCK = 5146 ++ SYS_MUNLOCK = 5147 ++ SYS_MLOCKALL = 5148 ++ SYS_MUNLOCKALL = 5149 ++ SYS_VHANGUP = 5150 ++ SYS_PIVOT_ROOT = 5151 ++ SYS__SYSCTL = 5152 ++ SYS_PRCTL = 5153 ++ SYS_ADJTIMEX = 5154 ++ SYS_SETRLIMIT = 5155 ++ SYS_CHROOT = 5156 ++ SYS_SYNC = 5157 ++ SYS_ACCT = 5158 ++ SYS_SETTIMEOFDAY = 5159 ++ SYS_MOUNT = 5160 ++ SYS_UMOUNT2 = 5161 ++ SYS_SWAPON = 5162 ++ SYS_SWAPOFF = 5163 ++ SYS_REBOOT = 5164 ++ SYS_SETHOSTNAME = 5165 ++ SYS_SETDOMAINNAME = 5166 ++ SYS_CREATE_MODULE = 5167 ++ SYS_INIT_MODULE = 5168 ++ SYS_DELETE_MODULE = 5169 ++ SYS_GET_KERNEL_SYMS = 5170 ++ SYS_QUERY_MODULE = 5171 ++ SYS_QUOTACTL = 5172 ++ SYS_NFSSERVCTL = 5173 ++ SYS_GETPMSG = 5174 ++ SYS_PUTPMSG = 5175 ++ SYS_AFS_SYSCALL = 5176 ++ SYS_RESERVED177 = 5177 ++ SYS_GETTID = 5178 ++ SYS_READAHEAD = 5179 ++ SYS_SETXATTR = 5180 ++ SYS_LSETXATTR = 5181 ++ SYS_FSETXATTR = 5182 ++ SYS_GETXATTR = 5183 ++ SYS_LGETXATTR = 5184 ++ SYS_FGETXATTR = 5185 ++ SYS_LISTXATTR = 5186 ++ SYS_LLISTXATTR = 5187 ++ SYS_FLISTXATTR = 5188 ++ SYS_REMOVEXATTR = 5189 ++ SYS_LREMOVEXATTR = 5190 ++ SYS_FREMOVEXATTR = 5191 ++ SYS_TKILL = 5192 ++ SYS_RESERVED193 = 5193 ++ SYS_FUTEX = 5194 ++ SYS_SCHED_SETAFFINITY = 5195 ++ SYS_SCHED_GETAFFINITY = 5196 ++ SYS_CACHEFLUSH = 5197 ++ SYS_CACHECTL = 5198 ++ SYS_SYSMIPS = 5199 ++ SYS_IO_SETUP = 5200 ++ SYS_IO_DESTROY = 5201 ++ SYS_IO_GETEVENTS = 5202 ++ SYS_IO_SUBMIT = 5203 ++ SYS_IO_CANCEL = 5204 ++ SYS_EXIT_GROUP = 5205 ++ SYS_LOOKUP_DCOOKIE = 5206 ++ SYS_EPOLL_CREATE = 5207 ++ SYS_EPOLL_CTL = 5208 ++ SYS_EPOLL_WAIT = 5209 ++ SYS_REMAP_FILE_PAGES = 5210 ++ SYS_RT_SIGRETURN = 5211 ++ SYS_SET_TID_ADDRESS = 5212 ++ SYS_RESTART_SYSCALL = 5213 ++ SYS_SEMTIMEDOP = 5214 ++ SYS_FADVISE64 = 5215 ++ SYS_TIMER_CREATE = 5216 ++ SYS_TIMER_SETTIME = 5217 ++ SYS_TIMER_GETTIME = 5218 ++ SYS_TIMER_GETOVERRUN = 5219 ++ SYS_TIMER_DELETE = 5220 ++ SYS_CLOCK_SETTIME = 5221 ++ SYS_CLOCK_GETTIME = 5222 ++ SYS_CLOCK_GETRES = 5223 ++ SYS_CLOCK_NANOSLEEP = 5224 ++ SYS_TGKILL = 5225 ++ SYS_UTIMES = 5226 ++ SYS_MBIND = 5227 ++ SYS_GET_MEMPOLICY = 5228 ++ SYS_SET_MEMPOLICY = 5229 ++ SYS_MQ_OPEN = 5230 ++ SYS_MQ_UNLINK = 5231 ++ SYS_MQ_TIMEDSEND = 5232 ++ SYS_MQ_TIMEDRECEIVE = 5233 ++ SYS_MQ_NOTIFY = 5234 ++ SYS_MQ_GETSETATTR = 5235 ++ SYS_VSERVER = 5236 ++ SYS_WAITID = 5237 ++ SYS_ADD_KEY = 5239 ++ SYS_REQUEST_KEY = 5240 ++ SYS_KEYCTL = 5241 ++ SYS_SET_THREAD_AREA = 5242 ++ SYS_INOTIFY_INIT = 5243 ++ SYS_INOTIFY_ADD_WATCH = 5244 ++ SYS_INOTIFY_RM_WATCH = 5245 ++ SYS_MIGRATE_PAGES = 5246 ++ SYS_OPENAT = 5247 ++ SYS_MKDIRAT = 5248 ++ SYS_MKNODAT = 5249 ++ SYS_FCHOWNAT = 5250 ++ SYS_FUTIMESAT = 5251 ++ SYS_NEWFSTATAT = 5252 ++ SYS_UNLINKAT = 5253 ++ SYS_RENAMEAT = 5254 ++ SYS_LINKAT = 5255 ++ SYS_SYMLINKAT = 5256 ++ SYS_READLINKAT = 5257 ++ SYS_FCHMODAT = 5258 ++ SYS_FACCESSAT = 5259 ++ SYS_PSELECT6 = 5260 ++ SYS_PPOLL = 5261 ++ SYS_UNSHARE = 5262 ++ SYS_SPLICE = 5263 ++ SYS_SYNC_FILE_RANGE = 5264 ++ SYS_TEE = 5265 ++ SYS_VMSPLICE = 5266 ++ SYS_MOVE_PAGES = 5267 ++ SYS_SET_ROBUST_LIST = 5268 ++ SYS_GET_ROBUST_LIST = 5269 ++ SYS_KEXEC_LOAD = 5270 ++ SYS_GETCPU = 5271 ++ SYS_EPOLL_PWAIT = 5272 ++ SYS_IOPRIO_SET = 5273 ++ SYS_IOPRIO_GET = 5274 ++ SYS_UTIMENSAT = 5275 ++ SYS_SIGNALFD = 5276 ++ SYS_TIMERFD = 5277 ++ SYS_EVENTFD = 5278 ++ SYS_FALLOCATE = 5279 ++ SYS_TIMERFD_CREATE = 5280 ++ SYS_TIMERFD_GETTIME = 5281 ++ SYS_TIMERFD_SETTIME = 5282 ++ SYS_SIGNALFD4 = 5283 ++ SYS_EVENTFD2 = 5284 ++ SYS_EPOLL_CREATE1 = 5285 ++ SYS_DUP3 = 5286 ++ SYS_PIPE2 = 5287 ++ SYS_INOTIFY_INIT1 = 5288 ++ SYS_PREADV = 5289 ++ SYS_PWRITEV = 5290 ++ SYS_RT_TGSIGQUEUEINFO = 5291 ++ SYS_PERF_EVENT_OPEN = 5292 ++ SYS_ACCEPT4 = 5293 ++ SYS_RECVMMSG = 5294 ++ SYS_FANOTIFY_INIT = 5295 ++ SYS_FANOTIFY_MARK = 5296 ++ SYS_PRLIMIT64 = 5297 ++ SYS_NAME_TO_HANDLE_AT = 5298 ++ SYS_OPEN_BY_HANDLE_AT = 5299 ++ SYS_CLOCK_ADJTIME = 5300 ++ SYS_SYNCFS = 5301 ++ SYS_SENDMMSG = 5302 ++ SYS_SETNS = 5303 ++ SYS_PROCESS_VM_READV = 5304 ++ SYS_PROCESS_VM_WRITEV = 5305 ++ SYS_KCMP = 5306 ++ SYS_FINIT_MODULE = 5307 ++ SYS_GETDENTS64 = 5308 ++ SYS_SCHED_SETATTR = 5309 ++ SYS_SCHED_GETATTR = 5310 ++ SYS_RENAMEAT2 = 5311 ++ SYS_SECCOMP = 5312 ++ SYS_GETRANDOM = 5313 ++ SYS_MEMFD_CREATE = 5314 ++ SYS_BPF = 5315 ++ SYS_EXECVEAT = 5316 ++ SYS_USERFAULTFD = 5317 ++ SYS_MEMBARRIER = 5318 ++ SYS_MLOCK2 = 5319 ++ SYS_COPY_FILE_RANGE = 5320 ++ SYS_PREADV2 = 5321 ++ SYS_PWRITEV2 = 5322 ++ SYS_PKEY_MPROTECT = 5323 ++ SYS_PKEY_ALLOC = 5324 ++ SYS_PKEY_FREE = 5325 ++) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +new file mode 100644 +index 0000000..993873c +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +@@ -0,0 +1,334 @@ ++// mksysnum_linux.pl -Ilinux/usr/include -m64 -D_MIPS_SIM=_MIPS_SIM_ABI64 -D__MIPSEL__ linux/usr/include/asm/unistd.h ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT ++ ++// +build mips64le,linux ++ ++package unix ++ ++const ( ++ SYS_READ = 5000 ++ SYS_WRITE = 5001 ++ SYS_OPEN = 5002 ++ SYS_CLOSE = 5003 ++ SYS_STAT = 5004 ++ SYS_FSTAT = 5005 ++ SYS_LSTAT = 5006 ++ SYS_POLL = 5007 ++ SYS_LSEEK = 5008 ++ SYS_MMAP = 5009 ++ SYS_MPROTECT = 5010 ++ SYS_MUNMAP = 5011 ++ SYS_BRK = 5012 ++ SYS_RT_SIGACTION = 5013 ++ SYS_RT_SIGPROCMASK = 5014 ++ SYS_IOCTL = 5015 ++ SYS_PREAD64 = 5016 ++ SYS_PWRITE64 = 5017 ++ SYS_READV = 5018 ++ SYS_WRITEV = 5019 ++ SYS_ACCESS = 5020 ++ SYS_PIPE = 5021 ++ SYS__NEWSELECT = 5022 ++ SYS_SCHED_YIELD = 5023 ++ SYS_MREMAP = 5024 ++ SYS_MSYNC = 5025 ++ SYS_MINCORE = 5026 ++ SYS_MADVISE = 5027 ++ SYS_SHMGET = 5028 ++ SYS_SHMAT = 5029 ++ SYS_SHMCTL = 5030 ++ SYS_DUP = 5031 ++ SYS_DUP2 = 5032 ++ SYS_PAUSE = 5033 ++ SYS_NANOSLEEP = 5034 ++ SYS_GETITIMER = 5035 ++ SYS_SETITIMER = 5036 ++ SYS_ALARM = 5037 ++ SYS_GETPID = 5038 ++ SYS_SENDFILE = 5039 ++ SYS_SOCKET = 5040 ++ SYS_CONNECT = 5041 ++ SYS_ACCEPT = 5042 ++ SYS_SENDTO = 5043 ++ SYS_RECVFROM = 5044 ++ SYS_SENDMSG = 5045 ++ SYS_RECVMSG = 5046 ++ SYS_SHUTDOWN = 5047 ++ SYS_BIND = 5048 ++ SYS_LISTEN = 5049 ++ SYS_GETSOCKNAME = 5050 ++ SYS_GETPEERNAME = 5051 ++ SYS_SOCKETPAIR = 5052 ++ SYS_SETSOCKOPT = 5053 ++ SYS_GETSOCKOPT = 5054 ++ SYS_CLONE = 5055 ++ SYS_FORK = 5056 ++ SYS_EXECVE = 5057 ++ SYS_EXIT = 5058 ++ SYS_WAIT4 = 5059 ++ SYS_KILL = 5060 ++ SYS_UNAME = 5061 ++ SYS_SEMGET = 5062 ++ SYS_SEMOP = 5063 ++ SYS_SEMCTL = 5064 ++ SYS_SHMDT = 5065 ++ SYS_MSGGET = 5066 ++ SYS_MSGSND = 5067 ++ SYS_MSGRCV = 5068 ++ SYS_MSGCTL = 5069 ++ SYS_FCNTL = 5070 ++ SYS_FLOCK = 5071 ++ SYS_FSYNC = 5072 ++ SYS_FDATASYNC = 5073 ++ SYS_TRUNCATE = 5074 ++ SYS_FTRUNCATE = 5075 ++ SYS_GETDENTS = 5076 ++ SYS_GETCWD = 5077 ++ SYS_CHDIR = 5078 ++ SYS_FCHDIR = 5079 ++ SYS_RENAME = 5080 ++ SYS_MKDIR = 5081 ++ SYS_RMDIR = 5082 ++ SYS_CREAT = 5083 ++ SYS_LINK = 5084 ++ SYS_UNLINK = 5085 ++ SYS_SYMLINK = 5086 ++ SYS_READLINK = 5087 ++ SYS_CHMOD = 5088 ++ SYS_FCHMOD = 5089 ++ SYS_CHOWN = 5090 ++ SYS_FCHOWN = 5091 ++ SYS_LCHOWN = 5092 ++ SYS_UMASK = 5093 ++ SYS_GETTIMEOFDAY = 5094 ++ SYS_GETRLIMIT = 5095 ++ SYS_GETRUSAGE = 5096 ++ SYS_SYSINFO = 5097 ++ SYS_TIMES = 5098 ++ SYS_PTRACE = 5099 ++ SYS_GETUID = 5100 ++ SYS_SYSLOG = 5101 ++ SYS_GETGID = 5102 ++ SYS_SETUID = 5103 ++ SYS_SETGID = 5104 ++ SYS_GETEUID = 5105 ++ SYS_GETEGID = 5106 ++ SYS_SETPGID = 5107 ++ SYS_GETPPID = 5108 ++ SYS_GETPGRP = 5109 ++ SYS_SETSID = 5110 ++ SYS_SETREUID = 5111 ++ SYS_SETREGID = 5112 ++ SYS_GETGROUPS = 5113 ++ SYS_SETGROUPS = 5114 ++ SYS_SETRESUID = 5115 ++ SYS_GETRESUID = 5116 ++ SYS_SETRESGID = 5117 ++ SYS_GETRESGID = 5118 ++ SYS_GETPGID = 5119 ++ SYS_SETFSUID = 5120 ++ SYS_SETFSGID = 5121 ++ SYS_GETSID = 5122 ++ SYS_CAPGET = 5123 ++ SYS_CAPSET = 5124 ++ SYS_RT_SIGPENDING = 5125 ++ SYS_RT_SIGTIMEDWAIT = 5126 ++ SYS_RT_SIGQUEUEINFO = 5127 ++ SYS_RT_SIGSUSPEND = 5128 ++ SYS_SIGALTSTACK = 5129 ++ SYS_UTIME = 5130 ++ SYS_MKNOD = 5131 ++ SYS_PERSONALITY = 5132 ++ SYS_USTAT = 5133 ++ SYS_STATFS = 5134 ++ SYS_FSTATFS = 5135 ++ SYS_SYSFS = 5136 ++ SYS_GETPRIORITY = 5137 ++ SYS_SETPRIORITY = 5138 ++ SYS_SCHED_SETPARAM = 5139 ++ SYS_SCHED_GETPARAM = 5140 ++ SYS_SCHED_SETSCHEDULER = 5141 ++ SYS_SCHED_GETSCHEDULER = 5142 ++ SYS_SCHED_GET_PRIORITY_MAX = 5143 ++ SYS_SCHED_GET_PRIORITY_MIN = 5144 ++ SYS_SCHED_RR_GET_INTERVAL = 5145 ++ SYS_MLOCK = 5146 ++ SYS_MUNLOCK = 5147 ++ SYS_MLOCKALL = 5148 ++ SYS_MUNLOCKALL = 5149 ++ SYS_VHANGUP = 5150 ++ SYS_PIVOT_ROOT = 5151 ++ SYS__SYSCTL = 5152 ++ SYS_PRCTL = 5153 ++ SYS_ADJTIMEX = 5154 ++ SYS_SETRLIMIT = 5155 ++ SYS_CHROOT = 5156 ++ SYS_SYNC = 5157 ++ SYS_ACCT = 5158 ++ SYS_SETTIMEOFDAY = 5159 ++ SYS_MOUNT = 5160 ++ SYS_UMOUNT2 = 5161 ++ SYS_SWAPON = 5162 ++ SYS_SWAPOFF = 5163 ++ SYS_REBOOT = 5164 ++ SYS_SETHOSTNAME = 5165 ++ SYS_SETDOMAINNAME = 5166 ++ SYS_CREATE_MODULE = 5167 ++ SYS_INIT_MODULE = 5168 ++ SYS_DELETE_MODULE = 5169 ++ SYS_GET_KERNEL_SYMS = 5170 ++ SYS_QUERY_MODULE = 5171 ++ SYS_QUOTACTL = 5172 ++ SYS_NFSSERVCTL = 5173 ++ SYS_GETPMSG = 5174 ++ SYS_PUTPMSG = 5175 ++ SYS_AFS_SYSCALL = 5176 ++ SYS_RESERVED177 = 5177 ++ SYS_GETTID = 5178 ++ SYS_READAHEAD = 5179 ++ SYS_SETXATTR = 5180 ++ SYS_LSETXATTR = 5181 ++ SYS_FSETXATTR = 5182 ++ SYS_GETXATTR = 5183 ++ SYS_LGETXATTR = 5184 ++ SYS_FGETXATTR = 5185 ++ SYS_LISTXATTR = 5186 ++ SYS_LLISTXATTR = 5187 ++ SYS_FLISTXATTR = 5188 ++ SYS_REMOVEXATTR = 5189 ++ SYS_LREMOVEXATTR = 5190 ++ SYS_FREMOVEXATTR = 5191 ++ SYS_TKILL = 5192 ++ SYS_RESERVED193 = 5193 ++ SYS_FUTEX = 5194 ++ SYS_SCHED_SETAFFINITY = 5195 ++ SYS_SCHED_GETAFFINITY = 5196 ++ SYS_CACHEFLUSH = 5197 ++ SYS_CACHECTL = 5198 ++ SYS_SYSMIPS = 5199 ++ SYS_IO_SETUP = 5200 ++ SYS_IO_DESTROY = 5201 ++ SYS_IO_GETEVENTS = 5202 ++ SYS_IO_SUBMIT = 5203 ++ SYS_IO_CANCEL = 5204 ++ SYS_EXIT_GROUP = 5205 ++ SYS_LOOKUP_DCOOKIE = 5206 ++ SYS_EPOLL_CREATE = 5207 ++ SYS_EPOLL_CTL = 5208 ++ SYS_EPOLL_WAIT = 5209 ++ SYS_REMAP_FILE_PAGES = 5210 ++ SYS_RT_SIGRETURN = 5211 ++ SYS_SET_TID_ADDRESS = 5212 ++ SYS_RESTART_SYSCALL = 5213 ++ SYS_SEMTIMEDOP = 5214 ++ SYS_FADVISE64 = 5215 ++ SYS_TIMER_CREATE = 5216 ++ SYS_TIMER_SETTIME = 5217 ++ SYS_TIMER_GETTIME = 5218 ++ SYS_TIMER_GETOVERRUN = 5219 ++ SYS_TIMER_DELETE = 5220 ++ SYS_CLOCK_SETTIME = 5221 ++ SYS_CLOCK_GETTIME = 5222 ++ SYS_CLOCK_GETRES = 5223 ++ SYS_CLOCK_NANOSLEEP = 5224 ++ SYS_TGKILL = 5225 ++ SYS_UTIMES = 5226 ++ SYS_MBIND = 5227 ++ SYS_GET_MEMPOLICY = 5228 ++ SYS_SET_MEMPOLICY = 5229 ++ SYS_MQ_OPEN = 5230 ++ SYS_MQ_UNLINK = 5231 ++ SYS_MQ_TIMEDSEND = 5232 ++ SYS_MQ_TIMEDRECEIVE = 5233 ++ SYS_MQ_NOTIFY = 5234 ++ SYS_MQ_GETSETATTR = 5235 ++ SYS_VSERVER = 5236 ++ SYS_WAITID = 5237 ++ SYS_ADD_KEY = 5239 ++ SYS_REQUEST_KEY = 5240 ++ SYS_KEYCTL = 5241 ++ SYS_SET_THREAD_AREA = 5242 ++ SYS_INOTIFY_INIT = 5243 ++ SYS_INOTIFY_ADD_WATCH = 5244 ++ SYS_INOTIFY_RM_WATCH = 5245 ++ SYS_MIGRATE_PAGES = 5246 ++ SYS_OPENAT = 5247 ++ SYS_MKDIRAT = 5248 ++ SYS_MKNODAT = 5249 ++ SYS_FCHOWNAT = 5250 ++ SYS_FUTIMESAT = 5251 ++ SYS_NEWFSTATAT = 5252 ++ SYS_UNLINKAT = 5253 ++ SYS_RENAMEAT = 5254 ++ SYS_LINKAT = 5255 ++ SYS_SYMLINKAT = 5256 ++ SYS_READLINKAT = 5257 ++ SYS_FCHMODAT = 5258 ++ SYS_FACCESSAT = 5259 ++ SYS_PSELECT6 = 5260 ++ SYS_PPOLL = 5261 ++ SYS_UNSHARE = 5262 ++ SYS_SPLICE = 5263 ++ SYS_SYNC_FILE_RANGE = 5264 ++ SYS_TEE = 5265 ++ SYS_VMSPLICE = 5266 ++ SYS_MOVE_PAGES = 5267 ++ SYS_SET_ROBUST_LIST = 5268 ++ SYS_GET_ROBUST_LIST = 5269 ++ SYS_KEXEC_LOAD = 5270 ++ SYS_GETCPU = 5271 ++ SYS_EPOLL_PWAIT = 5272 ++ SYS_IOPRIO_SET = 5273 ++ SYS_IOPRIO_GET = 5274 ++ SYS_UTIMENSAT = 5275 ++ SYS_SIGNALFD = 5276 ++ SYS_TIMERFD = 5277 ++ SYS_EVENTFD = 5278 ++ SYS_FALLOCATE = 5279 ++ SYS_TIMERFD_CREATE = 5280 ++ SYS_TIMERFD_GETTIME = 5281 ++ SYS_TIMERFD_SETTIME = 5282 ++ SYS_SIGNALFD4 = 5283 ++ SYS_EVENTFD2 = 5284 ++ SYS_EPOLL_CREATE1 = 5285 ++ SYS_DUP3 = 5286 ++ SYS_PIPE2 = 5287 ++ SYS_INOTIFY_INIT1 = 5288 ++ SYS_PREADV = 5289 ++ SYS_PWRITEV = 5290 ++ SYS_RT_TGSIGQUEUEINFO = 5291 ++ SYS_PERF_EVENT_OPEN = 5292 ++ SYS_ACCEPT4 = 5293 ++ SYS_RECVMMSG = 5294 ++ SYS_FANOTIFY_INIT = 5295 ++ SYS_FANOTIFY_MARK = 5296 ++ SYS_PRLIMIT64 = 5297 ++ SYS_NAME_TO_HANDLE_AT = 5298 ++ SYS_OPEN_BY_HANDLE_AT = 5299 ++ SYS_CLOCK_ADJTIME = 5300 ++ SYS_SYNCFS = 5301 ++ SYS_SENDMMSG = 5302 ++ SYS_SETNS = 5303 ++ SYS_PROCESS_VM_READV = 5304 ++ SYS_PROCESS_VM_WRITEV = 5305 ++ SYS_KCMP = 5306 ++ SYS_FINIT_MODULE = 5307 ++ SYS_GETDENTS64 = 5308 ++ SYS_SCHED_SETATTR = 5309 ++ SYS_SCHED_GETATTR = 5310 ++ SYS_RENAMEAT2 = 5311 ++ SYS_SECCOMP = 5312 ++ SYS_GETRANDOM = 5313 ++ SYS_MEMFD_CREATE = 5314 ++ SYS_BPF = 5315 ++ SYS_EXECVEAT = 5316 ++ SYS_USERFAULTFD = 5317 ++ SYS_MEMBARRIER = 5318 ++ SYS_MLOCK2 = 5319 ++ SYS_COPY_FILE_RANGE = 5320 ++ SYS_PREADV2 = 5321 ++ SYS_PWRITEV2 = 5322 ++ SYS_PKEY_MPROTECT = 5323 ++ SYS_PKEY_ALLOC = 5324 ++ SYS_PKEY_FREE = 5325 ++) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +new file mode 100644 +index 0000000..f0155ba +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +@@ -0,0 +1,374 @@ ++// mksysnum_linux.pl -Ilinux/usr/include -m32 -D_MIPS_SIM=_MIPS_SIM_ABI32 -D__MIPSEL__ linux/usr/include/asm/unistd.h ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT ++ ++// +build mipsle,linux ++ ++package unix ++ ++const ( ++ SYS_SYSCALL = 4000 ++ SYS_EXIT = 4001 ++ SYS_FORK = 4002 ++ SYS_READ = 4003 ++ SYS_WRITE = 4004 ++ SYS_OPEN = 4005 ++ SYS_CLOSE = 4006 ++ SYS_WAITPID = 4007 ++ SYS_CREAT = 4008 ++ SYS_LINK = 4009 ++ SYS_UNLINK = 4010 ++ SYS_EXECVE = 4011 ++ SYS_CHDIR = 4012 ++ SYS_TIME = 4013 ++ SYS_MKNOD = 4014 ++ SYS_CHMOD = 4015 ++ SYS_LCHOWN = 4016 ++ SYS_BREAK = 4017 ++ SYS_UNUSED18 = 4018 ++ SYS_LSEEK = 4019 ++ SYS_GETPID = 4020 ++ SYS_MOUNT = 4021 ++ SYS_UMOUNT = 4022 ++ SYS_SETUID = 4023 ++ SYS_GETUID = 4024 ++ SYS_STIME = 4025 ++ SYS_PTRACE = 4026 ++ SYS_ALARM = 4027 ++ SYS_UNUSED28 = 4028 ++ SYS_PAUSE = 4029 ++ SYS_UTIME = 4030 ++ SYS_STTY = 4031 ++ SYS_GTTY = 4032 ++ SYS_ACCESS = 4033 ++ SYS_NICE = 4034 ++ SYS_FTIME = 4035 ++ SYS_SYNC = 4036 ++ SYS_KILL = 4037 ++ SYS_RENAME = 4038 ++ SYS_MKDIR = 4039 ++ SYS_RMDIR = 4040 ++ SYS_DUP = 4041 ++ SYS_PIPE = 4042 ++ SYS_TIMES = 4043 ++ SYS_PROF = 4044 ++ SYS_BRK = 4045 ++ SYS_SETGID = 4046 ++ SYS_GETGID = 4047 ++ SYS_SIGNAL = 4048 ++ SYS_GETEUID = 4049 ++ SYS_GETEGID = 4050 ++ SYS_ACCT = 4051 ++ SYS_UMOUNT2 = 4052 ++ SYS_LOCK = 4053 ++ SYS_IOCTL = 4054 ++ SYS_FCNTL = 4055 ++ SYS_MPX = 4056 ++ SYS_SETPGID = 4057 ++ SYS_ULIMIT = 4058 ++ SYS_UNUSED59 = 4059 ++ SYS_UMASK = 4060 ++ SYS_CHROOT = 4061 ++ SYS_USTAT = 4062 ++ SYS_DUP2 = 4063 ++ SYS_GETPPID = 4064 ++ SYS_GETPGRP = 4065 ++ SYS_SETSID = 4066 ++ SYS_SIGACTION = 4067 ++ SYS_SGETMASK = 4068 ++ SYS_SSETMASK = 4069 ++ SYS_SETREUID = 4070 ++ SYS_SETREGID = 4071 ++ SYS_SIGSUSPEND = 4072 ++ SYS_SIGPENDING = 4073 ++ SYS_SETHOSTNAME = 4074 ++ SYS_SETRLIMIT = 4075 ++ SYS_GETRLIMIT = 4076 ++ SYS_GETRUSAGE = 4077 ++ SYS_GETTIMEOFDAY = 4078 ++ SYS_SETTIMEOFDAY = 4079 ++ SYS_GETGROUPS = 4080 ++ SYS_SETGROUPS = 4081 ++ SYS_RESERVED82 = 4082 ++ SYS_SYMLINK = 4083 ++ SYS_UNUSED84 = 4084 ++ SYS_READLINK = 4085 ++ SYS_USELIB = 4086 ++ SYS_SWAPON = 4087 ++ SYS_REBOOT = 4088 ++ SYS_READDIR = 4089 ++ SYS_MMAP = 4090 ++ SYS_MUNMAP = 4091 ++ SYS_TRUNCATE = 4092 ++ SYS_FTRUNCATE = 4093 ++ SYS_FCHMOD = 4094 ++ SYS_FCHOWN = 4095 ++ SYS_GETPRIORITY = 4096 ++ SYS_SETPRIORITY = 4097 ++ SYS_PROFIL = 4098 ++ SYS_STATFS = 4099 ++ SYS_FSTATFS = 4100 ++ SYS_IOPERM = 4101 ++ SYS_SOCKETCALL = 4102 ++ SYS_SYSLOG = 4103 ++ SYS_SETITIMER = 4104 ++ SYS_GETITIMER = 4105 ++ SYS_STAT = 4106 ++ SYS_LSTAT = 4107 ++ SYS_FSTAT = 4108 ++ SYS_UNUSED109 = 4109 ++ SYS_IOPL = 4110 ++ SYS_VHANGUP = 4111 ++ SYS_IDLE = 4112 ++ SYS_VM86 = 4113 ++ SYS_WAIT4 = 4114 ++ SYS_SWAPOFF = 4115 ++ SYS_SYSINFO = 4116 ++ SYS_IPC = 4117 ++ SYS_FSYNC = 4118 ++ SYS_SIGRETURN = 4119 ++ SYS_CLONE = 4120 ++ SYS_SETDOMAINNAME = 4121 ++ SYS_UNAME = 4122 ++ SYS_MODIFY_LDT = 4123 ++ SYS_ADJTIMEX = 4124 ++ SYS_MPROTECT = 4125 ++ SYS_SIGPROCMASK = 4126 ++ SYS_CREATE_MODULE = 4127 ++ SYS_INIT_MODULE = 4128 ++ SYS_DELETE_MODULE = 4129 ++ SYS_GET_KERNEL_SYMS = 4130 ++ SYS_QUOTACTL = 4131 ++ SYS_GETPGID = 4132 ++ SYS_FCHDIR = 4133 ++ SYS_BDFLUSH = 4134 ++ SYS_SYSFS = 4135 ++ SYS_PERSONALITY = 4136 ++ SYS_AFS_SYSCALL = 4137 ++ SYS_SETFSUID = 4138 ++ SYS_SETFSGID = 4139 ++ SYS__LLSEEK = 4140 ++ SYS_GETDENTS = 4141 ++ SYS__NEWSELECT = 4142 ++ SYS_FLOCK = 4143 ++ SYS_MSYNC = 4144 ++ SYS_READV = 4145 ++ SYS_WRITEV = 4146 ++ SYS_CACHEFLUSH = 4147 ++ SYS_CACHECTL = 4148 ++ SYS_SYSMIPS = 4149 ++ SYS_UNUSED150 = 4150 ++ SYS_GETSID = 4151 ++ SYS_FDATASYNC = 4152 ++ SYS__SYSCTL = 4153 ++ SYS_MLOCK = 4154 ++ SYS_MUNLOCK = 4155 ++ SYS_MLOCKALL = 4156 ++ SYS_MUNLOCKALL = 4157 ++ SYS_SCHED_SETPARAM = 4158 ++ SYS_SCHED_GETPARAM = 4159 ++ SYS_SCHED_SETSCHEDULER = 4160 ++ SYS_SCHED_GETSCHEDULER = 4161 ++ SYS_SCHED_YIELD = 4162 ++ SYS_SCHED_GET_PRIORITY_MAX = 4163 ++ SYS_SCHED_GET_PRIORITY_MIN = 4164 ++ SYS_SCHED_RR_GET_INTERVAL = 4165 ++ SYS_NANOSLEEP = 4166 ++ SYS_MREMAP = 4167 ++ SYS_ACCEPT = 4168 ++ SYS_BIND = 4169 ++ SYS_CONNECT = 4170 ++ SYS_GETPEERNAME = 4171 ++ SYS_GETSOCKNAME = 4172 ++ SYS_GETSOCKOPT = 4173 ++ SYS_LISTEN = 4174 ++ SYS_RECV = 4175 ++ SYS_RECVFROM = 4176 ++ SYS_RECVMSG = 4177 ++ SYS_SEND = 4178 ++ SYS_SENDMSG = 4179 ++ SYS_SENDTO = 4180 ++ SYS_SETSOCKOPT = 4181 ++ SYS_SHUTDOWN = 4182 ++ SYS_SOCKET = 4183 ++ SYS_SOCKETPAIR = 4184 ++ SYS_SETRESUID = 4185 ++ SYS_GETRESUID = 4186 ++ SYS_QUERY_MODULE = 4187 ++ SYS_POLL = 4188 ++ SYS_NFSSERVCTL = 4189 ++ SYS_SETRESGID = 4190 ++ SYS_GETRESGID = 4191 ++ SYS_PRCTL = 4192 ++ SYS_RT_SIGRETURN = 4193 ++ SYS_RT_SIGACTION = 4194 ++ SYS_RT_SIGPROCMASK = 4195 ++ SYS_RT_SIGPENDING = 4196 ++ SYS_RT_SIGTIMEDWAIT = 4197 ++ SYS_RT_SIGQUEUEINFO = 4198 ++ SYS_RT_SIGSUSPEND = 4199 ++ SYS_PREAD64 = 4200 ++ SYS_PWRITE64 = 4201 ++ SYS_CHOWN = 4202 ++ SYS_GETCWD = 4203 ++ SYS_CAPGET = 4204 ++ SYS_CAPSET = 4205 ++ SYS_SIGALTSTACK = 4206 ++ SYS_SENDFILE = 4207 ++ SYS_GETPMSG = 4208 ++ SYS_PUTPMSG = 4209 ++ SYS_MMAP2 = 4210 ++ SYS_TRUNCATE64 = 4211 ++ SYS_FTRUNCATE64 = 4212 ++ SYS_STAT64 = 4213 ++ SYS_LSTAT64 = 4214 ++ SYS_FSTAT64 = 4215 ++ SYS_PIVOT_ROOT = 4216 ++ SYS_MINCORE = 4217 ++ SYS_MADVISE = 4218 ++ SYS_GETDENTS64 = 4219 ++ SYS_FCNTL64 = 4220 ++ SYS_RESERVED221 = 4221 ++ SYS_GETTID = 4222 ++ SYS_READAHEAD = 4223 ++ SYS_SETXATTR = 4224 ++ SYS_LSETXATTR = 4225 ++ SYS_FSETXATTR = 4226 ++ SYS_GETXATTR = 4227 ++ SYS_LGETXATTR = 4228 ++ SYS_FGETXATTR = 4229 ++ SYS_LISTXATTR = 4230 ++ SYS_LLISTXATTR = 4231 ++ SYS_FLISTXATTR = 4232 ++ SYS_REMOVEXATTR = 4233 ++ SYS_LREMOVEXATTR = 4234 ++ SYS_FREMOVEXATTR = 4235 ++ SYS_TKILL = 4236 ++ SYS_SENDFILE64 = 4237 ++ SYS_FUTEX = 4238 ++ SYS_SCHED_SETAFFINITY = 4239 ++ SYS_SCHED_GETAFFINITY = 4240 ++ SYS_IO_SETUP = 4241 ++ SYS_IO_DESTROY = 4242 ++ SYS_IO_GETEVENTS = 4243 ++ SYS_IO_SUBMIT = 4244 ++ SYS_IO_CANCEL = 4245 ++ SYS_EXIT_GROUP = 4246 ++ SYS_LOOKUP_DCOOKIE = 4247 ++ SYS_EPOLL_CREATE = 4248 ++ SYS_EPOLL_CTL = 4249 ++ SYS_EPOLL_WAIT = 4250 ++ SYS_REMAP_FILE_PAGES = 4251 ++ SYS_SET_TID_ADDRESS = 4252 ++ SYS_RESTART_SYSCALL = 4253 ++ SYS_FADVISE64 = 4254 ++ SYS_STATFS64 = 4255 ++ SYS_FSTATFS64 = 4256 ++ SYS_TIMER_CREATE = 4257 ++ SYS_TIMER_SETTIME = 4258 ++ SYS_TIMER_GETTIME = 4259 ++ SYS_TIMER_GETOVERRUN = 4260 ++ SYS_TIMER_DELETE = 4261 ++ SYS_CLOCK_SETTIME = 4262 ++ SYS_CLOCK_GETTIME = 4263 ++ SYS_CLOCK_GETRES = 4264 ++ SYS_CLOCK_NANOSLEEP = 4265 ++ SYS_TGKILL = 4266 ++ SYS_UTIMES = 4267 ++ SYS_MBIND = 4268 ++ SYS_GET_MEMPOLICY = 4269 ++ SYS_SET_MEMPOLICY = 4270 ++ SYS_MQ_OPEN = 4271 ++ SYS_MQ_UNLINK = 4272 ++ SYS_MQ_TIMEDSEND = 4273 ++ SYS_MQ_TIMEDRECEIVE = 4274 ++ SYS_MQ_NOTIFY = 4275 ++ SYS_MQ_GETSETATTR = 4276 ++ SYS_VSERVER = 4277 ++ SYS_WAITID = 4278 ++ SYS_ADD_KEY = 4280 ++ SYS_REQUEST_KEY = 4281 ++ SYS_KEYCTL = 4282 ++ SYS_SET_THREAD_AREA = 4283 ++ SYS_INOTIFY_INIT = 4284 ++ SYS_INOTIFY_ADD_WATCH = 4285 ++ SYS_INOTIFY_RM_WATCH = 4286 ++ SYS_MIGRATE_PAGES = 4287 ++ SYS_OPENAT = 4288 ++ SYS_MKDIRAT = 4289 ++ SYS_MKNODAT = 4290 ++ SYS_FCHOWNAT = 4291 ++ SYS_FUTIMESAT = 4292 ++ SYS_FSTATAT64 = 4293 ++ SYS_UNLINKAT = 4294 ++ SYS_RENAMEAT = 4295 ++ SYS_LINKAT = 4296 ++ SYS_SYMLINKAT = 4297 ++ SYS_READLINKAT = 4298 ++ SYS_FCHMODAT = 4299 ++ SYS_FACCESSAT = 4300 ++ SYS_PSELECT6 = 4301 ++ SYS_PPOLL = 4302 ++ SYS_UNSHARE = 4303 ++ SYS_SPLICE = 4304 ++ SYS_SYNC_FILE_RANGE = 4305 ++ SYS_TEE = 4306 ++ SYS_VMSPLICE = 4307 ++ SYS_MOVE_PAGES = 4308 ++ SYS_SET_ROBUST_LIST = 4309 ++ SYS_GET_ROBUST_LIST = 4310 ++ SYS_KEXEC_LOAD = 4311 ++ SYS_GETCPU = 4312 ++ SYS_EPOLL_PWAIT = 4313 ++ SYS_IOPRIO_SET = 4314 ++ SYS_IOPRIO_GET = 4315 ++ SYS_UTIMENSAT = 4316 ++ SYS_SIGNALFD = 4317 ++ SYS_TIMERFD = 4318 ++ SYS_EVENTFD = 4319 ++ SYS_FALLOCATE = 4320 ++ SYS_TIMERFD_CREATE = 4321 ++ SYS_TIMERFD_GETTIME = 4322 ++ SYS_TIMERFD_SETTIME = 4323 ++ SYS_SIGNALFD4 = 4324 ++ SYS_EVENTFD2 = 4325 ++ SYS_EPOLL_CREATE1 = 4326 ++ SYS_DUP3 = 4327 ++ SYS_PIPE2 = 4328 ++ SYS_INOTIFY_INIT1 = 4329 ++ SYS_PREADV = 4330 ++ SYS_PWRITEV = 4331 ++ SYS_RT_TGSIGQUEUEINFO = 4332 ++ SYS_PERF_EVENT_OPEN = 4333 ++ SYS_ACCEPT4 = 4334 ++ SYS_RECVMMSG = 4335 ++ SYS_FANOTIFY_INIT = 4336 ++ SYS_FANOTIFY_MARK = 4337 ++ SYS_PRLIMIT64 = 4338 ++ SYS_NAME_TO_HANDLE_AT = 4339 ++ SYS_OPEN_BY_HANDLE_AT = 4340 ++ SYS_CLOCK_ADJTIME = 4341 ++ SYS_SYNCFS = 4342 ++ SYS_SENDMMSG = 4343 ++ SYS_SETNS = 4344 ++ SYS_PROCESS_VM_READV = 4345 ++ SYS_PROCESS_VM_WRITEV = 4346 ++ SYS_KCMP = 4347 ++ SYS_FINIT_MODULE = 4348 ++ SYS_SCHED_SETATTR = 4349 ++ SYS_SCHED_GETATTR = 4350 ++ SYS_RENAMEAT2 = 4351 ++ SYS_SECCOMP = 4352 ++ SYS_GETRANDOM = 4353 ++ SYS_MEMFD_CREATE = 4354 ++ SYS_BPF = 4355 ++ SYS_EXECVEAT = 4356 ++ SYS_USERFAULTFD = 4357 ++ SYS_MEMBARRIER = 4358 ++ SYS_MLOCK2 = 4359 ++ SYS_COPY_FILE_RANGE = 4360 ++ SYS_PREADV2 = 4361 ++ SYS_PWRITEV2 = 4362 ++ SYS_PKEY_MPROTECT = 4363 ++ SYS_PKEY_ALLOC = 4364 ++ SYS_PKEY_FREE = 4365 ++) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +new file mode 100644 +index 0000000..0deec82 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +@@ -0,0 +1,369 @@ ++// mksysnum_linux.pl -Ilinux/usr/include -m64 -D__powerpc64__ linux/usr/include/asm/unistd.h ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT ++ ++// +build ppc64,linux ++ ++package unix ++ ++const ( ++ SYS_RESTART_SYSCALL = 0 ++ SYS_EXIT = 1 ++ SYS_FORK = 2 ++ SYS_READ = 3 ++ SYS_WRITE = 4 ++ SYS_OPEN = 5 ++ SYS_CLOSE = 6 ++ SYS_WAITPID = 7 ++ SYS_CREAT = 8 ++ SYS_LINK = 9 ++ SYS_UNLINK = 10 ++ SYS_EXECVE = 11 ++ SYS_CHDIR = 12 ++ SYS_TIME = 13 ++ SYS_MKNOD = 14 ++ SYS_CHMOD = 15 ++ SYS_LCHOWN = 16 ++ SYS_BREAK = 17 ++ SYS_OLDSTAT = 18 ++ SYS_LSEEK = 19 ++ SYS_GETPID = 20 ++ SYS_MOUNT = 21 ++ SYS_UMOUNT = 22 ++ SYS_SETUID = 23 ++ SYS_GETUID = 24 ++ SYS_STIME = 25 ++ SYS_PTRACE = 26 ++ SYS_ALARM = 27 ++ SYS_OLDFSTAT = 28 ++ SYS_PAUSE = 29 ++ SYS_UTIME = 30 ++ SYS_STTY = 31 ++ SYS_GTTY = 32 ++ SYS_ACCESS = 33 ++ SYS_NICE = 34 ++ SYS_FTIME = 35 ++ SYS_SYNC = 36 ++ SYS_KILL = 37 ++ SYS_RENAME = 38 ++ SYS_MKDIR = 39 ++ SYS_RMDIR = 40 ++ SYS_DUP = 41 ++ SYS_PIPE = 42 ++ SYS_TIMES = 43 ++ SYS_PROF = 44 ++ SYS_BRK = 45 ++ SYS_SETGID = 46 ++ SYS_GETGID = 47 ++ SYS_SIGNAL = 48 ++ SYS_GETEUID = 49 ++ SYS_GETEGID = 50 ++ SYS_ACCT = 51 ++ SYS_UMOUNT2 = 52 ++ SYS_LOCK = 53 ++ SYS_IOCTL = 54 ++ SYS_FCNTL = 55 ++ SYS_MPX = 56 ++ SYS_SETPGID = 57 ++ SYS_ULIMIT = 58 ++ SYS_OLDOLDUNAME = 59 ++ SYS_UMASK = 60 ++ SYS_CHROOT = 61 ++ SYS_USTAT = 62 ++ SYS_DUP2 = 63 ++ SYS_GETPPID = 64 ++ SYS_GETPGRP = 65 ++ SYS_SETSID = 66 ++ SYS_SIGACTION = 67 ++ SYS_SGETMASK = 68 ++ SYS_SSETMASK = 69 ++ SYS_SETREUID = 70 ++ SYS_SETREGID = 71 ++ SYS_SIGSUSPEND = 72 ++ SYS_SIGPENDING = 73 ++ SYS_SETHOSTNAME = 74 ++ SYS_SETRLIMIT = 75 ++ SYS_GETRLIMIT = 76 ++ SYS_GETRUSAGE = 77 ++ SYS_GETTIMEOFDAY = 78 ++ SYS_SETTIMEOFDAY = 79 ++ SYS_GETGROUPS = 80 ++ SYS_SETGROUPS = 81 ++ SYS_SELECT = 82 ++ SYS_SYMLINK = 83 ++ SYS_OLDLSTAT = 84 ++ SYS_READLINK = 85 ++ SYS_USELIB = 86 ++ SYS_SWAPON = 87 ++ SYS_REBOOT = 88 ++ SYS_READDIR = 89 ++ SYS_MMAP = 90 ++ SYS_MUNMAP = 91 ++ SYS_TRUNCATE = 92 ++ SYS_FTRUNCATE = 93 ++ SYS_FCHMOD = 94 ++ SYS_FCHOWN = 95 ++ SYS_GETPRIORITY = 96 ++ SYS_SETPRIORITY = 97 ++ SYS_PROFIL = 98 ++ SYS_STATFS = 99 ++ SYS_FSTATFS = 100 ++ SYS_IOPERM = 101 ++ SYS_SOCKETCALL = 102 ++ SYS_SYSLOG = 103 ++ SYS_SETITIMER = 104 ++ SYS_GETITIMER = 105 ++ SYS_STAT = 106 ++ SYS_LSTAT = 107 ++ SYS_FSTAT = 108 ++ SYS_OLDUNAME = 109 ++ SYS_IOPL = 110 ++ SYS_VHANGUP = 111 ++ SYS_IDLE = 112 ++ SYS_VM86 = 113 ++ SYS_WAIT4 = 114 ++ SYS_SWAPOFF = 115 ++ SYS_SYSINFO = 116 ++ SYS_IPC = 117 ++ SYS_FSYNC = 118 ++ SYS_SIGRETURN = 119 ++ SYS_CLONE = 120 ++ SYS_SETDOMAINNAME = 121 ++ SYS_UNAME = 122 ++ SYS_MODIFY_LDT = 123 ++ SYS_ADJTIMEX = 124 ++ SYS_MPROTECT = 125 ++ SYS_SIGPROCMASK = 126 ++ SYS_CREATE_MODULE = 127 ++ SYS_INIT_MODULE = 128 ++ SYS_DELETE_MODULE = 129 ++ SYS_GET_KERNEL_SYMS = 130 ++ SYS_QUOTACTL = 131 ++ SYS_GETPGID = 132 ++ SYS_FCHDIR = 133 ++ SYS_BDFLUSH = 134 ++ SYS_SYSFS = 135 ++ SYS_PERSONALITY = 136 ++ SYS_AFS_SYSCALL = 137 ++ SYS_SETFSUID = 138 ++ SYS_SETFSGID = 139 ++ SYS__LLSEEK = 140 ++ SYS_GETDENTS = 141 ++ SYS__NEWSELECT = 142 ++ SYS_FLOCK = 143 ++ SYS_MSYNC = 144 ++ SYS_READV = 145 ++ SYS_WRITEV = 146 ++ SYS_GETSID = 147 ++ SYS_FDATASYNC = 148 ++ SYS__SYSCTL = 149 ++ SYS_MLOCK = 150 ++ SYS_MUNLOCK = 151 ++ SYS_MLOCKALL = 152 ++ SYS_MUNLOCKALL = 153 ++ SYS_SCHED_SETPARAM = 154 ++ SYS_SCHED_GETPARAM = 155 ++ SYS_SCHED_SETSCHEDULER = 156 ++ SYS_SCHED_GETSCHEDULER = 157 ++ SYS_SCHED_YIELD = 158 ++ SYS_SCHED_GET_PRIORITY_MAX = 159 ++ SYS_SCHED_GET_PRIORITY_MIN = 160 ++ SYS_SCHED_RR_GET_INTERVAL = 161 ++ SYS_NANOSLEEP = 162 ++ SYS_MREMAP = 163 ++ SYS_SETRESUID = 164 ++ SYS_GETRESUID = 165 ++ SYS_QUERY_MODULE = 166 ++ SYS_POLL = 167 ++ SYS_NFSSERVCTL = 168 ++ SYS_SETRESGID = 169 ++ SYS_GETRESGID = 170 ++ SYS_PRCTL = 171 ++ SYS_RT_SIGRETURN = 172 ++ SYS_RT_SIGACTION = 173 ++ SYS_RT_SIGPROCMASK = 174 ++ SYS_RT_SIGPENDING = 175 ++ SYS_RT_SIGTIMEDWAIT = 176 ++ SYS_RT_SIGQUEUEINFO = 177 ++ SYS_RT_SIGSUSPEND = 178 ++ SYS_PREAD64 = 179 ++ SYS_PWRITE64 = 180 ++ SYS_CHOWN = 181 ++ SYS_GETCWD = 182 ++ SYS_CAPGET = 183 ++ SYS_CAPSET = 184 ++ SYS_SIGALTSTACK = 185 ++ SYS_SENDFILE = 186 ++ SYS_GETPMSG = 187 ++ SYS_PUTPMSG = 188 ++ SYS_VFORK = 189 ++ SYS_UGETRLIMIT = 190 ++ SYS_READAHEAD = 191 ++ SYS_PCICONFIG_READ = 198 ++ SYS_PCICONFIG_WRITE = 199 ++ SYS_PCICONFIG_IOBASE = 200 ++ SYS_MULTIPLEXER = 201 ++ SYS_GETDENTS64 = 202 ++ SYS_PIVOT_ROOT = 203 ++ SYS_MADVISE = 205 ++ SYS_MINCORE = 206 ++ SYS_GETTID = 207 ++ SYS_TKILL = 208 ++ SYS_SETXATTR = 209 ++ SYS_LSETXATTR = 210 ++ SYS_FSETXATTR = 211 ++ SYS_GETXATTR = 212 ++ SYS_LGETXATTR = 213 ++ SYS_FGETXATTR = 214 ++ SYS_LISTXATTR = 215 ++ SYS_LLISTXATTR = 216 ++ SYS_FLISTXATTR = 217 ++ SYS_REMOVEXATTR = 218 ++ SYS_LREMOVEXATTR = 219 ++ SYS_FREMOVEXATTR = 220 ++ SYS_FUTEX = 221 ++ SYS_SCHED_SETAFFINITY = 222 ++ SYS_SCHED_GETAFFINITY = 223 ++ SYS_TUXCALL = 225 ++ SYS_IO_SETUP = 227 ++ SYS_IO_DESTROY = 228 ++ SYS_IO_GETEVENTS = 229 ++ SYS_IO_SUBMIT = 230 ++ SYS_IO_CANCEL = 231 ++ SYS_SET_TID_ADDRESS = 232 ++ SYS_FADVISE64 = 233 ++ SYS_EXIT_GROUP = 234 ++ SYS_LOOKUP_DCOOKIE = 235 ++ SYS_EPOLL_CREATE = 236 ++ SYS_EPOLL_CTL = 237 ++ SYS_EPOLL_WAIT = 238 ++ SYS_REMAP_FILE_PAGES = 239 ++ SYS_TIMER_CREATE = 240 ++ SYS_TIMER_SETTIME = 241 ++ SYS_TIMER_GETTIME = 242 ++ SYS_TIMER_GETOVERRUN = 243 ++ SYS_TIMER_DELETE = 244 ++ SYS_CLOCK_SETTIME = 245 ++ SYS_CLOCK_GETTIME = 246 ++ SYS_CLOCK_GETRES = 247 ++ SYS_CLOCK_NANOSLEEP = 248 ++ SYS_SWAPCONTEXT = 249 ++ SYS_TGKILL = 250 ++ SYS_UTIMES = 251 ++ SYS_STATFS64 = 252 ++ SYS_FSTATFS64 = 253 ++ SYS_RTAS = 255 ++ SYS_SYS_DEBUG_SETCONTEXT = 256 ++ SYS_MIGRATE_PAGES = 258 ++ SYS_MBIND = 259 ++ SYS_GET_MEMPOLICY = 260 ++ SYS_SET_MEMPOLICY = 261 ++ SYS_MQ_OPEN = 262 ++ SYS_MQ_UNLINK = 263 ++ SYS_MQ_TIMEDSEND = 264 ++ SYS_MQ_TIMEDRECEIVE = 265 ++ SYS_MQ_NOTIFY = 266 ++ SYS_MQ_GETSETATTR = 267 ++ SYS_KEXEC_LOAD = 268 ++ SYS_ADD_KEY = 269 ++ SYS_REQUEST_KEY = 270 ++ SYS_KEYCTL = 271 ++ SYS_WAITID = 272 ++ SYS_IOPRIO_SET = 273 ++ SYS_IOPRIO_GET = 274 ++ SYS_INOTIFY_INIT = 275 ++ SYS_INOTIFY_ADD_WATCH = 276 ++ SYS_INOTIFY_RM_WATCH = 277 ++ SYS_SPU_RUN = 278 ++ SYS_SPU_CREATE = 279 ++ SYS_PSELECT6 = 280 ++ SYS_PPOLL = 281 ++ SYS_UNSHARE = 282 ++ SYS_SPLICE = 283 ++ SYS_TEE = 284 ++ SYS_VMSPLICE = 285 ++ SYS_OPENAT = 286 ++ SYS_MKDIRAT = 287 ++ SYS_MKNODAT = 288 ++ SYS_FCHOWNAT = 289 ++ SYS_FUTIMESAT = 290 ++ SYS_NEWFSTATAT = 291 ++ SYS_UNLINKAT = 292 ++ SYS_RENAMEAT = 293 ++ SYS_LINKAT = 294 ++ SYS_SYMLINKAT = 295 ++ SYS_READLINKAT = 296 ++ SYS_FCHMODAT = 297 ++ SYS_FACCESSAT = 298 ++ SYS_GET_ROBUST_LIST = 299 ++ SYS_SET_ROBUST_LIST = 300 ++ SYS_MOVE_PAGES = 301 ++ SYS_GETCPU = 302 ++ SYS_EPOLL_PWAIT = 303 ++ SYS_UTIMENSAT = 304 ++ SYS_SIGNALFD = 305 ++ SYS_TIMERFD_CREATE = 306 ++ SYS_EVENTFD = 307 ++ SYS_SYNC_FILE_RANGE2 = 308 ++ SYS_FALLOCATE = 309 ++ SYS_SUBPAGE_PROT = 310 ++ SYS_TIMERFD_SETTIME = 311 ++ SYS_TIMERFD_GETTIME = 312 ++ SYS_SIGNALFD4 = 313 ++ SYS_EVENTFD2 = 314 ++ SYS_EPOLL_CREATE1 = 315 ++ SYS_DUP3 = 316 ++ SYS_PIPE2 = 317 ++ SYS_INOTIFY_INIT1 = 318 ++ SYS_PERF_EVENT_OPEN = 319 ++ SYS_PREADV = 320 ++ SYS_PWRITEV = 321 ++ SYS_RT_TGSIGQUEUEINFO = 322 ++ SYS_FANOTIFY_INIT = 323 ++ SYS_FANOTIFY_MARK = 324 ++ SYS_PRLIMIT64 = 325 ++ SYS_SOCKET = 326 ++ SYS_BIND = 327 ++ SYS_CONNECT = 328 ++ SYS_LISTEN = 329 ++ SYS_ACCEPT = 330 ++ SYS_GETSOCKNAME = 331 ++ SYS_GETPEERNAME = 332 ++ SYS_SOCKETPAIR = 333 ++ SYS_SEND = 334 ++ SYS_SENDTO = 335 ++ SYS_RECV = 336 ++ SYS_RECVFROM = 337 ++ SYS_SHUTDOWN = 338 ++ SYS_SETSOCKOPT = 339 ++ SYS_GETSOCKOPT = 340 ++ SYS_SENDMSG = 341 ++ SYS_RECVMSG = 342 ++ SYS_RECVMMSG = 343 ++ SYS_ACCEPT4 = 344 ++ SYS_NAME_TO_HANDLE_AT = 345 ++ SYS_OPEN_BY_HANDLE_AT = 346 ++ SYS_CLOCK_ADJTIME = 347 ++ SYS_SYNCFS = 348 ++ SYS_SENDMMSG = 349 ++ SYS_SETNS = 350 ++ SYS_PROCESS_VM_READV = 351 ++ SYS_PROCESS_VM_WRITEV = 352 ++ SYS_FINIT_MODULE = 353 ++ SYS_KCMP = 354 ++ SYS_SCHED_SETATTR = 355 ++ SYS_SCHED_GETATTR = 356 ++ SYS_RENAMEAT2 = 357 ++ SYS_SECCOMP = 358 ++ SYS_GETRANDOM = 359 ++ SYS_MEMFD_CREATE = 360 ++ SYS_BPF = 361 ++ SYS_EXECVEAT = 362 ++ SYS_SWITCH_ENDIAN = 363 ++ SYS_USERFAULTFD = 364 ++ SYS_MEMBARRIER = 365 ++ SYS_MLOCK2 = 378 ++ SYS_COPY_FILE_RANGE = 379 ++ SYS_PREADV2 = 380 ++ SYS_PWRITEV2 = 381 ++ SYS_KEXEC_FILE_LOAD = 382 ++) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +new file mode 100644 +index 0000000..3f701be +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +@@ -0,0 +1,369 @@ ++// mksysnum_linux.pl -Ilinux/usr/include -m64 -D__powerpc64__ linux/usr/include/asm/unistd.h ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT ++ ++// +build ppc64le,linux ++ ++package unix ++ ++const ( ++ SYS_RESTART_SYSCALL = 0 ++ SYS_EXIT = 1 ++ SYS_FORK = 2 ++ SYS_READ = 3 ++ SYS_WRITE = 4 ++ SYS_OPEN = 5 ++ SYS_CLOSE = 6 ++ SYS_WAITPID = 7 ++ SYS_CREAT = 8 ++ SYS_LINK = 9 ++ SYS_UNLINK = 10 ++ SYS_EXECVE = 11 ++ SYS_CHDIR = 12 ++ SYS_TIME = 13 ++ SYS_MKNOD = 14 ++ SYS_CHMOD = 15 ++ SYS_LCHOWN = 16 ++ SYS_BREAK = 17 ++ SYS_OLDSTAT = 18 ++ SYS_LSEEK = 19 ++ SYS_GETPID = 20 ++ SYS_MOUNT = 21 ++ SYS_UMOUNT = 22 ++ SYS_SETUID = 23 ++ SYS_GETUID = 24 ++ SYS_STIME = 25 ++ SYS_PTRACE = 26 ++ SYS_ALARM = 27 ++ SYS_OLDFSTAT = 28 ++ SYS_PAUSE = 29 ++ SYS_UTIME = 30 ++ SYS_STTY = 31 ++ SYS_GTTY = 32 ++ SYS_ACCESS = 33 ++ SYS_NICE = 34 ++ SYS_FTIME = 35 ++ SYS_SYNC = 36 ++ SYS_KILL = 37 ++ SYS_RENAME = 38 ++ SYS_MKDIR = 39 ++ SYS_RMDIR = 40 ++ SYS_DUP = 41 ++ SYS_PIPE = 42 ++ SYS_TIMES = 43 ++ SYS_PROF = 44 ++ SYS_BRK = 45 ++ SYS_SETGID = 46 ++ SYS_GETGID = 47 ++ SYS_SIGNAL = 48 ++ SYS_GETEUID = 49 ++ SYS_GETEGID = 50 ++ SYS_ACCT = 51 ++ SYS_UMOUNT2 = 52 ++ SYS_LOCK = 53 ++ SYS_IOCTL = 54 ++ SYS_FCNTL = 55 ++ SYS_MPX = 56 ++ SYS_SETPGID = 57 ++ SYS_ULIMIT = 58 ++ SYS_OLDOLDUNAME = 59 ++ SYS_UMASK = 60 ++ SYS_CHROOT = 61 ++ SYS_USTAT = 62 ++ SYS_DUP2 = 63 ++ SYS_GETPPID = 64 ++ SYS_GETPGRP = 65 ++ SYS_SETSID = 66 ++ SYS_SIGACTION = 67 ++ SYS_SGETMASK = 68 ++ SYS_SSETMASK = 69 ++ SYS_SETREUID = 70 ++ SYS_SETREGID = 71 ++ SYS_SIGSUSPEND = 72 ++ SYS_SIGPENDING = 73 ++ SYS_SETHOSTNAME = 74 ++ SYS_SETRLIMIT = 75 ++ SYS_GETRLIMIT = 76 ++ SYS_GETRUSAGE = 77 ++ SYS_GETTIMEOFDAY = 78 ++ SYS_SETTIMEOFDAY = 79 ++ SYS_GETGROUPS = 80 ++ SYS_SETGROUPS = 81 ++ SYS_SELECT = 82 ++ SYS_SYMLINK = 83 ++ SYS_OLDLSTAT = 84 ++ SYS_READLINK = 85 ++ SYS_USELIB = 86 ++ SYS_SWAPON = 87 ++ SYS_REBOOT = 88 ++ SYS_READDIR = 89 ++ SYS_MMAP = 90 ++ SYS_MUNMAP = 91 ++ SYS_TRUNCATE = 92 ++ SYS_FTRUNCATE = 93 ++ SYS_FCHMOD = 94 ++ SYS_FCHOWN = 95 ++ SYS_GETPRIORITY = 96 ++ SYS_SETPRIORITY = 97 ++ SYS_PROFIL = 98 ++ SYS_STATFS = 99 ++ SYS_FSTATFS = 100 ++ SYS_IOPERM = 101 ++ SYS_SOCKETCALL = 102 ++ SYS_SYSLOG = 103 ++ SYS_SETITIMER = 104 ++ SYS_GETITIMER = 105 ++ SYS_STAT = 106 ++ SYS_LSTAT = 107 ++ SYS_FSTAT = 108 ++ SYS_OLDUNAME = 109 ++ SYS_IOPL = 110 ++ SYS_VHANGUP = 111 ++ SYS_IDLE = 112 ++ SYS_VM86 = 113 ++ SYS_WAIT4 = 114 ++ SYS_SWAPOFF = 115 ++ SYS_SYSINFO = 116 ++ SYS_IPC = 117 ++ SYS_FSYNC = 118 ++ SYS_SIGRETURN = 119 ++ SYS_CLONE = 120 ++ SYS_SETDOMAINNAME = 121 ++ SYS_UNAME = 122 ++ SYS_MODIFY_LDT = 123 ++ SYS_ADJTIMEX = 124 ++ SYS_MPROTECT = 125 ++ SYS_SIGPROCMASK = 126 ++ SYS_CREATE_MODULE = 127 ++ SYS_INIT_MODULE = 128 ++ SYS_DELETE_MODULE = 129 ++ SYS_GET_KERNEL_SYMS = 130 ++ SYS_QUOTACTL = 131 ++ SYS_GETPGID = 132 ++ SYS_FCHDIR = 133 ++ SYS_BDFLUSH = 134 ++ SYS_SYSFS = 135 ++ SYS_PERSONALITY = 136 ++ SYS_AFS_SYSCALL = 137 ++ SYS_SETFSUID = 138 ++ SYS_SETFSGID = 139 ++ SYS__LLSEEK = 140 ++ SYS_GETDENTS = 141 ++ SYS__NEWSELECT = 142 ++ SYS_FLOCK = 143 ++ SYS_MSYNC = 144 ++ SYS_READV = 145 ++ SYS_WRITEV = 146 ++ SYS_GETSID = 147 ++ SYS_FDATASYNC = 148 ++ SYS__SYSCTL = 149 ++ SYS_MLOCK = 150 ++ SYS_MUNLOCK = 151 ++ SYS_MLOCKALL = 152 ++ SYS_MUNLOCKALL = 153 ++ SYS_SCHED_SETPARAM = 154 ++ SYS_SCHED_GETPARAM = 155 ++ SYS_SCHED_SETSCHEDULER = 156 ++ SYS_SCHED_GETSCHEDULER = 157 ++ SYS_SCHED_YIELD = 158 ++ SYS_SCHED_GET_PRIORITY_MAX = 159 ++ SYS_SCHED_GET_PRIORITY_MIN = 160 ++ SYS_SCHED_RR_GET_INTERVAL = 161 ++ SYS_NANOSLEEP = 162 ++ SYS_MREMAP = 163 ++ SYS_SETRESUID = 164 ++ SYS_GETRESUID = 165 ++ SYS_QUERY_MODULE = 166 ++ SYS_POLL = 167 ++ SYS_NFSSERVCTL = 168 ++ SYS_SETRESGID = 169 ++ SYS_GETRESGID = 170 ++ SYS_PRCTL = 171 ++ SYS_RT_SIGRETURN = 172 ++ SYS_RT_SIGACTION = 173 ++ SYS_RT_SIGPROCMASK = 174 ++ SYS_RT_SIGPENDING = 175 ++ SYS_RT_SIGTIMEDWAIT = 176 ++ SYS_RT_SIGQUEUEINFO = 177 ++ SYS_RT_SIGSUSPEND = 178 ++ SYS_PREAD64 = 179 ++ SYS_PWRITE64 = 180 ++ SYS_CHOWN = 181 ++ SYS_GETCWD = 182 ++ SYS_CAPGET = 183 ++ SYS_CAPSET = 184 ++ SYS_SIGALTSTACK = 185 ++ SYS_SENDFILE = 186 ++ SYS_GETPMSG = 187 ++ SYS_PUTPMSG = 188 ++ SYS_VFORK = 189 ++ SYS_UGETRLIMIT = 190 ++ SYS_READAHEAD = 191 ++ SYS_PCICONFIG_READ = 198 ++ SYS_PCICONFIG_WRITE = 199 ++ SYS_PCICONFIG_IOBASE = 200 ++ SYS_MULTIPLEXER = 201 ++ SYS_GETDENTS64 = 202 ++ SYS_PIVOT_ROOT = 203 ++ SYS_MADVISE = 205 ++ SYS_MINCORE = 206 ++ SYS_GETTID = 207 ++ SYS_TKILL = 208 ++ SYS_SETXATTR = 209 ++ SYS_LSETXATTR = 210 ++ SYS_FSETXATTR = 211 ++ SYS_GETXATTR = 212 ++ SYS_LGETXATTR = 213 ++ SYS_FGETXATTR = 214 ++ SYS_LISTXATTR = 215 ++ SYS_LLISTXATTR = 216 ++ SYS_FLISTXATTR = 217 ++ SYS_REMOVEXATTR = 218 ++ SYS_LREMOVEXATTR = 219 ++ SYS_FREMOVEXATTR = 220 ++ SYS_FUTEX = 221 ++ SYS_SCHED_SETAFFINITY = 222 ++ SYS_SCHED_GETAFFINITY = 223 ++ SYS_TUXCALL = 225 ++ SYS_IO_SETUP = 227 ++ SYS_IO_DESTROY = 228 ++ SYS_IO_GETEVENTS = 229 ++ SYS_IO_SUBMIT = 230 ++ SYS_IO_CANCEL = 231 ++ SYS_SET_TID_ADDRESS = 232 ++ SYS_FADVISE64 = 233 ++ SYS_EXIT_GROUP = 234 ++ SYS_LOOKUP_DCOOKIE = 235 ++ SYS_EPOLL_CREATE = 236 ++ SYS_EPOLL_CTL = 237 ++ SYS_EPOLL_WAIT = 238 ++ SYS_REMAP_FILE_PAGES = 239 ++ SYS_TIMER_CREATE = 240 ++ SYS_TIMER_SETTIME = 241 ++ SYS_TIMER_GETTIME = 242 ++ SYS_TIMER_GETOVERRUN = 243 ++ SYS_TIMER_DELETE = 244 ++ SYS_CLOCK_SETTIME = 245 ++ SYS_CLOCK_GETTIME = 246 ++ SYS_CLOCK_GETRES = 247 ++ SYS_CLOCK_NANOSLEEP = 248 ++ SYS_SWAPCONTEXT = 249 ++ SYS_TGKILL = 250 ++ SYS_UTIMES = 251 ++ SYS_STATFS64 = 252 ++ SYS_FSTATFS64 = 253 ++ SYS_RTAS = 255 ++ SYS_SYS_DEBUG_SETCONTEXT = 256 ++ SYS_MIGRATE_PAGES = 258 ++ SYS_MBIND = 259 ++ SYS_GET_MEMPOLICY = 260 ++ SYS_SET_MEMPOLICY = 261 ++ SYS_MQ_OPEN = 262 ++ SYS_MQ_UNLINK = 263 ++ SYS_MQ_TIMEDSEND = 264 ++ SYS_MQ_TIMEDRECEIVE = 265 ++ SYS_MQ_NOTIFY = 266 ++ SYS_MQ_GETSETATTR = 267 ++ SYS_KEXEC_LOAD = 268 ++ SYS_ADD_KEY = 269 ++ SYS_REQUEST_KEY = 270 ++ SYS_KEYCTL = 271 ++ SYS_WAITID = 272 ++ SYS_IOPRIO_SET = 273 ++ SYS_IOPRIO_GET = 274 ++ SYS_INOTIFY_INIT = 275 ++ SYS_INOTIFY_ADD_WATCH = 276 ++ SYS_INOTIFY_RM_WATCH = 277 ++ SYS_SPU_RUN = 278 ++ SYS_SPU_CREATE = 279 ++ SYS_PSELECT6 = 280 ++ SYS_PPOLL = 281 ++ SYS_UNSHARE = 282 ++ SYS_SPLICE = 283 ++ SYS_TEE = 284 ++ SYS_VMSPLICE = 285 ++ SYS_OPENAT = 286 ++ SYS_MKDIRAT = 287 ++ SYS_MKNODAT = 288 ++ SYS_FCHOWNAT = 289 ++ SYS_FUTIMESAT = 290 ++ SYS_NEWFSTATAT = 291 ++ SYS_UNLINKAT = 292 ++ SYS_RENAMEAT = 293 ++ SYS_LINKAT = 294 ++ SYS_SYMLINKAT = 295 ++ SYS_READLINKAT = 296 ++ SYS_FCHMODAT = 297 ++ SYS_FACCESSAT = 298 ++ SYS_GET_ROBUST_LIST = 299 ++ SYS_SET_ROBUST_LIST = 300 ++ SYS_MOVE_PAGES = 301 ++ SYS_GETCPU = 302 ++ SYS_EPOLL_PWAIT = 303 ++ SYS_UTIMENSAT = 304 ++ SYS_SIGNALFD = 305 ++ SYS_TIMERFD_CREATE = 306 ++ SYS_EVENTFD = 307 ++ SYS_SYNC_FILE_RANGE2 = 308 ++ SYS_FALLOCATE = 309 ++ SYS_SUBPAGE_PROT = 310 ++ SYS_TIMERFD_SETTIME = 311 ++ SYS_TIMERFD_GETTIME = 312 ++ SYS_SIGNALFD4 = 313 ++ SYS_EVENTFD2 = 314 ++ SYS_EPOLL_CREATE1 = 315 ++ SYS_DUP3 = 316 ++ SYS_PIPE2 = 317 ++ SYS_INOTIFY_INIT1 = 318 ++ SYS_PERF_EVENT_OPEN = 319 ++ SYS_PREADV = 320 ++ SYS_PWRITEV = 321 ++ SYS_RT_TGSIGQUEUEINFO = 322 ++ SYS_FANOTIFY_INIT = 323 ++ SYS_FANOTIFY_MARK = 324 ++ SYS_PRLIMIT64 = 325 ++ SYS_SOCKET = 326 ++ SYS_BIND = 327 ++ SYS_CONNECT = 328 ++ SYS_LISTEN = 329 ++ SYS_ACCEPT = 330 ++ SYS_GETSOCKNAME = 331 ++ SYS_GETPEERNAME = 332 ++ SYS_SOCKETPAIR = 333 ++ SYS_SEND = 334 ++ SYS_SENDTO = 335 ++ SYS_RECV = 336 ++ SYS_RECVFROM = 337 ++ SYS_SHUTDOWN = 338 ++ SYS_SETSOCKOPT = 339 ++ SYS_GETSOCKOPT = 340 ++ SYS_SENDMSG = 341 ++ SYS_RECVMSG = 342 ++ SYS_RECVMMSG = 343 ++ SYS_ACCEPT4 = 344 ++ SYS_NAME_TO_HANDLE_AT = 345 ++ SYS_OPEN_BY_HANDLE_AT = 346 ++ SYS_CLOCK_ADJTIME = 347 ++ SYS_SYNCFS = 348 ++ SYS_SENDMMSG = 349 ++ SYS_SETNS = 350 ++ SYS_PROCESS_VM_READV = 351 ++ SYS_PROCESS_VM_WRITEV = 352 ++ SYS_FINIT_MODULE = 353 ++ SYS_KCMP = 354 ++ SYS_SCHED_SETATTR = 355 ++ SYS_SCHED_GETATTR = 356 ++ SYS_RENAMEAT2 = 357 ++ SYS_SECCOMP = 358 ++ SYS_GETRANDOM = 359 ++ SYS_MEMFD_CREATE = 360 ++ SYS_BPF = 361 ++ SYS_EXECVEAT = 362 ++ SYS_SWITCH_ENDIAN = 363 ++ SYS_USERFAULTFD = 364 ++ SYS_MEMBARRIER = 365 ++ SYS_MLOCK2 = 378 ++ SYS_COPY_FILE_RANGE = 379 ++ SYS_PREADV2 = 380 ++ SYS_PWRITEV2 = 381 ++ SYS_KEXEC_FILE_LOAD = 382 ++) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +new file mode 100644 +index 0000000..8b35997 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +@@ -0,0 +1,331 @@ ++// mksysnum_linux.pl -Ilinux/usr/include -m64 -D__s390x__ linux/usr/include/asm/unistd.h ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT ++ ++// +build s390x,linux ++ ++package unix ++ ++const ( ++ SYS_EXIT = 1 ++ SYS_FORK = 2 ++ SYS_READ = 3 ++ SYS_WRITE = 4 ++ SYS_OPEN = 5 ++ SYS_CLOSE = 6 ++ SYS_RESTART_SYSCALL = 7 ++ SYS_CREAT = 8 ++ SYS_LINK = 9 ++ SYS_UNLINK = 10 ++ SYS_EXECVE = 11 ++ SYS_CHDIR = 12 ++ SYS_MKNOD = 14 ++ SYS_CHMOD = 15 ++ SYS_LSEEK = 19 ++ SYS_GETPID = 20 ++ SYS_MOUNT = 21 ++ SYS_UMOUNT = 22 ++ SYS_PTRACE = 26 ++ SYS_ALARM = 27 ++ SYS_PAUSE = 29 ++ SYS_UTIME = 30 ++ SYS_ACCESS = 33 ++ SYS_NICE = 34 ++ SYS_SYNC = 36 ++ SYS_KILL = 37 ++ SYS_RENAME = 38 ++ SYS_MKDIR = 39 ++ SYS_RMDIR = 40 ++ SYS_DUP = 41 ++ SYS_PIPE = 42 ++ SYS_TIMES = 43 ++ SYS_BRK = 45 ++ SYS_SIGNAL = 48 ++ SYS_ACCT = 51 ++ SYS_UMOUNT2 = 52 ++ SYS_IOCTL = 54 ++ SYS_FCNTL = 55 ++ SYS_SETPGID = 57 ++ SYS_UMASK = 60 ++ SYS_CHROOT = 61 ++ SYS_USTAT = 62 ++ SYS_DUP2 = 63 ++ SYS_GETPPID = 64 ++ SYS_GETPGRP = 65 ++ SYS_SETSID = 66 ++ SYS_SIGACTION = 67 ++ SYS_SIGSUSPEND = 72 ++ SYS_SIGPENDING = 73 ++ SYS_SETHOSTNAME = 74 ++ SYS_SETRLIMIT = 75 ++ SYS_GETRUSAGE = 77 ++ SYS_GETTIMEOFDAY = 78 ++ SYS_SETTIMEOFDAY = 79 ++ SYS_SYMLINK = 83 ++ SYS_READLINK = 85 ++ SYS_USELIB = 86 ++ SYS_SWAPON = 87 ++ SYS_REBOOT = 88 ++ SYS_READDIR = 89 ++ SYS_MMAP = 90 ++ SYS_MUNMAP = 91 ++ SYS_TRUNCATE = 92 ++ SYS_FTRUNCATE = 93 ++ SYS_FCHMOD = 94 ++ SYS_GETPRIORITY = 96 ++ SYS_SETPRIORITY = 97 ++ SYS_STATFS = 99 ++ SYS_FSTATFS = 100 ++ SYS_SOCKETCALL = 102 ++ SYS_SYSLOG = 103 ++ SYS_SETITIMER = 104 ++ SYS_GETITIMER = 105 ++ SYS_STAT = 106 ++ SYS_LSTAT = 107 ++ SYS_FSTAT = 108 ++ SYS_LOOKUP_DCOOKIE = 110 ++ SYS_VHANGUP = 111 ++ SYS_IDLE = 112 ++ SYS_WAIT4 = 114 ++ SYS_SWAPOFF = 115 ++ SYS_SYSINFO = 116 ++ SYS_IPC = 117 ++ SYS_FSYNC = 118 ++ SYS_SIGRETURN = 119 ++ SYS_CLONE = 120 ++ SYS_SETDOMAINNAME = 121 ++ SYS_UNAME = 122 ++ SYS_ADJTIMEX = 124 ++ SYS_MPROTECT = 125 ++ SYS_SIGPROCMASK = 126 ++ SYS_CREATE_MODULE = 127 ++ SYS_INIT_MODULE = 128 ++ SYS_DELETE_MODULE = 129 ++ SYS_GET_KERNEL_SYMS = 130 ++ SYS_QUOTACTL = 131 ++ SYS_GETPGID = 132 ++ SYS_FCHDIR = 133 ++ SYS_BDFLUSH = 134 ++ SYS_SYSFS = 135 ++ SYS_PERSONALITY = 136 ++ SYS_AFS_SYSCALL = 137 ++ SYS_GETDENTS = 141 ++ SYS_FLOCK = 143 ++ SYS_MSYNC = 144 ++ SYS_READV = 145 ++ SYS_WRITEV = 146 ++ SYS_GETSID = 147 ++ SYS_FDATASYNC = 148 ++ SYS__SYSCTL = 149 ++ SYS_MLOCK = 150 ++ SYS_MUNLOCK = 151 ++ SYS_MLOCKALL = 152 ++ SYS_MUNLOCKALL = 153 ++ SYS_SCHED_SETPARAM = 154 ++ SYS_SCHED_GETPARAM = 155 ++ SYS_SCHED_SETSCHEDULER = 156 ++ SYS_SCHED_GETSCHEDULER = 157 ++ SYS_SCHED_YIELD = 158 ++ SYS_SCHED_GET_PRIORITY_MAX = 159 ++ SYS_SCHED_GET_PRIORITY_MIN = 160 ++ SYS_SCHED_RR_GET_INTERVAL = 161 ++ SYS_NANOSLEEP = 162 ++ SYS_MREMAP = 163 ++ SYS_QUERY_MODULE = 167 ++ SYS_POLL = 168 ++ SYS_NFSSERVCTL = 169 ++ SYS_PRCTL = 172 ++ SYS_RT_SIGRETURN = 173 ++ SYS_RT_SIGACTION = 174 ++ SYS_RT_SIGPROCMASK = 175 ++ SYS_RT_SIGPENDING = 176 ++ SYS_RT_SIGTIMEDWAIT = 177 ++ SYS_RT_SIGQUEUEINFO = 178 ++ SYS_RT_SIGSUSPEND = 179 ++ SYS_PREAD64 = 180 ++ SYS_PWRITE64 = 181 ++ SYS_GETCWD = 183 ++ SYS_CAPGET = 184 ++ SYS_CAPSET = 185 ++ SYS_SIGALTSTACK = 186 ++ SYS_SENDFILE = 187 ++ SYS_GETPMSG = 188 ++ SYS_PUTPMSG = 189 ++ SYS_VFORK = 190 ++ SYS_PIVOT_ROOT = 217 ++ SYS_MINCORE = 218 ++ SYS_MADVISE = 219 ++ SYS_GETDENTS64 = 220 ++ SYS_READAHEAD = 222 ++ SYS_SETXATTR = 224 ++ SYS_LSETXATTR = 225 ++ SYS_FSETXATTR = 226 ++ SYS_GETXATTR = 227 ++ SYS_LGETXATTR = 228 ++ SYS_FGETXATTR = 229 ++ SYS_LISTXATTR = 230 ++ SYS_LLISTXATTR = 231 ++ SYS_FLISTXATTR = 232 ++ SYS_REMOVEXATTR = 233 ++ SYS_LREMOVEXATTR = 234 ++ SYS_FREMOVEXATTR = 235 ++ SYS_GETTID = 236 ++ SYS_TKILL = 237 ++ SYS_FUTEX = 238 ++ SYS_SCHED_SETAFFINITY = 239 ++ SYS_SCHED_GETAFFINITY = 240 ++ SYS_TGKILL = 241 ++ SYS_IO_SETUP = 243 ++ SYS_IO_DESTROY = 244 ++ SYS_IO_GETEVENTS = 245 ++ SYS_IO_SUBMIT = 246 ++ SYS_IO_CANCEL = 247 ++ SYS_EXIT_GROUP = 248 ++ SYS_EPOLL_CREATE = 249 ++ SYS_EPOLL_CTL = 250 ++ SYS_EPOLL_WAIT = 251 ++ SYS_SET_TID_ADDRESS = 252 ++ SYS_FADVISE64 = 253 ++ SYS_TIMER_CREATE = 254 ++ SYS_TIMER_SETTIME = 255 ++ SYS_TIMER_GETTIME = 256 ++ SYS_TIMER_GETOVERRUN = 257 ++ SYS_TIMER_DELETE = 258 ++ SYS_CLOCK_SETTIME = 259 ++ SYS_CLOCK_GETTIME = 260 ++ SYS_CLOCK_GETRES = 261 ++ SYS_CLOCK_NANOSLEEP = 262 ++ SYS_STATFS64 = 265 ++ SYS_FSTATFS64 = 266 ++ SYS_REMAP_FILE_PAGES = 267 ++ SYS_MBIND = 268 ++ SYS_GET_MEMPOLICY = 269 ++ SYS_SET_MEMPOLICY = 270 ++ SYS_MQ_OPEN = 271 ++ SYS_MQ_UNLINK = 272 ++ SYS_MQ_TIMEDSEND = 273 ++ SYS_MQ_TIMEDRECEIVE = 274 ++ SYS_MQ_NOTIFY = 275 ++ SYS_MQ_GETSETATTR = 276 ++ SYS_KEXEC_LOAD = 277 ++ SYS_ADD_KEY = 278 ++ SYS_REQUEST_KEY = 279 ++ SYS_KEYCTL = 280 ++ SYS_WAITID = 281 ++ SYS_IOPRIO_SET = 282 ++ SYS_IOPRIO_GET = 283 ++ SYS_INOTIFY_INIT = 284 ++ SYS_INOTIFY_ADD_WATCH = 285 ++ SYS_INOTIFY_RM_WATCH = 286 ++ SYS_MIGRATE_PAGES = 287 ++ SYS_OPENAT = 288 ++ SYS_MKDIRAT = 289 ++ SYS_MKNODAT = 290 ++ SYS_FCHOWNAT = 291 ++ SYS_FUTIMESAT = 292 ++ SYS_UNLINKAT = 294 ++ SYS_RENAMEAT = 295 ++ SYS_LINKAT = 296 ++ SYS_SYMLINKAT = 297 ++ SYS_READLINKAT = 298 ++ SYS_FCHMODAT = 299 ++ SYS_FACCESSAT = 300 ++ SYS_PSELECT6 = 301 ++ SYS_PPOLL = 302 ++ SYS_UNSHARE = 303 ++ SYS_SET_ROBUST_LIST = 304 ++ SYS_GET_ROBUST_LIST = 305 ++ SYS_SPLICE = 306 ++ SYS_SYNC_FILE_RANGE = 307 ++ SYS_TEE = 308 ++ SYS_VMSPLICE = 309 ++ SYS_MOVE_PAGES = 310 ++ SYS_GETCPU = 311 ++ SYS_EPOLL_PWAIT = 312 ++ SYS_UTIMES = 313 ++ SYS_FALLOCATE = 314 ++ SYS_UTIMENSAT = 315 ++ SYS_SIGNALFD = 316 ++ SYS_TIMERFD = 317 ++ SYS_EVENTFD = 318 ++ SYS_TIMERFD_CREATE = 319 ++ SYS_TIMERFD_SETTIME = 320 ++ SYS_TIMERFD_GETTIME = 321 ++ SYS_SIGNALFD4 = 322 ++ SYS_EVENTFD2 = 323 ++ SYS_INOTIFY_INIT1 = 324 ++ SYS_PIPE2 = 325 ++ SYS_DUP3 = 326 ++ SYS_EPOLL_CREATE1 = 327 ++ SYS_PREADV = 328 ++ SYS_PWRITEV = 329 ++ SYS_RT_TGSIGQUEUEINFO = 330 ++ SYS_PERF_EVENT_OPEN = 331 ++ SYS_FANOTIFY_INIT = 332 ++ SYS_FANOTIFY_MARK = 333 ++ SYS_PRLIMIT64 = 334 ++ SYS_NAME_TO_HANDLE_AT = 335 ++ SYS_OPEN_BY_HANDLE_AT = 336 ++ SYS_CLOCK_ADJTIME = 337 ++ SYS_SYNCFS = 338 ++ SYS_SETNS = 339 ++ SYS_PROCESS_VM_READV = 340 ++ SYS_PROCESS_VM_WRITEV = 341 ++ SYS_S390_RUNTIME_INSTR = 342 ++ SYS_KCMP = 343 ++ SYS_FINIT_MODULE = 344 ++ SYS_SCHED_SETATTR = 345 ++ SYS_SCHED_GETATTR = 346 ++ SYS_RENAMEAT2 = 347 ++ SYS_SECCOMP = 348 ++ SYS_GETRANDOM = 349 ++ SYS_MEMFD_CREATE = 350 ++ SYS_BPF = 351 ++ SYS_S390_PCI_MMIO_WRITE = 352 ++ SYS_S390_PCI_MMIO_READ = 353 ++ SYS_EXECVEAT = 354 ++ SYS_USERFAULTFD = 355 ++ SYS_MEMBARRIER = 356 ++ SYS_RECVMMSG = 357 ++ SYS_SENDMMSG = 358 ++ SYS_SOCKET = 359 ++ SYS_SOCKETPAIR = 360 ++ SYS_BIND = 361 ++ SYS_CONNECT = 362 ++ SYS_LISTEN = 363 ++ SYS_ACCEPT4 = 364 ++ SYS_GETSOCKOPT = 365 ++ SYS_SETSOCKOPT = 366 ++ SYS_GETSOCKNAME = 367 ++ SYS_GETPEERNAME = 368 ++ SYS_SENDTO = 369 ++ SYS_SENDMSG = 370 ++ SYS_RECVFROM = 371 ++ SYS_RECVMSG = 372 ++ SYS_SHUTDOWN = 373 ++ SYS_MLOCK2 = 374 ++ SYS_COPY_FILE_RANGE = 375 ++ SYS_PREADV2 = 376 ++ SYS_PWRITEV2 = 377 ++ SYS_SELECT = 142 ++ SYS_GETRLIMIT = 191 ++ SYS_LCHOWN = 198 ++ SYS_GETUID = 199 ++ SYS_GETGID = 200 ++ SYS_GETEUID = 201 ++ SYS_GETEGID = 202 ++ SYS_SETREUID = 203 ++ SYS_SETREGID = 204 ++ SYS_GETGROUPS = 205 ++ SYS_SETGROUPS = 206 ++ SYS_FCHOWN = 207 ++ SYS_SETRESUID = 208 ++ SYS_GETRESUID = 209 ++ SYS_SETRESGID = 210 ++ SYS_GETRESGID = 211 ++ SYS_CHOWN = 212 ++ SYS_SETUID = 213 ++ SYS_SETGID = 214 ++ SYS_SETFSUID = 215 ++ SYS_SETFSGID = 216 ++ SYS_NEWFSTATAT = 293 ++) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +new file mode 100644 +index 0000000..c9c129d +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +@@ -0,0 +1,348 @@ ++// mksysnum_linux.pl -Ilinux/usr/include -m64 -D__arch64__ linux/usr/include/asm/unistd.h ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT ++ ++// +build sparc64,linux ++ ++package unix ++ ++const ( ++ SYS_RESTART_SYSCALL = 0 ++ SYS_EXIT = 1 ++ SYS_FORK = 2 ++ SYS_READ = 3 ++ SYS_WRITE = 4 ++ SYS_OPEN = 5 ++ SYS_CLOSE = 6 ++ SYS_WAIT4 = 7 ++ SYS_CREAT = 8 ++ SYS_LINK = 9 ++ SYS_UNLINK = 10 ++ SYS_EXECV = 11 ++ SYS_CHDIR = 12 ++ SYS_CHOWN = 13 ++ SYS_MKNOD = 14 ++ SYS_CHMOD = 15 ++ SYS_LCHOWN = 16 ++ SYS_BRK = 17 ++ SYS_PERFCTR = 18 ++ SYS_LSEEK = 19 ++ SYS_GETPID = 20 ++ SYS_CAPGET = 21 ++ SYS_CAPSET = 22 ++ SYS_SETUID = 23 ++ SYS_GETUID = 24 ++ SYS_VMSPLICE = 25 ++ SYS_PTRACE = 26 ++ SYS_ALARM = 27 ++ SYS_SIGALTSTACK = 28 ++ SYS_PAUSE = 29 ++ SYS_UTIME = 30 ++ SYS_ACCESS = 33 ++ SYS_NICE = 34 ++ SYS_SYNC = 36 ++ SYS_KILL = 37 ++ SYS_STAT = 38 ++ SYS_SENDFILE = 39 ++ SYS_LSTAT = 40 ++ SYS_DUP = 41 ++ SYS_PIPE = 42 ++ SYS_TIMES = 43 ++ SYS_UMOUNT2 = 45 ++ SYS_SETGID = 46 ++ SYS_GETGID = 47 ++ SYS_SIGNAL = 48 ++ SYS_GETEUID = 49 ++ SYS_GETEGID = 50 ++ SYS_ACCT = 51 ++ SYS_MEMORY_ORDERING = 52 ++ SYS_IOCTL = 54 ++ SYS_REBOOT = 55 ++ SYS_SYMLINK = 57 ++ SYS_READLINK = 58 ++ SYS_EXECVE = 59 ++ SYS_UMASK = 60 ++ SYS_CHROOT = 61 ++ SYS_FSTAT = 62 ++ SYS_FSTAT64 = 63 ++ SYS_GETPAGESIZE = 64 ++ SYS_MSYNC = 65 ++ SYS_VFORK = 66 ++ SYS_PREAD64 = 67 ++ SYS_PWRITE64 = 68 ++ SYS_MMAP = 71 ++ SYS_MUNMAP = 73 ++ SYS_MPROTECT = 74 ++ SYS_MADVISE = 75 ++ SYS_VHANGUP = 76 ++ SYS_MINCORE = 78 ++ SYS_GETGROUPS = 79 ++ SYS_SETGROUPS = 80 ++ SYS_GETPGRP = 81 ++ SYS_SETITIMER = 83 ++ SYS_SWAPON = 85 ++ SYS_GETITIMER = 86 ++ SYS_SETHOSTNAME = 88 ++ SYS_DUP2 = 90 ++ SYS_FCNTL = 92 ++ SYS_SELECT = 93 ++ SYS_FSYNC = 95 ++ SYS_SETPRIORITY = 96 ++ SYS_SOCKET = 97 ++ SYS_CONNECT = 98 ++ SYS_ACCEPT = 99 ++ SYS_GETPRIORITY = 100 ++ SYS_RT_SIGRETURN = 101 ++ SYS_RT_SIGACTION = 102 ++ SYS_RT_SIGPROCMASK = 103 ++ SYS_RT_SIGPENDING = 104 ++ SYS_RT_SIGTIMEDWAIT = 105 ++ SYS_RT_SIGQUEUEINFO = 106 ++ SYS_RT_SIGSUSPEND = 107 ++ SYS_SETRESUID = 108 ++ SYS_GETRESUID = 109 ++ SYS_SETRESGID = 110 ++ SYS_GETRESGID = 111 ++ SYS_RECVMSG = 113 ++ SYS_SENDMSG = 114 ++ SYS_GETTIMEOFDAY = 116 ++ SYS_GETRUSAGE = 117 ++ SYS_GETSOCKOPT = 118 ++ SYS_GETCWD = 119 ++ SYS_READV = 120 ++ SYS_WRITEV = 121 ++ SYS_SETTIMEOFDAY = 122 ++ SYS_FCHOWN = 123 ++ SYS_FCHMOD = 124 ++ SYS_RECVFROM = 125 ++ SYS_SETREUID = 126 ++ SYS_SETREGID = 127 ++ SYS_RENAME = 128 ++ SYS_TRUNCATE = 129 ++ SYS_FTRUNCATE = 130 ++ SYS_FLOCK = 131 ++ SYS_LSTAT64 = 132 ++ SYS_SENDTO = 133 ++ SYS_SHUTDOWN = 134 ++ SYS_SOCKETPAIR = 135 ++ SYS_MKDIR = 136 ++ SYS_RMDIR = 137 ++ SYS_UTIMES = 138 ++ SYS_STAT64 = 139 ++ SYS_SENDFILE64 = 140 ++ SYS_GETPEERNAME = 141 ++ SYS_FUTEX = 142 ++ SYS_GETTID = 143 ++ SYS_GETRLIMIT = 144 ++ SYS_SETRLIMIT = 145 ++ SYS_PIVOT_ROOT = 146 ++ SYS_PRCTL = 147 ++ SYS_PCICONFIG_READ = 148 ++ SYS_PCICONFIG_WRITE = 149 ++ SYS_GETSOCKNAME = 150 ++ SYS_INOTIFY_INIT = 151 ++ SYS_INOTIFY_ADD_WATCH = 152 ++ SYS_POLL = 153 ++ SYS_GETDENTS64 = 154 ++ SYS_INOTIFY_RM_WATCH = 156 ++ SYS_STATFS = 157 ++ SYS_FSTATFS = 158 ++ SYS_UMOUNT = 159 ++ SYS_SCHED_SET_AFFINITY = 160 ++ SYS_SCHED_GET_AFFINITY = 161 ++ SYS_GETDOMAINNAME = 162 ++ SYS_SETDOMAINNAME = 163 ++ SYS_UTRAP_INSTALL = 164 ++ SYS_QUOTACTL = 165 ++ SYS_SET_TID_ADDRESS = 166 ++ SYS_MOUNT = 167 ++ SYS_USTAT = 168 ++ SYS_SETXATTR = 169 ++ SYS_LSETXATTR = 170 ++ SYS_FSETXATTR = 171 ++ SYS_GETXATTR = 172 ++ SYS_LGETXATTR = 173 ++ SYS_GETDENTS = 174 ++ SYS_SETSID = 175 ++ SYS_FCHDIR = 176 ++ SYS_FGETXATTR = 177 ++ SYS_LISTXATTR = 178 ++ SYS_LLISTXATTR = 179 ++ SYS_FLISTXATTR = 180 ++ SYS_REMOVEXATTR = 181 ++ SYS_LREMOVEXATTR = 182 ++ SYS_SIGPENDING = 183 ++ SYS_QUERY_MODULE = 184 ++ SYS_SETPGID = 185 ++ SYS_FREMOVEXATTR = 186 ++ SYS_TKILL = 187 ++ SYS_EXIT_GROUP = 188 ++ SYS_UNAME = 189 ++ SYS_INIT_MODULE = 190 ++ SYS_PERSONALITY = 191 ++ SYS_REMAP_FILE_PAGES = 192 ++ SYS_EPOLL_CREATE = 193 ++ SYS_EPOLL_CTL = 194 ++ SYS_EPOLL_WAIT = 195 ++ SYS_IOPRIO_SET = 196 ++ SYS_GETPPID = 197 ++ SYS_SIGACTION = 198 ++ SYS_SGETMASK = 199 ++ SYS_SSETMASK = 200 ++ SYS_SIGSUSPEND = 201 ++ SYS_OLDLSTAT = 202 ++ SYS_USELIB = 203 ++ SYS_READDIR = 204 ++ SYS_READAHEAD = 205 ++ SYS_SOCKETCALL = 206 ++ SYS_SYSLOG = 207 ++ SYS_LOOKUP_DCOOKIE = 208 ++ SYS_FADVISE64 = 209 ++ SYS_FADVISE64_64 = 210 ++ SYS_TGKILL = 211 ++ SYS_WAITPID = 212 ++ SYS_SWAPOFF = 213 ++ SYS_SYSINFO = 214 ++ SYS_IPC = 215 ++ SYS_SIGRETURN = 216 ++ SYS_CLONE = 217 ++ SYS_IOPRIO_GET = 218 ++ SYS_ADJTIMEX = 219 ++ SYS_SIGPROCMASK = 220 ++ SYS_CREATE_MODULE = 221 ++ SYS_DELETE_MODULE = 222 ++ SYS_GET_KERNEL_SYMS = 223 ++ SYS_GETPGID = 224 ++ SYS_BDFLUSH = 225 ++ SYS_SYSFS = 226 ++ SYS_AFS_SYSCALL = 227 ++ SYS_SETFSUID = 228 ++ SYS_SETFSGID = 229 ++ SYS__NEWSELECT = 230 ++ SYS_SPLICE = 232 ++ SYS_STIME = 233 ++ SYS_STATFS64 = 234 ++ SYS_FSTATFS64 = 235 ++ SYS__LLSEEK = 236 ++ SYS_MLOCK = 237 ++ SYS_MUNLOCK = 238 ++ SYS_MLOCKALL = 239 ++ SYS_MUNLOCKALL = 240 ++ SYS_SCHED_SETPARAM = 241 ++ SYS_SCHED_GETPARAM = 242 ++ SYS_SCHED_SETSCHEDULER = 243 ++ SYS_SCHED_GETSCHEDULER = 244 ++ SYS_SCHED_YIELD = 245 ++ SYS_SCHED_GET_PRIORITY_MAX = 246 ++ SYS_SCHED_GET_PRIORITY_MIN = 247 ++ SYS_SCHED_RR_GET_INTERVAL = 248 ++ SYS_NANOSLEEP = 249 ++ SYS_MREMAP = 250 ++ SYS__SYSCTL = 251 ++ SYS_GETSID = 252 ++ SYS_FDATASYNC = 253 ++ SYS_NFSSERVCTL = 254 ++ SYS_SYNC_FILE_RANGE = 255 ++ SYS_CLOCK_SETTIME = 256 ++ SYS_CLOCK_GETTIME = 257 ++ SYS_CLOCK_GETRES = 258 ++ SYS_CLOCK_NANOSLEEP = 259 ++ SYS_SCHED_GETAFFINITY = 260 ++ SYS_SCHED_SETAFFINITY = 261 ++ SYS_TIMER_SETTIME = 262 ++ SYS_TIMER_GETTIME = 263 ++ SYS_TIMER_GETOVERRUN = 264 ++ SYS_TIMER_DELETE = 265 ++ SYS_TIMER_CREATE = 266 ++ SYS_IO_SETUP = 268 ++ SYS_IO_DESTROY = 269 ++ SYS_IO_SUBMIT = 270 ++ SYS_IO_CANCEL = 271 ++ SYS_IO_GETEVENTS = 272 ++ SYS_MQ_OPEN = 273 ++ SYS_MQ_UNLINK = 274 ++ SYS_MQ_TIMEDSEND = 275 ++ SYS_MQ_TIMEDRECEIVE = 276 ++ SYS_MQ_NOTIFY = 277 ++ SYS_MQ_GETSETATTR = 278 ++ SYS_WAITID = 279 ++ SYS_TEE = 280 ++ SYS_ADD_KEY = 281 ++ SYS_REQUEST_KEY = 282 ++ SYS_KEYCTL = 283 ++ SYS_OPENAT = 284 ++ SYS_MKDIRAT = 285 ++ SYS_MKNODAT = 286 ++ SYS_FCHOWNAT = 287 ++ SYS_FUTIMESAT = 288 ++ SYS_FSTATAT64 = 289 ++ SYS_UNLINKAT = 290 ++ SYS_RENAMEAT = 291 ++ SYS_LINKAT = 292 ++ SYS_SYMLINKAT = 293 ++ SYS_READLINKAT = 294 ++ SYS_FCHMODAT = 295 ++ SYS_FACCESSAT = 296 ++ SYS_PSELECT6 = 297 ++ SYS_PPOLL = 298 ++ SYS_UNSHARE = 299 ++ SYS_SET_ROBUST_LIST = 300 ++ SYS_GET_ROBUST_LIST = 301 ++ SYS_MIGRATE_PAGES = 302 ++ SYS_MBIND = 303 ++ SYS_GET_MEMPOLICY = 304 ++ SYS_SET_MEMPOLICY = 305 ++ SYS_KEXEC_LOAD = 306 ++ SYS_MOVE_PAGES = 307 ++ SYS_GETCPU = 308 ++ SYS_EPOLL_PWAIT = 309 ++ SYS_UTIMENSAT = 310 ++ SYS_SIGNALFD = 311 ++ SYS_TIMERFD_CREATE = 312 ++ SYS_EVENTFD = 313 ++ SYS_FALLOCATE = 314 ++ SYS_TIMERFD_SETTIME = 315 ++ SYS_TIMERFD_GETTIME = 316 ++ SYS_SIGNALFD4 = 317 ++ SYS_EVENTFD2 = 318 ++ SYS_EPOLL_CREATE1 = 319 ++ SYS_DUP3 = 320 ++ SYS_PIPE2 = 321 ++ SYS_INOTIFY_INIT1 = 322 ++ SYS_ACCEPT4 = 323 ++ SYS_PREADV = 324 ++ SYS_PWRITEV = 325 ++ SYS_RT_TGSIGQUEUEINFO = 326 ++ SYS_PERF_EVENT_OPEN = 327 ++ SYS_RECVMMSG = 328 ++ SYS_FANOTIFY_INIT = 329 ++ SYS_FANOTIFY_MARK = 330 ++ SYS_PRLIMIT64 = 331 ++ SYS_NAME_TO_HANDLE_AT = 332 ++ SYS_OPEN_BY_HANDLE_AT = 333 ++ SYS_CLOCK_ADJTIME = 334 ++ SYS_SYNCFS = 335 ++ SYS_SENDMMSG = 336 ++ SYS_SETNS = 337 ++ SYS_PROCESS_VM_READV = 338 ++ SYS_PROCESS_VM_WRITEV = 339 ++ SYS_KERN_FEATURES = 340 ++ SYS_KCMP = 341 ++ SYS_FINIT_MODULE = 342 ++ SYS_SCHED_SETATTR = 343 ++ SYS_SCHED_GETATTR = 344 ++ SYS_RENAMEAT2 = 345 ++ SYS_SECCOMP = 346 ++ SYS_GETRANDOM = 347 ++ SYS_MEMFD_CREATE = 348 ++ SYS_BPF = 349 ++ SYS_EXECVEAT = 350 ++ SYS_MEMBARRIER = 351 ++ SYS_USERFAULTFD = 352 ++ SYS_BIND = 353 ++ SYS_LISTEN = 354 ++ SYS_SETSOCKOPT = 355 ++ SYS_MLOCK2 = 356 ++ SYS_COPY_FILE_RANGE = 357 ++ SYS_PREADV2 = 358 ++ SYS_PWRITEV2 = 359 ++) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go +new file mode 100644 +index 0000000..f60d8f9 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go +@@ -0,0 +1,273 @@ ++// mksysnum_netbsd.pl ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT ++ ++// +build 386,netbsd ++ ++package unix ++ ++const ( ++ SYS_EXIT = 1 // { void|sys||exit(int rval); } ++ SYS_FORK = 2 // { int|sys||fork(void); } ++ SYS_READ = 3 // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } ++ SYS_WRITE = 4 // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); } ++ SYS_OPEN = 5 // { int|sys||open(const char *path, int flags, ... mode_t mode); } ++ SYS_CLOSE = 6 // { int|sys||close(int fd); } ++ SYS_LINK = 9 // { int|sys||link(const char *path, const char *link); } ++ SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } ++ SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } ++ SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } ++ SYS_CHMOD = 15 // { int|sys||chmod(const char *path, mode_t mode); } ++ SYS_CHOWN = 16 // { int|sys||chown(const char *path, uid_t uid, gid_t gid); } ++ SYS_BREAK = 17 // { int|sys||obreak(char *nsize); } ++ SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } ++ SYS_UNMOUNT = 22 // { int|sys||unmount(const char *path, int flags); } ++ SYS_SETUID = 23 // { int|sys||setuid(uid_t uid); } ++ SYS_GETUID = 24 // { uid_t|sys||getuid_with_euid(void); } ++ SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } ++ SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); } ++ SYS_RECVMSG = 27 // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); } ++ SYS_SENDMSG = 28 // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); } ++ SYS_RECVFROM = 29 // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } ++ SYS_ACCEPT = 30 // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); } ++ SYS_GETPEERNAME = 31 // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } ++ SYS_GETSOCKNAME = 32 // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } ++ SYS_ACCESS = 33 // { int|sys||access(const char *path, int flags); } ++ SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } ++ SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } ++ SYS_SYNC = 36 // { void|sys||sync(void); } ++ SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } ++ SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } ++ SYS_DUP = 41 // { int|sys||dup(int fd); } ++ SYS_PIPE = 42 // { int|sys||pipe(void); } ++ SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } ++ SYS_PROFIL = 44 // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); } ++ SYS_KTRACE = 45 // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); } ++ SYS_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } ++ SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } ++ SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } ++ SYS_ACCT = 51 // { int|sys||acct(const char *path); } ++ SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } ++ SYS_REVOKE = 56 // { int|sys||revoke(const char *path); } ++ SYS_SYMLINK = 57 // { int|sys||symlink(const char *path, const char *link); } ++ SYS_READLINK = 58 // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); } ++ SYS_EXECVE = 59 // { int|sys||execve(const char *path, char * const *argp, char * const *envp); } ++ SYS_UMASK = 60 // { mode_t|sys||umask(mode_t newmask); } ++ SYS_CHROOT = 61 // { int|sys||chroot(const char *path); } ++ SYS_VFORK = 66 // { int|sys||vfork(void); } ++ SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } ++ SYS_SSTK = 70 // { int|sys||sstk(int incr); } ++ SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } ++ SYS_MUNMAP = 73 // { int|sys||munmap(void *addr, size_t len); } ++ SYS_MPROTECT = 74 // { int|sys||mprotect(void *addr, size_t len, int prot); } ++ SYS_MADVISE = 75 // { int|sys||madvise(void *addr, size_t len, int behav); } ++ SYS_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } ++ SYS_GETGROUPS = 79 // { int|sys||getgroups(int gidsetsize, gid_t *gidset); } ++ SYS_SETGROUPS = 80 // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); } ++ SYS_GETPGRP = 81 // { int|sys||getpgrp(void); } ++ SYS_SETPGID = 82 // { int|sys||setpgid(pid_t pid, pid_t pgid); } ++ SYS_DUP2 = 90 // { int|sys||dup2(int from, int to); } ++ SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } ++ SYS_FSYNC = 95 // { int|sys||fsync(int fd); } ++ SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } ++ SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } ++ SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } ++ SYS_BIND = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); } ++ SYS_SETSOCKOPT = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } ++ SYS_LISTEN = 106 // { int|sys||listen(int s, int backlog); } ++ SYS_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } ++ SYS_READV = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); } ++ SYS_WRITEV = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); } ++ SYS_FCHOWN = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); } ++ SYS_FCHMOD = 124 // { int|sys||fchmod(int fd, mode_t mode); } ++ SYS_SETREUID = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); } ++ SYS_SETREGID = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); } ++ SYS_RENAME = 128 // { int|sys||rename(const char *from, const char *to); } ++ SYS_FLOCK = 131 // { int|sys||flock(int fd, int how); } ++ SYS_MKFIFO = 132 // { int|sys||mkfifo(const char *path, mode_t mode); } ++ SYS_SENDTO = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } ++ SYS_SHUTDOWN = 134 // { int|sys||shutdown(int s, int how); } ++ SYS_SOCKETPAIR = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); } ++ SYS_MKDIR = 136 // { int|sys||mkdir(const char *path, mode_t mode); } ++ SYS_RMDIR = 137 // { int|sys||rmdir(const char *path); } ++ SYS_SETSID = 147 // { int|sys||setsid(void); } ++ SYS_SYSARCH = 165 // { int|sys||sysarch(int op, void *parms); } ++ SYS_PREAD = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); } ++ SYS_PWRITE = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); } ++ SYS_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } ++ SYS_SETGID = 181 // { int|sys||setgid(gid_t gid); } ++ SYS_SETEGID = 182 // { int|sys||setegid(gid_t egid); } ++ SYS_SETEUID = 183 // { int|sys||seteuid(uid_t euid); } ++ SYS_PATHCONF = 191 // { long|sys||pathconf(const char *path, int name); } ++ SYS_FPATHCONF = 192 // { long|sys||fpathconf(int fd, int name); } ++ SYS_GETRLIMIT = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); } ++ SYS_SETRLIMIT = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); } ++ SYS_MMAP = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); } ++ SYS_LSEEK = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); } ++ SYS_TRUNCATE = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); } ++ SYS_FTRUNCATE = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); } ++ SYS___SYSCTL = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); } ++ SYS_MLOCK = 203 // { int|sys||mlock(const void *addr, size_t len); } ++ SYS_MUNLOCK = 204 // { int|sys||munlock(const void *addr, size_t len); } ++ SYS_UNDELETE = 205 // { int|sys||undelete(const char *path); } ++ SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } ++ SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } ++ SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } ++ SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } ++ SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } ++ SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } ++ SYS_MSGGET = 225 // { int|sys||msgget(key_t key, int msgflg); } ++ SYS_MSGSND = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } ++ SYS_MSGRCV = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } ++ SYS_SHMAT = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); } ++ SYS_SHMDT = 230 // { int|sys||shmdt(const void *shmaddr); } ++ SYS_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } ++ SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } ++ SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } ++ SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } ++ SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } ++ SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } ++ SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } ++ SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } ++ SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } ++ SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } ++ SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } ++ SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } ++ SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } ++ SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } ++ SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } ++ SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } ++ SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } ++ SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } ++ SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } ++ SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } ++ SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } ++ SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } ++ SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } ++ SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } ++ SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } ++ SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } ++ SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } ++ SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } ++ SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } ++ SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } ++ SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } ++ SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } ++ SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } ++ SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } ++ SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } ++ SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } ++ SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } ++ SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } ++ SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } ++ SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } ++ SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } ++ SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } ++ SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } ++ SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } ++ SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } ++ SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } ++ SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } ++ SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } ++ SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } ++ SYS_KQUEUE = 344 // { int|sys||kqueue(void); } ++ SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } ++ SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } ++ SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } ++ SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } ++ SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } ++ SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } ++ SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } ++ SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } ++ SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } ++ SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } ++ SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } ++ SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } ++ SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } ++ SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } ++ SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } ++ SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } ++ SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } ++ SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } ++ SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } ++ SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } ++ SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } ++ SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } ++ SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } ++ SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } ++ SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } ++ SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } ++ SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } ++ SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } ++ SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } ++ SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } ++ SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } ++ SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } ++ SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } ++ SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } ++ SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } ++ SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } ++ SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } ++ SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } ++ SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } ++ SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } ++ SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } ++ SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } ++ SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } ++ SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } ++ SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } ++ SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } ++ SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } ++ SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } ++ SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } ++ SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } ++ SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } ++ SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } ++ SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } ++ SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } ++ SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } ++ SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } ++ SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } ++ SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } ++ SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } ++ SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } ++ SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } ++ SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } ++ SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } ++ SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } ++ SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } ++ SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } ++ SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } ++ SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } ++ SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } ++ SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } ++ SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } ++ SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } ++ SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } ++ SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } ++ SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } ++ SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } ++ SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } ++ SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } ++ SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } ++ SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } ++ SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } ++ SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } ++ SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } ++ SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } ++ SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } ++ SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } ++ SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } ++ SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } ++ SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } ++ SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } ++ SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } ++ SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } ++ SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } ++ SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } ++ SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } ++ SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } ++ SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } ++ SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } ++ SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } ++ SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } ++) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go +new file mode 100644 +index 0000000..48a91d4 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go +@@ -0,0 +1,273 @@ ++// mksysnum_netbsd.pl ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT ++ ++// +build amd64,netbsd ++ ++package unix ++ ++const ( ++ SYS_EXIT = 1 // { void|sys||exit(int rval); } ++ SYS_FORK = 2 // { int|sys||fork(void); } ++ SYS_READ = 3 // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } ++ SYS_WRITE = 4 // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); } ++ SYS_OPEN = 5 // { int|sys||open(const char *path, int flags, ... mode_t mode); } ++ SYS_CLOSE = 6 // { int|sys||close(int fd); } ++ SYS_LINK = 9 // { int|sys||link(const char *path, const char *link); } ++ SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } ++ SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } ++ SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } ++ SYS_CHMOD = 15 // { int|sys||chmod(const char *path, mode_t mode); } ++ SYS_CHOWN = 16 // { int|sys||chown(const char *path, uid_t uid, gid_t gid); } ++ SYS_BREAK = 17 // { int|sys||obreak(char *nsize); } ++ SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } ++ SYS_UNMOUNT = 22 // { int|sys||unmount(const char *path, int flags); } ++ SYS_SETUID = 23 // { int|sys||setuid(uid_t uid); } ++ SYS_GETUID = 24 // { uid_t|sys||getuid_with_euid(void); } ++ SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } ++ SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); } ++ SYS_RECVMSG = 27 // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); } ++ SYS_SENDMSG = 28 // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); } ++ SYS_RECVFROM = 29 // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } ++ SYS_ACCEPT = 30 // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); } ++ SYS_GETPEERNAME = 31 // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } ++ SYS_GETSOCKNAME = 32 // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } ++ SYS_ACCESS = 33 // { int|sys||access(const char *path, int flags); } ++ SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } ++ SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } ++ SYS_SYNC = 36 // { void|sys||sync(void); } ++ SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } ++ SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } ++ SYS_DUP = 41 // { int|sys||dup(int fd); } ++ SYS_PIPE = 42 // { int|sys||pipe(void); } ++ SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } ++ SYS_PROFIL = 44 // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); } ++ SYS_KTRACE = 45 // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); } ++ SYS_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } ++ SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } ++ SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } ++ SYS_ACCT = 51 // { int|sys||acct(const char *path); } ++ SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } ++ SYS_REVOKE = 56 // { int|sys||revoke(const char *path); } ++ SYS_SYMLINK = 57 // { int|sys||symlink(const char *path, const char *link); } ++ SYS_READLINK = 58 // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); } ++ SYS_EXECVE = 59 // { int|sys||execve(const char *path, char * const *argp, char * const *envp); } ++ SYS_UMASK = 60 // { mode_t|sys||umask(mode_t newmask); } ++ SYS_CHROOT = 61 // { int|sys||chroot(const char *path); } ++ SYS_VFORK = 66 // { int|sys||vfork(void); } ++ SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } ++ SYS_SSTK = 70 // { int|sys||sstk(int incr); } ++ SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } ++ SYS_MUNMAP = 73 // { int|sys||munmap(void *addr, size_t len); } ++ SYS_MPROTECT = 74 // { int|sys||mprotect(void *addr, size_t len, int prot); } ++ SYS_MADVISE = 75 // { int|sys||madvise(void *addr, size_t len, int behav); } ++ SYS_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } ++ SYS_GETGROUPS = 79 // { int|sys||getgroups(int gidsetsize, gid_t *gidset); } ++ SYS_SETGROUPS = 80 // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); } ++ SYS_GETPGRP = 81 // { int|sys||getpgrp(void); } ++ SYS_SETPGID = 82 // { int|sys||setpgid(pid_t pid, pid_t pgid); } ++ SYS_DUP2 = 90 // { int|sys||dup2(int from, int to); } ++ SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } ++ SYS_FSYNC = 95 // { int|sys||fsync(int fd); } ++ SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } ++ SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } ++ SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } ++ SYS_BIND = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); } ++ SYS_SETSOCKOPT = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } ++ SYS_LISTEN = 106 // { int|sys||listen(int s, int backlog); } ++ SYS_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } ++ SYS_READV = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); } ++ SYS_WRITEV = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); } ++ SYS_FCHOWN = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); } ++ SYS_FCHMOD = 124 // { int|sys||fchmod(int fd, mode_t mode); } ++ SYS_SETREUID = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); } ++ SYS_SETREGID = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); } ++ SYS_RENAME = 128 // { int|sys||rename(const char *from, const char *to); } ++ SYS_FLOCK = 131 // { int|sys||flock(int fd, int how); } ++ SYS_MKFIFO = 132 // { int|sys||mkfifo(const char *path, mode_t mode); } ++ SYS_SENDTO = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } ++ SYS_SHUTDOWN = 134 // { int|sys||shutdown(int s, int how); } ++ SYS_SOCKETPAIR = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); } ++ SYS_MKDIR = 136 // { int|sys||mkdir(const char *path, mode_t mode); } ++ SYS_RMDIR = 137 // { int|sys||rmdir(const char *path); } ++ SYS_SETSID = 147 // { int|sys||setsid(void); } ++ SYS_SYSARCH = 165 // { int|sys||sysarch(int op, void *parms); } ++ SYS_PREAD = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); } ++ SYS_PWRITE = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); } ++ SYS_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } ++ SYS_SETGID = 181 // { int|sys||setgid(gid_t gid); } ++ SYS_SETEGID = 182 // { int|sys||setegid(gid_t egid); } ++ SYS_SETEUID = 183 // { int|sys||seteuid(uid_t euid); } ++ SYS_PATHCONF = 191 // { long|sys||pathconf(const char *path, int name); } ++ SYS_FPATHCONF = 192 // { long|sys||fpathconf(int fd, int name); } ++ SYS_GETRLIMIT = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); } ++ SYS_SETRLIMIT = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); } ++ SYS_MMAP = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); } ++ SYS_LSEEK = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); } ++ SYS_TRUNCATE = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); } ++ SYS_FTRUNCATE = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); } ++ SYS___SYSCTL = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); } ++ SYS_MLOCK = 203 // { int|sys||mlock(const void *addr, size_t len); } ++ SYS_MUNLOCK = 204 // { int|sys||munlock(const void *addr, size_t len); } ++ SYS_UNDELETE = 205 // { int|sys||undelete(const char *path); } ++ SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } ++ SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } ++ SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } ++ SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } ++ SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } ++ SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } ++ SYS_MSGGET = 225 // { int|sys||msgget(key_t key, int msgflg); } ++ SYS_MSGSND = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } ++ SYS_MSGRCV = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } ++ SYS_SHMAT = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); } ++ SYS_SHMDT = 230 // { int|sys||shmdt(const void *shmaddr); } ++ SYS_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } ++ SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } ++ SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } ++ SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } ++ SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } ++ SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } ++ SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } ++ SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } ++ SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } ++ SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } ++ SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } ++ SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } ++ SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } ++ SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } ++ SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } ++ SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } ++ SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } ++ SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } ++ SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } ++ SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } ++ SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } ++ SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } ++ SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } ++ SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } ++ SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } ++ SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } ++ SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } ++ SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } ++ SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } ++ SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } ++ SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } ++ SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } ++ SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } ++ SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } ++ SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } ++ SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } ++ SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } ++ SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } ++ SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } ++ SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } ++ SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } ++ SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } ++ SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } ++ SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } ++ SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } ++ SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } ++ SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } ++ SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } ++ SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } ++ SYS_KQUEUE = 344 // { int|sys||kqueue(void); } ++ SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } ++ SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } ++ SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } ++ SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } ++ SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } ++ SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } ++ SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } ++ SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } ++ SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } ++ SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } ++ SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } ++ SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } ++ SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } ++ SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } ++ SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } ++ SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } ++ SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } ++ SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } ++ SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } ++ SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } ++ SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } ++ SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } ++ SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } ++ SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } ++ SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } ++ SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } ++ SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } ++ SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } ++ SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } ++ SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } ++ SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } ++ SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } ++ SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } ++ SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } ++ SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } ++ SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } ++ SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } ++ SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } ++ SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } ++ SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } ++ SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } ++ SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } ++ SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } ++ SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } ++ SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } ++ SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } ++ SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } ++ SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } ++ SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } ++ SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } ++ SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } ++ SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } ++ SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } ++ SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } ++ SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } ++ SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } ++ SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } ++ SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } ++ SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } ++ SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } ++ SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } ++ SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } ++ SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } ++ SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } ++ SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } ++ SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } ++ SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } ++ SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } ++ SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } ++ SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } ++ SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } ++ SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } ++ SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } ++ SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } ++ SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } ++ SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } ++ SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } ++ SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } ++ SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } ++ SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } ++ SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } ++ SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } ++ SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } ++ SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } ++ SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } ++ SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } ++ SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } ++ SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } ++ SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } ++ SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } ++ SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } ++ SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } ++ SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } ++ SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } ++ SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } ++ SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } ++ SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } ++ SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } ++ SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } ++ SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } ++) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go +new file mode 100644 +index 0000000..612ba66 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go +@@ -0,0 +1,273 @@ ++// mksysnum_netbsd.pl ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT ++ ++// +build arm,netbsd ++ ++package unix ++ ++const ( ++ SYS_EXIT = 1 // { void|sys||exit(int rval); } ++ SYS_FORK = 2 // { int|sys||fork(void); } ++ SYS_READ = 3 // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } ++ SYS_WRITE = 4 // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); } ++ SYS_OPEN = 5 // { int|sys||open(const char *path, int flags, ... mode_t mode); } ++ SYS_CLOSE = 6 // { int|sys||close(int fd); } ++ SYS_LINK = 9 // { int|sys||link(const char *path, const char *link); } ++ SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } ++ SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } ++ SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } ++ SYS_CHMOD = 15 // { int|sys||chmod(const char *path, mode_t mode); } ++ SYS_CHOWN = 16 // { int|sys||chown(const char *path, uid_t uid, gid_t gid); } ++ SYS_BREAK = 17 // { int|sys||obreak(char *nsize); } ++ SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } ++ SYS_UNMOUNT = 22 // { int|sys||unmount(const char *path, int flags); } ++ SYS_SETUID = 23 // { int|sys||setuid(uid_t uid); } ++ SYS_GETUID = 24 // { uid_t|sys||getuid_with_euid(void); } ++ SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } ++ SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); } ++ SYS_RECVMSG = 27 // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); } ++ SYS_SENDMSG = 28 // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); } ++ SYS_RECVFROM = 29 // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } ++ SYS_ACCEPT = 30 // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); } ++ SYS_GETPEERNAME = 31 // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } ++ SYS_GETSOCKNAME = 32 // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } ++ SYS_ACCESS = 33 // { int|sys||access(const char *path, int flags); } ++ SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } ++ SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } ++ SYS_SYNC = 36 // { void|sys||sync(void); } ++ SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } ++ SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } ++ SYS_DUP = 41 // { int|sys||dup(int fd); } ++ SYS_PIPE = 42 // { int|sys||pipe(void); } ++ SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } ++ SYS_PROFIL = 44 // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); } ++ SYS_KTRACE = 45 // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); } ++ SYS_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } ++ SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } ++ SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } ++ SYS_ACCT = 51 // { int|sys||acct(const char *path); } ++ SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } ++ SYS_REVOKE = 56 // { int|sys||revoke(const char *path); } ++ SYS_SYMLINK = 57 // { int|sys||symlink(const char *path, const char *link); } ++ SYS_READLINK = 58 // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); } ++ SYS_EXECVE = 59 // { int|sys||execve(const char *path, char * const *argp, char * const *envp); } ++ SYS_UMASK = 60 // { mode_t|sys||umask(mode_t newmask); } ++ SYS_CHROOT = 61 // { int|sys||chroot(const char *path); } ++ SYS_VFORK = 66 // { int|sys||vfork(void); } ++ SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } ++ SYS_SSTK = 70 // { int|sys||sstk(int incr); } ++ SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } ++ SYS_MUNMAP = 73 // { int|sys||munmap(void *addr, size_t len); } ++ SYS_MPROTECT = 74 // { int|sys||mprotect(void *addr, size_t len, int prot); } ++ SYS_MADVISE = 75 // { int|sys||madvise(void *addr, size_t len, int behav); } ++ SYS_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } ++ SYS_GETGROUPS = 79 // { int|sys||getgroups(int gidsetsize, gid_t *gidset); } ++ SYS_SETGROUPS = 80 // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); } ++ SYS_GETPGRP = 81 // { int|sys||getpgrp(void); } ++ SYS_SETPGID = 82 // { int|sys||setpgid(pid_t pid, pid_t pgid); } ++ SYS_DUP2 = 90 // { int|sys||dup2(int from, int to); } ++ SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } ++ SYS_FSYNC = 95 // { int|sys||fsync(int fd); } ++ SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } ++ SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } ++ SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } ++ SYS_BIND = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); } ++ SYS_SETSOCKOPT = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } ++ SYS_LISTEN = 106 // { int|sys||listen(int s, int backlog); } ++ SYS_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } ++ SYS_READV = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); } ++ SYS_WRITEV = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); } ++ SYS_FCHOWN = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); } ++ SYS_FCHMOD = 124 // { int|sys||fchmod(int fd, mode_t mode); } ++ SYS_SETREUID = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); } ++ SYS_SETREGID = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); } ++ SYS_RENAME = 128 // { int|sys||rename(const char *from, const char *to); } ++ SYS_FLOCK = 131 // { int|sys||flock(int fd, int how); } ++ SYS_MKFIFO = 132 // { int|sys||mkfifo(const char *path, mode_t mode); } ++ SYS_SENDTO = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } ++ SYS_SHUTDOWN = 134 // { int|sys||shutdown(int s, int how); } ++ SYS_SOCKETPAIR = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); } ++ SYS_MKDIR = 136 // { int|sys||mkdir(const char *path, mode_t mode); } ++ SYS_RMDIR = 137 // { int|sys||rmdir(const char *path); } ++ SYS_SETSID = 147 // { int|sys||setsid(void); } ++ SYS_SYSARCH = 165 // { int|sys||sysarch(int op, void *parms); } ++ SYS_PREAD = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); } ++ SYS_PWRITE = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); } ++ SYS_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } ++ SYS_SETGID = 181 // { int|sys||setgid(gid_t gid); } ++ SYS_SETEGID = 182 // { int|sys||setegid(gid_t egid); } ++ SYS_SETEUID = 183 // { int|sys||seteuid(uid_t euid); } ++ SYS_PATHCONF = 191 // { long|sys||pathconf(const char *path, int name); } ++ SYS_FPATHCONF = 192 // { long|sys||fpathconf(int fd, int name); } ++ SYS_GETRLIMIT = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); } ++ SYS_SETRLIMIT = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); } ++ SYS_MMAP = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); } ++ SYS_LSEEK = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); } ++ SYS_TRUNCATE = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); } ++ SYS_FTRUNCATE = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); } ++ SYS___SYSCTL = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); } ++ SYS_MLOCK = 203 // { int|sys||mlock(const void *addr, size_t len); } ++ SYS_MUNLOCK = 204 // { int|sys||munlock(const void *addr, size_t len); } ++ SYS_UNDELETE = 205 // { int|sys||undelete(const char *path); } ++ SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } ++ SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } ++ SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } ++ SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } ++ SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } ++ SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } ++ SYS_MSGGET = 225 // { int|sys||msgget(key_t key, int msgflg); } ++ SYS_MSGSND = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } ++ SYS_MSGRCV = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } ++ SYS_SHMAT = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); } ++ SYS_SHMDT = 230 // { int|sys||shmdt(const void *shmaddr); } ++ SYS_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } ++ SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } ++ SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } ++ SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } ++ SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } ++ SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } ++ SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } ++ SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } ++ SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } ++ SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } ++ SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } ++ SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } ++ SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } ++ SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } ++ SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } ++ SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } ++ SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } ++ SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } ++ SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } ++ SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } ++ SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } ++ SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } ++ SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } ++ SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } ++ SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } ++ SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } ++ SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } ++ SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } ++ SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } ++ SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } ++ SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } ++ SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } ++ SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } ++ SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } ++ SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } ++ SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } ++ SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } ++ SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } ++ SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } ++ SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } ++ SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } ++ SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } ++ SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } ++ SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } ++ SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } ++ SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } ++ SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } ++ SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } ++ SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } ++ SYS_KQUEUE = 344 // { int|sys||kqueue(void); } ++ SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } ++ SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } ++ SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } ++ SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } ++ SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } ++ SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } ++ SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } ++ SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } ++ SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } ++ SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } ++ SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } ++ SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } ++ SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } ++ SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } ++ SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } ++ SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } ++ SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } ++ SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } ++ SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } ++ SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } ++ SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } ++ SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } ++ SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } ++ SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } ++ SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } ++ SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } ++ SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } ++ SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } ++ SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } ++ SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } ++ SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } ++ SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } ++ SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } ++ SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } ++ SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } ++ SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } ++ SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } ++ SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } ++ SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } ++ SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } ++ SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } ++ SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } ++ SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } ++ SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } ++ SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } ++ SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } ++ SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } ++ SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } ++ SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } ++ SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } ++ SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } ++ SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } ++ SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } ++ SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } ++ SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } ++ SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } ++ SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } ++ SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } ++ SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } ++ SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } ++ SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } ++ SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } ++ SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } ++ SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } ++ SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } ++ SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } ++ SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } ++ SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } ++ SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } ++ SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } ++ SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } ++ SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } ++ SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } ++ SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } ++ SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } ++ SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } ++ SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } ++ SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } ++ SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } ++ SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } ++ SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } ++ SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } ++ SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } ++ SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } ++ SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } ++ SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } ++ SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } ++ SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } ++ SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } ++ SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } ++ SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } ++ SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } ++ SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } ++ SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } ++ SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } ++ SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } ++ SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } ++ SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } ++ SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } ++ SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } ++) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go +new file mode 100644 +index 0000000..3e8ce2a +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go +@@ -0,0 +1,207 @@ ++// mksysnum_openbsd.pl ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT ++ ++// +build 386,openbsd ++ ++package unix ++ ++const ( ++ SYS_EXIT = 1 // { void sys_exit(int rval); } ++ SYS_FORK = 2 // { int sys_fork(void); } ++ SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } ++ SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, \ ++ SYS_OPEN = 5 // { int sys_open(const char *path, \ ++ SYS_CLOSE = 6 // { int sys_close(int fd); } ++ SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, \ ++ SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } ++ SYS_UNLINK = 10 // { int sys_unlink(const char *path); } ++ SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, \ ++ SYS_CHDIR = 12 // { int sys_chdir(const char *path); } ++ SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } ++ SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, \ ++ SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } ++ SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, \ ++ SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break ++ SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } ++ SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, \ ++ SYS_GETPID = 20 // { pid_t sys_getpid(void); } ++ SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, \ ++ SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } ++ SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } ++ SYS_GETUID = 24 // { uid_t sys_getuid(void); } ++ SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } ++ SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, \ ++ SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, \ ++ SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, \ ++ SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, \ ++ SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, \ ++ SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, \ ++ SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, \ ++ SYS_ACCESS = 33 // { int sys_access(const char *path, int flags); } ++ SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } ++ SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } ++ SYS_SYNC = 36 // { void sys_sync(void); } ++ SYS_KILL = 37 // { int sys_kill(int pid, int signum); } ++ SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } ++ SYS_GETPPID = 39 // { pid_t sys_getppid(void); } ++ SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } ++ SYS_DUP = 41 // { int sys_dup(int fd); } ++ SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, \ ++ SYS_GETEGID = 43 // { gid_t sys_getegid(void); } ++ SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, \ ++ SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, \ ++ SYS_SIGACTION = 46 // { int sys_sigaction(int signum, \ ++ SYS_GETGID = 47 // { gid_t sys_getgid(void); } ++ SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } ++ SYS_GETLOGIN = 49 // { int sys_getlogin(char *namebuf, u_int namelen); } ++ SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } ++ SYS_ACCT = 51 // { int sys_acct(const char *path); } ++ SYS_SIGPENDING = 52 // { int sys_sigpending(void); } ++ SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } ++ SYS_IOCTL = 54 // { int sys_ioctl(int fd, \ ++ SYS_REBOOT = 55 // { int sys_reboot(int opt); } ++ SYS_REVOKE = 56 // { int sys_revoke(const char *path); } ++ SYS_SYMLINK = 57 // { int sys_symlink(const char *path, \ ++ SYS_READLINK = 58 // { int sys_readlink(const char *path, char *buf, \ ++ SYS_EXECVE = 59 // { int sys_execve(const char *path, \ ++ SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } ++ SYS_CHROOT = 61 // { int sys_chroot(const char *path); } ++ SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, \ ++ SYS_STATFS = 63 // { int sys_statfs(const char *path, \ ++ SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } ++ SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, \ ++ SYS_VFORK = 66 // { int sys_vfork(void); } ++ SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, \ ++ SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, \ ++ SYS_SETITIMER = 69 // { int sys_setitimer(int which, \ ++ SYS_GETITIMER = 70 // { int sys_getitimer(int which, \ ++ SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, \ ++ SYS_KEVENT = 72 // { int sys_kevent(int fd, \ ++ SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } ++ SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, \ ++ SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, \ ++ SYS_UTIMES = 76 // { int sys_utimes(const char *path, \ ++ SYS_FUTIMES = 77 // { int sys_futimes(int fd, \ ++ SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, \ ++ SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, \ ++ SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, \ ++ SYS_GETPGRP = 81 // { int sys_getpgrp(void); } ++ SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, int pgid); } ++ SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, \ ++ SYS_FUTIMENS = 85 // { int sys_futimens(int fd, \ ++ SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, \ ++ SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, \ ++ SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, \ ++ SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } ++ SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, \ ++ SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } ++ SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, \ ++ SYS_FSYNC = 95 // { int sys_fsync(int fd); } ++ SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } ++ SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } ++ SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, \ ++ SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } ++ SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } ++ SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } ++ SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, \ ++ SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, \ ++ SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } ++ SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, \ ++ SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, \ ++ SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } ++ SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, \ ++ SYS_READV = 120 // { ssize_t sys_readv(int fd, \ ++ SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, \ ++ SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } ++ SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } ++ SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } ++ SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } ++ SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } ++ SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } ++ SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } ++ SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, \ ++ SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } ++ SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, \ ++ SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } ++ SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } ++ SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, \ ++ SYS_SETSID = 147 // { int sys_setsid(void); } ++ SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, \ ++ SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } ++ SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } ++ SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } ++ SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, \ ++ SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, \ ++ SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } ++ SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } ++ SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } ++ SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } ++ SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } ++ SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } ++ SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, \ ++ SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, \ ++ SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, \ ++ SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, \ ++ SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, \ ++ SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } ++ SYS___SYSCTL = 202 // { int sys___sysctl(const int *name, u_int namelen, \ ++ SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } ++ SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } ++ SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } ++ SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, \ ++ SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } ++ SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } ++ SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, \ ++ SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, \ ++ SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, \ ++ SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } ++ SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, \ ++ SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, \ ++ SYS_ISSETUGID = 253 // { int sys_issetugid(void); } ++ SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } ++ SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } ++ SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } ++ SYS_PIPE = 263 // { int sys_pipe(int *fdp); } ++ SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } ++ SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, \ ++ SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, \ ++ SYS_KQUEUE = 269 // { int sys_kqueue(void); } ++ SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } ++ SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } ++ SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, \ ++ SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, \ ++ SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, \ ++ SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, \ ++ SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, \ ++ SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } ++ SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, \ ++ SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } ++ SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, \ ++ SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, \ ++ SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, \ ++ SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, \ ++ SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, \ ++ SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } ++ SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } ++ SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, \ ++ SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } ++ SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, \ ++ SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } ++ SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, \ ++ SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } ++ SYS_GETRTABLE = 311 // { int sys_getrtable(void); } ++ SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, \ ++ SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, \ ++ SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, \ ++ SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, \ ++ SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, \ ++ SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, \ ++ SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, \ ++ SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, \ ++ SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, \ ++ SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, \ ++ SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, \ ++ SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, \ ++ SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } ++ SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } ++) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go +new file mode 100644 +index 0000000..bd28146 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go +@@ -0,0 +1,207 @@ ++// mksysnum_openbsd.pl ++// MACHINE GENERATED BY THE ABOVE COMMAND; DO NOT EDIT ++ ++// +build amd64,openbsd ++ ++package unix ++ ++const ( ++ SYS_EXIT = 1 // { void sys_exit(int rval); } ++ SYS_FORK = 2 // { int sys_fork(void); } ++ SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } ++ SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, \ ++ SYS_OPEN = 5 // { int sys_open(const char *path, \ ++ SYS_CLOSE = 6 // { int sys_close(int fd); } ++ SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, \ ++ SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } ++ SYS_UNLINK = 10 // { int sys_unlink(const char *path); } ++ SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, \ ++ SYS_CHDIR = 12 // { int sys_chdir(const char *path); } ++ SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } ++ SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, \ ++ SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } ++ SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, \ ++ SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break ++ SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } ++ SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, \ ++ SYS_GETPID = 20 // { pid_t sys_getpid(void); } ++ SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, \ ++ SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } ++ SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } ++ SYS_GETUID = 24 // { uid_t sys_getuid(void); } ++ SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } ++ SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, \ ++ SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, \ ++ SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, \ ++ SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, \ ++ SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, \ ++ SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, \ ++ SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, \ ++ SYS_ACCESS = 33 // { int sys_access(const char *path, int flags); } ++ SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } ++ SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } ++ SYS_SYNC = 36 // { void sys_sync(void); } ++ SYS_KILL = 37 // { int sys_kill(int pid, int signum); } ++ SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } ++ SYS_GETPPID = 39 // { pid_t sys_getppid(void); } ++ SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } ++ SYS_DUP = 41 // { int sys_dup(int fd); } ++ SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, \ ++ SYS_GETEGID = 43 // { gid_t sys_getegid(void); } ++ SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, \ ++ SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, \ ++ SYS_SIGACTION = 46 // { int sys_sigaction(int signum, \ ++ SYS_GETGID = 47 // { gid_t sys_getgid(void); } ++ SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } ++ SYS_GETLOGIN = 49 // { int sys_getlogin(char *namebuf, u_int namelen); } ++ SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } ++ SYS_ACCT = 51 // { int sys_acct(const char *path); } ++ SYS_SIGPENDING = 52 // { int sys_sigpending(void); } ++ SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } ++ SYS_IOCTL = 54 // { int sys_ioctl(int fd, \ ++ SYS_REBOOT = 55 // { int sys_reboot(int opt); } ++ SYS_REVOKE = 56 // { int sys_revoke(const char *path); } ++ SYS_SYMLINK = 57 // { int sys_symlink(const char *path, \ ++ SYS_READLINK = 58 // { int sys_readlink(const char *path, char *buf, \ ++ SYS_EXECVE = 59 // { int sys_execve(const char *path, \ ++ SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } ++ SYS_CHROOT = 61 // { int sys_chroot(const char *path); } ++ SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, \ ++ SYS_STATFS = 63 // { int sys_statfs(const char *path, \ ++ SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } ++ SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, \ ++ SYS_VFORK = 66 // { int sys_vfork(void); } ++ SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, \ ++ SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, \ ++ SYS_SETITIMER = 69 // { int sys_setitimer(int which, \ ++ SYS_GETITIMER = 70 // { int sys_getitimer(int which, \ ++ SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, \ ++ SYS_KEVENT = 72 // { int sys_kevent(int fd, \ ++ SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } ++ SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, \ ++ SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, \ ++ SYS_UTIMES = 76 // { int sys_utimes(const char *path, \ ++ SYS_FUTIMES = 77 // { int sys_futimes(int fd, \ ++ SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, \ ++ SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, \ ++ SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, \ ++ SYS_GETPGRP = 81 // { int sys_getpgrp(void); } ++ SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, int pgid); } ++ SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, \ ++ SYS_FUTIMENS = 85 // { int sys_futimens(int fd, \ ++ SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, \ ++ SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, \ ++ SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, \ ++ SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } ++ SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, \ ++ SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } ++ SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, \ ++ SYS_FSYNC = 95 // { int sys_fsync(int fd); } ++ SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } ++ SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } ++ SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, \ ++ SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } ++ SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } ++ SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } ++ SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, \ ++ SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, \ ++ SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } ++ SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, \ ++ SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, \ ++ SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } ++ SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, \ ++ SYS_READV = 120 // { ssize_t sys_readv(int fd, \ ++ SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, \ ++ SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } ++ SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } ++ SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } ++ SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } ++ SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } ++ SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } ++ SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } ++ SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, \ ++ SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } ++ SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, \ ++ SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } ++ SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } ++ SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, \ ++ SYS_SETSID = 147 // { int sys_setsid(void); } ++ SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, \ ++ SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } ++ SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } ++ SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } ++ SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, \ ++ SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, \ ++ SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } ++ SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } ++ SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } ++ SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } ++ SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } ++ SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } ++ SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, \ ++ SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, \ ++ SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, \ ++ SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, \ ++ SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, \ ++ SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } ++ SYS___SYSCTL = 202 // { int sys___sysctl(const int *name, u_int namelen, \ ++ SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } ++ SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } ++ SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } ++ SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, \ ++ SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } ++ SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } ++ SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, \ ++ SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, \ ++ SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, \ ++ SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } ++ SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, \ ++ SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, \ ++ SYS_ISSETUGID = 253 // { int sys_issetugid(void); } ++ SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } ++ SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } ++ SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } ++ SYS_PIPE = 263 // { int sys_pipe(int *fdp); } ++ SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } ++ SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, \ ++ SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, \ ++ SYS_KQUEUE = 269 // { int sys_kqueue(void); } ++ SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } ++ SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } ++ SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, \ ++ SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, \ ++ SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, \ ++ SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, \ ++ SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, \ ++ SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } ++ SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, \ ++ SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } ++ SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, \ ++ SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, \ ++ SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, \ ++ SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, \ ++ SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, \ ++ SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } ++ SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } ++ SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, \ ++ SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } ++ SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, \ ++ SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } ++ SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, \ ++ SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } ++ SYS_GETRTABLE = 311 // { int sys_getrtable(void); } ++ SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, \ ++ SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, \ ++ SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, \ ++ SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, \ ++ SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, \ ++ SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, \ ++ SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, \ ++ SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, \ ++ SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, \ ++ SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, \ ++ SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, \ ++ SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, \ ++ SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } ++ SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } ++) +diff --git a/vendor/golang.org/x/sys/unix/zsysnum_solaris_amd64.go b/vendor/golang.org/x/sys/unix/zsysnum_solaris_amd64.go +new file mode 100644 +index 0000000..c708659 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/zsysnum_solaris_amd64.go +@@ -0,0 +1,13 @@ ++// Copyright 2014 The Go Authors. All rights reserved. ++// Use of this source code is governed by a BSD-style ++// license that can be found in the LICENSE file. ++ ++// +build amd64,solaris ++ ++package unix ++ ++// TODO(aram): remove these before Go 1.3. ++const ( ++ SYS_EXECVE = 59 ++ SYS_FCNTL = 62 ++) +diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go +new file mode 100644 +index 0000000..2de1d44 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_386.go +@@ -0,0 +1,447 @@ ++// +build 386,darwin ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs types_darwin.go ++ ++package unix ++ ++const ( ++ sizeofPtr = 0x4 ++ sizeofShort = 0x2 ++ sizeofInt = 0x4 ++ sizeofLong = 0x4 ++ sizeofLongLong = 0x8 ++) ++ ++type ( ++ _C_short int16 ++ _C_int int32 ++ _C_long int32 ++ _C_long_long int64 ++) ++ ++type Timespec struct { ++ Sec int32 ++ Nsec int32 ++} ++ ++type Timeval struct { ++ Sec int32 ++ Usec int32 ++} ++ ++type Timeval32 struct{} ++ ++type Rusage struct { ++ Utime Timeval ++ Stime Timeval ++ Maxrss int32 ++ Ixrss int32 ++ Idrss int32 ++ Isrss int32 ++ Minflt int32 ++ Majflt int32 ++ Nswap int32 ++ Inblock int32 ++ Oublock int32 ++ Msgsnd int32 ++ Msgrcv int32 ++ Nsignals int32 ++ Nvcsw int32 ++ Nivcsw int32 ++} ++ ++type Rlimit struct { ++ Cur uint64 ++ Max uint64 ++} ++ ++type _Gid_t uint32 ++ ++type Stat_t struct { ++ Dev int32 ++ Mode uint16 ++ Nlink uint16 ++ Ino uint64 ++ Uid uint32 ++ Gid uint32 ++ Rdev int32 ++ Atimespec Timespec ++ Mtimespec Timespec ++ Ctimespec Timespec ++ Birthtimespec Timespec ++ Size int64 ++ Blocks int64 ++ Blksize int32 ++ Flags uint32 ++ Gen uint32 ++ Lspare int32 ++ Qspare [2]int64 ++} ++ ++type Statfs_t struct { ++ Bsize uint32 ++ Iosize int32 ++ Blocks uint64 ++ Bfree uint64 ++ Bavail uint64 ++ Files uint64 ++ Ffree uint64 ++ Fsid Fsid ++ Owner uint32 ++ Type uint32 ++ Flags uint32 ++ Fssubtype uint32 ++ Fstypename [16]int8 ++ Mntonname [1024]int8 ++ Mntfromname [1024]int8 ++ Reserved [8]uint32 ++} ++ ++type Flock_t struct { ++ Start int64 ++ Len int64 ++ Pid int32 ++ Type int16 ++ Whence int16 ++} ++ ++type Fstore_t struct { ++ Flags uint32 ++ Posmode int32 ++ Offset int64 ++ Length int64 ++ Bytesalloc int64 ++} ++ ++type Radvisory_t struct { ++ Offset int64 ++ Count int32 ++} ++ ++type Fbootstraptransfer_t struct { ++ Offset int64 ++ Length uint32 ++ Buffer *byte ++} ++ ++type Log2phys_t struct { ++ Flags uint32 ++ Contigbytes int64 ++ Devoffset int64 ++} ++ ++type Fsid struct { ++ Val [2]int32 ++} ++ ++type Dirent struct { ++ Ino uint64 ++ Seekoff uint64 ++ Reclen uint16 ++ Namlen uint16 ++ Type uint8 ++ Name [1024]int8 ++ Pad_cgo_0 [3]byte ++} ++ ++type RawSockaddrInet4 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]int8 ++} ++ ++type RawSockaddrInet6 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++} ++ ++type RawSockaddrUnix struct { ++ Len uint8 ++ Family uint8 ++ Path [104]int8 ++} ++ ++type RawSockaddrDatalink struct { ++ Len uint8 ++ Family uint8 ++ Index uint16 ++ Type uint8 ++ Nlen uint8 ++ Alen uint8 ++ Slen uint8 ++ Data [12]int8 ++} ++ ++type RawSockaddr struct { ++ Len uint8 ++ Family uint8 ++ Data [14]int8 ++} ++ ++type RawSockaddrAny struct { ++ Addr RawSockaddr ++ Pad [92]int8 ++} ++ ++type _Socklen uint32 ++ ++type Linger struct { ++ Onoff int32 ++ Linger int32 ++} ++ ++type Iovec struct { ++ Base *byte ++ Len uint32 ++} ++ ++type IPMreq struct { ++ Multiaddr [4]byte /* in_addr */ ++ Interface [4]byte /* in_addr */ ++} ++ ++type IPv6Mreq struct { ++ Multiaddr [16]byte /* in6_addr */ ++ Interface uint32 ++} ++ ++type Msghdr struct { ++ Name *byte ++ Namelen uint32 ++ Iov *Iovec ++ Iovlen int32 ++ Control *byte ++ Controllen uint32 ++ Flags int32 ++} ++ ++type Cmsghdr struct { ++ Len uint32 ++ Level int32 ++ Type int32 ++} ++ ++type Inet4Pktinfo struct { ++ Ifindex uint32 ++ Spec_dst [4]byte /* in_addr */ ++ Addr [4]byte /* in_addr */ ++} ++ ++type Inet6Pktinfo struct { ++ Addr [16]byte /* in6_addr */ ++ Ifindex uint32 ++} ++ ++type IPv6MTUInfo struct { ++ Addr RawSockaddrInet6 ++ Mtu uint32 ++} ++ ++type ICMPv6Filter struct { ++ Filt [8]uint32 ++} ++ ++const ( ++ SizeofSockaddrInet4 = 0x10 ++ SizeofSockaddrInet6 = 0x1c ++ SizeofSockaddrAny = 0x6c ++ SizeofSockaddrUnix = 0x6a ++ SizeofSockaddrDatalink = 0x14 ++ SizeofLinger = 0x8 ++ SizeofIPMreq = 0x8 ++ SizeofIPv6Mreq = 0x14 ++ SizeofMsghdr = 0x1c ++ SizeofCmsghdr = 0xc ++ SizeofInet4Pktinfo = 0xc ++ SizeofInet6Pktinfo = 0x14 ++ SizeofIPv6MTUInfo = 0x20 ++ SizeofICMPv6Filter = 0x20 ++) ++ ++const ( ++ PTRACE_TRACEME = 0x0 ++ PTRACE_CONT = 0x7 ++ PTRACE_KILL = 0x8 ++) ++ ++type Kevent_t struct { ++ Ident uint32 ++ Filter int16 ++ Flags uint16 ++ Fflags uint32 ++ Data int32 ++ Udata *byte ++} ++ ++type FdSet struct { ++ Bits [32]int32 ++} ++ ++const ( ++ SizeofIfMsghdr = 0x70 ++ SizeofIfData = 0x60 ++ SizeofIfaMsghdr = 0x14 ++ SizeofIfmaMsghdr = 0x10 ++ SizeofIfmaMsghdr2 = 0x14 ++ SizeofRtMsghdr = 0x5c ++ SizeofRtMetrics = 0x38 ++) ++ ++type IfMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Data IfData ++} ++ ++type IfData struct { ++ Type uint8 ++ Typelen uint8 ++ Physical uint8 ++ Addrlen uint8 ++ Hdrlen uint8 ++ Recvquota uint8 ++ Xmitquota uint8 ++ Unused1 uint8 ++ Mtu uint32 ++ Metric uint32 ++ Baudrate uint32 ++ Ipackets uint32 ++ Ierrors uint32 ++ Opackets uint32 ++ Oerrors uint32 ++ Collisions uint32 ++ Ibytes uint32 ++ Obytes uint32 ++ Imcasts uint32 ++ Omcasts uint32 ++ Iqdrops uint32 ++ Noproto uint32 ++ Recvtiming uint32 ++ Xmittiming uint32 ++ Lastchange Timeval ++ Unused2 uint32 ++ Hwassist uint32 ++ Reserved1 uint32 ++ Reserved2 uint32 ++} ++ ++type IfaMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Metric int32 ++} ++ ++type IfmaMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++} ++ ++type IfmaMsghdr2 struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Refcount int32 ++} ++ ++type RtMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Flags int32 ++ Addrs int32 ++ Pid int32 ++ Seq int32 ++ Errno int32 ++ Use int32 ++ Inits uint32 ++ Rmx RtMetrics ++} ++ ++type RtMetrics struct { ++ Locks uint32 ++ Mtu uint32 ++ Hopcount uint32 ++ Expire int32 ++ Recvpipe uint32 ++ Sendpipe uint32 ++ Ssthresh uint32 ++ Rtt uint32 ++ Rttvar uint32 ++ Pksent uint32 ++ Filler [4]uint32 ++} ++ ++const ( ++ SizeofBpfVersion = 0x4 ++ SizeofBpfStat = 0x8 ++ SizeofBpfProgram = 0x8 ++ SizeofBpfInsn = 0x8 ++ SizeofBpfHdr = 0x14 ++) ++ ++type BpfVersion struct { ++ Major uint16 ++ Minor uint16 ++} ++ ++type BpfStat struct { ++ Recv uint32 ++ Drop uint32 ++} ++ ++type BpfProgram struct { ++ Len uint32 ++ Insns *BpfInsn ++} ++ ++type BpfInsn struct { ++ Code uint16 ++ Jt uint8 ++ Jf uint8 ++ K uint32 ++} ++ ++type BpfHdr struct { ++ Tstamp Timeval ++ Caplen uint32 ++ Datalen uint32 ++ Hdrlen uint16 ++ Pad_cgo_0 [2]byte ++} ++ ++type Termios struct { ++ Iflag uint32 ++ Oflag uint32 ++ Cflag uint32 ++ Lflag uint32 ++ Cc [20]uint8 ++ Ispeed uint32 ++ Ospeed uint32 ++} +diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go +new file mode 100644 +index 0000000..0446578 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go +@@ -0,0 +1,462 @@ ++// +build amd64,darwin ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs types_darwin.go ++ ++package unix ++ ++const ( ++ sizeofPtr = 0x8 ++ sizeofShort = 0x2 ++ sizeofInt = 0x4 ++ sizeofLong = 0x8 ++ sizeofLongLong = 0x8 ++) ++ ++type ( ++ _C_short int16 ++ _C_int int32 ++ _C_long int64 ++ _C_long_long int64 ++) ++ ++type Timespec struct { ++ Sec int64 ++ Nsec int64 ++} ++ ++type Timeval struct { ++ Sec int64 ++ Usec int32 ++ Pad_cgo_0 [4]byte ++} ++ ++type Timeval32 struct { ++ Sec int32 ++ Usec int32 ++} ++ ++type Rusage struct { ++ Utime Timeval ++ Stime Timeval ++ Maxrss int64 ++ Ixrss int64 ++ Idrss int64 ++ Isrss int64 ++ Minflt int64 ++ Majflt int64 ++ Nswap int64 ++ Inblock int64 ++ Oublock int64 ++ Msgsnd int64 ++ Msgrcv int64 ++ Nsignals int64 ++ Nvcsw int64 ++ Nivcsw int64 ++} ++ ++type Rlimit struct { ++ Cur uint64 ++ Max uint64 ++} ++ ++type _Gid_t uint32 ++ ++type Stat_t struct { ++ Dev int32 ++ Mode uint16 ++ Nlink uint16 ++ Ino uint64 ++ Uid uint32 ++ Gid uint32 ++ Rdev int32 ++ Pad_cgo_0 [4]byte ++ Atimespec Timespec ++ Mtimespec Timespec ++ Ctimespec Timespec ++ Birthtimespec Timespec ++ Size int64 ++ Blocks int64 ++ Blksize int32 ++ Flags uint32 ++ Gen uint32 ++ Lspare int32 ++ Qspare [2]int64 ++} ++ ++type Statfs_t struct { ++ Bsize uint32 ++ Iosize int32 ++ Blocks uint64 ++ Bfree uint64 ++ Bavail uint64 ++ Files uint64 ++ Ffree uint64 ++ Fsid Fsid ++ Owner uint32 ++ Type uint32 ++ Flags uint32 ++ Fssubtype uint32 ++ Fstypename [16]int8 ++ Mntonname [1024]int8 ++ Mntfromname [1024]int8 ++ Reserved [8]uint32 ++} ++ ++type Flock_t struct { ++ Start int64 ++ Len int64 ++ Pid int32 ++ Type int16 ++ Whence int16 ++} ++ ++type Fstore_t struct { ++ Flags uint32 ++ Posmode int32 ++ Offset int64 ++ Length int64 ++ Bytesalloc int64 ++} ++ ++type Radvisory_t struct { ++ Offset int64 ++ Count int32 ++ Pad_cgo_0 [4]byte ++} ++ ++type Fbootstraptransfer_t struct { ++ Offset int64 ++ Length uint64 ++ Buffer *byte ++} ++ ++type Log2phys_t struct { ++ Flags uint32 ++ Pad_cgo_0 [8]byte ++ Pad_cgo_1 [8]byte ++} ++ ++type Fsid struct { ++ Val [2]int32 ++} ++ ++type Dirent struct { ++ Ino uint64 ++ Seekoff uint64 ++ Reclen uint16 ++ Namlen uint16 ++ Type uint8 ++ Name [1024]int8 ++ Pad_cgo_0 [3]byte ++} ++ ++type RawSockaddrInet4 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]int8 ++} ++ ++type RawSockaddrInet6 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++} ++ ++type RawSockaddrUnix struct { ++ Len uint8 ++ Family uint8 ++ Path [104]int8 ++} ++ ++type RawSockaddrDatalink struct { ++ Len uint8 ++ Family uint8 ++ Index uint16 ++ Type uint8 ++ Nlen uint8 ++ Alen uint8 ++ Slen uint8 ++ Data [12]int8 ++} ++ ++type RawSockaddr struct { ++ Len uint8 ++ Family uint8 ++ Data [14]int8 ++} ++ ++type RawSockaddrAny struct { ++ Addr RawSockaddr ++ Pad [92]int8 ++} ++ ++type _Socklen uint32 ++ ++type Linger struct { ++ Onoff int32 ++ Linger int32 ++} ++ ++type Iovec struct { ++ Base *byte ++ Len uint64 ++} ++ ++type IPMreq struct { ++ Multiaddr [4]byte /* in_addr */ ++ Interface [4]byte /* in_addr */ ++} ++ ++type IPv6Mreq struct { ++ Multiaddr [16]byte /* in6_addr */ ++ Interface uint32 ++} ++ ++type Msghdr struct { ++ Name *byte ++ Namelen uint32 ++ Pad_cgo_0 [4]byte ++ Iov *Iovec ++ Iovlen int32 ++ Pad_cgo_1 [4]byte ++ Control *byte ++ Controllen uint32 ++ Flags int32 ++} ++ ++type Cmsghdr struct { ++ Len uint32 ++ Level int32 ++ Type int32 ++} ++ ++type Inet4Pktinfo struct { ++ Ifindex uint32 ++ Spec_dst [4]byte /* in_addr */ ++ Addr [4]byte /* in_addr */ ++} ++ ++type Inet6Pktinfo struct { ++ Addr [16]byte /* in6_addr */ ++ Ifindex uint32 ++} ++ ++type IPv6MTUInfo struct { ++ Addr RawSockaddrInet6 ++ Mtu uint32 ++} ++ ++type ICMPv6Filter struct { ++ Filt [8]uint32 ++} ++ ++const ( ++ SizeofSockaddrInet4 = 0x10 ++ SizeofSockaddrInet6 = 0x1c ++ SizeofSockaddrAny = 0x6c ++ SizeofSockaddrUnix = 0x6a ++ SizeofSockaddrDatalink = 0x14 ++ SizeofLinger = 0x8 ++ SizeofIPMreq = 0x8 ++ SizeofIPv6Mreq = 0x14 ++ SizeofMsghdr = 0x30 ++ SizeofCmsghdr = 0xc ++ SizeofInet4Pktinfo = 0xc ++ SizeofInet6Pktinfo = 0x14 ++ SizeofIPv6MTUInfo = 0x20 ++ SizeofICMPv6Filter = 0x20 ++) ++ ++const ( ++ PTRACE_TRACEME = 0x0 ++ PTRACE_CONT = 0x7 ++ PTRACE_KILL = 0x8 ++) ++ ++type Kevent_t struct { ++ Ident uint64 ++ Filter int16 ++ Flags uint16 ++ Fflags uint32 ++ Data int64 ++ Udata *byte ++} ++ ++type FdSet struct { ++ Bits [32]int32 ++} ++ ++const ( ++ SizeofIfMsghdr = 0x70 ++ SizeofIfData = 0x60 ++ SizeofIfaMsghdr = 0x14 ++ SizeofIfmaMsghdr = 0x10 ++ SizeofIfmaMsghdr2 = 0x14 ++ SizeofRtMsghdr = 0x5c ++ SizeofRtMetrics = 0x38 ++) ++ ++type IfMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Data IfData ++} ++ ++type IfData struct { ++ Type uint8 ++ Typelen uint8 ++ Physical uint8 ++ Addrlen uint8 ++ Hdrlen uint8 ++ Recvquota uint8 ++ Xmitquota uint8 ++ Unused1 uint8 ++ Mtu uint32 ++ Metric uint32 ++ Baudrate uint32 ++ Ipackets uint32 ++ Ierrors uint32 ++ Opackets uint32 ++ Oerrors uint32 ++ Collisions uint32 ++ Ibytes uint32 ++ Obytes uint32 ++ Imcasts uint32 ++ Omcasts uint32 ++ Iqdrops uint32 ++ Noproto uint32 ++ Recvtiming uint32 ++ Xmittiming uint32 ++ Lastchange Timeval32 ++ Unused2 uint32 ++ Hwassist uint32 ++ Reserved1 uint32 ++ Reserved2 uint32 ++} ++ ++type IfaMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Metric int32 ++} ++ ++type IfmaMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++} ++ ++type IfmaMsghdr2 struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Refcount int32 ++} ++ ++type RtMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Flags int32 ++ Addrs int32 ++ Pid int32 ++ Seq int32 ++ Errno int32 ++ Use int32 ++ Inits uint32 ++ Rmx RtMetrics ++} ++ ++type RtMetrics struct { ++ Locks uint32 ++ Mtu uint32 ++ Hopcount uint32 ++ Expire int32 ++ Recvpipe uint32 ++ Sendpipe uint32 ++ Ssthresh uint32 ++ Rtt uint32 ++ Rttvar uint32 ++ Pksent uint32 ++ Filler [4]uint32 ++} ++ ++const ( ++ SizeofBpfVersion = 0x4 ++ SizeofBpfStat = 0x8 ++ SizeofBpfProgram = 0x10 ++ SizeofBpfInsn = 0x8 ++ SizeofBpfHdr = 0x14 ++) ++ ++type BpfVersion struct { ++ Major uint16 ++ Minor uint16 ++} ++ ++type BpfStat struct { ++ Recv uint32 ++ Drop uint32 ++} ++ ++type BpfProgram struct { ++ Len uint32 ++ Pad_cgo_0 [4]byte ++ Insns *BpfInsn ++} ++ ++type BpfInsn struct { ++ Code uint16 ++ Jt uint8 ++ Jf uint8 ++ K uint32 ++} ++ ++type BpfHdr struct { ++ Tstamp Timeval32 ++ Caplen uint32 ++ Datalen uint32 ++ Hdrlen uint16 ++ Pad_cgo_0 [2]byte ++} ++ ++type Termios struct { ++ Iflag uint64 ++ Oflag uint64 ++ Cflag uint64 ++ Lflag uint64 ++ Cc [20]uint8 ++ Pad_cgo_0 [4]byte ++ Ispeed uint64 ++ Ospeed uint64 ++} ++ ++const ( ++ AT_FDCWD = -0x2 ++ AT_SYMLINK_NOFOLLOW = 0x20 ++) +diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go +new file mode 100644 +index 0000000..66df363 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm.go +@@ -0,0 +1,449 @@ ++// NOTE: cgo can't generate struct Stat_t and struct Statfs_t yet ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs types_darwin.go ++ ++// +build arm,darwin ++ ++package unix ++ ++const ( ++ sizeofPtr = 0x4 ++ sizeofShort = 0x2 ++ sizeofInt = 0x4 ++ sizeofLong = 0x4 ++ sizeofLongLong = 0x8 ++) ++ ++type ( ++ _C_short int16 ++ _C_int int32 ++ _C_long int32 ++ _C_long_long int64 ++) ++ ++type Timespec struct { ++ Sec int32 ++ Nsec int32 ++} ++ ++type Timeval struct { ++ Sec int32 ++ Usec int32 ++} ++ ++type Timeval32 [0]byte ++ ++type Rusage struct { ++ Utime Timeval ++ Stime Timeval ++ Maxrss int32 ++ Ixrss int32 ++ Idrss int32 ++ Isrss int32 ++ Minflt int32 ++ Majflt int32 ++ Nswap int32 ++ Inblock int32 ++ Oublock int32 ++ Msgsnd int32 ++ Msgrcv int32 ++ Nsignals int32 ++ Nvcsw int32 ++ Nivcsw int32 ++} ++ ++type Rlimit struct { ++ Cur uint64 ++ Max uint64 ++} ++ ++type _Gid_t uint32 ++ ++type Stat_t struct { ++ Dev int32 ++ Mode uint16 ++ Nlink uint16 ++ Ino uint64 ++ Uid uint32 ++ Gid uint32 ++ Rdev int32 ++ Atimespec Timespec ++ Mtimespec Timespec ++ Ctimespec Timespec ++ Birthtimespec Timespec ++ Size int64 ++ Blocks int64 ++ Blksize int32 ++ Flags uint32 ++ Gen uint32 ++ Lspare int32 ++ Qspare [2]int64 ++} ++ ++type Statfs_t struct { ++ Bsize uint32 ++ Iosize int32 ++ Blocks uint64 ++ Bfree uint64 ++ Bavail uint64 ++ Files uint64 ++ Ffree uint64 ++ Fsid Fsid ++ Owner uint32 ++ Type uint32 ++ Flags uint32 ++ Fssubtype uint32 ++ Fstypename [16]int8 ++ Mntonname [1024]int8 ++ Mntfromname [1024]int8 ++ Reserved [8]uint32 ++} ++ ++type Flock_t struct { ++ Start int64 ++ Len int64 ++ Pid int32 ++ Type int16 ++ Whence int16 ++} ++ ++type Fstore_t struct { ++ Flags uint32 ++ Posmode int32 ++ Offset int64 ++ Length int64 ++ Bytesalloc int64 ++} ++ ++type Radvisory_t struct { ++ Offset int64 ++ Count int32 ++} ++ ++type Fbootstraptransfer_t struct { ++ Offset int64 ++ Length uint32 ++ Buffer *byte ++} ++ ++type Log2phys_t struct { ++ Flags uint32 ++ Contigbytes int64 ++ Devoffset int64 ++} ++ ++type Fsid struct { ++ Val [2]int32 ++} ++ ++type Dirent struct { ++ Ino uint64 ++ Seekoff uint64 ++ Reclen uint16 ++ Namlen uint16 ++ Type uint8 ++ Name [1024]int8 ++ Pad_cgo_0 [3]byte ++} ++ ++type RawSockaddrInet4 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]int8 ++} ++ ++type RawSockaddrInet6 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++} ++ ++type RawSockaddrUnix struct { ++ Len uint8 ++ Family uint8 ++ Path [104]int8 ++} ++ ++type RawSockaddrDatalink struct { ++ Len uint8 ++ Family uint8 ++ Index uint16 ++ Type uint8 ++ Nlen uint8 ++ Alen uint8 ++ Slen uint8 ++ Data [12]int8 ++} ++ ++type RawSockaddr struct { ++ Len uint8 ++ Family uint8 ++ Data [14]int8 ++} ++ ++type RawSockaddrAny struct { ++ Addr RawSockaddr ++ Pad [92]int8 ++} ++ ++type _Socklen uint32 ++ ++type Linger struct { ++ Onoff int32 ++ Linger int32 ++} ++ ++type Iovec struct { ++ Base *byte ++ Len uint32 ++} ++ ++type IPMreq struct { ++ Multiaddr [4]byte /* in_addr */ ++ Interface [4]byte /* in_addr */ ++} ++ ++type IPv6Mreq struct { ++ Multiaddr [16]byte /* in6_addr */ ++ Interface uint32 ++} ++ ++type Msghdr struct { ++ Name *byte ++ Namelen uint32 ++ Iov *Iovec ++ Iovlen int32 ++ Control *byte ++ Controllen uint32 ++ Flags int32 ++} ++ ++type Cmsghdr struct { ++ Len uint32 ++ Level int32 ++ Type int32 ++} ++ ++type Inet4Pktinfo struct { ++ Ifindex uint32 ++ Spec_dst [4]byte /* in_addr */ ++ Addr [4]byte /* in_addr */ ++} ++ ++type Inet6Pktinfo struct { ++ Addr [16]byte /* in6_addr */ ++ Ifindex uint32 ++} ++ ++type IPv6MTUInfo struct { ++ Addr RawSockaddrInet6 ++ Mtu uint32 ++} ++ ++type ICMPv6Filter struct { ++ Filt [8]uint32 ++} ++ ++const ( ++ SizeofSockaddrInet4 = 0x10 ++ SizeofSockaddrInet6 = 0x1c ++ SizeofSockaddrAny = 0x6c ++ SizeofSockaddrUnix = 0x6a ++ SizeofSockaddrDatalink = 0x14 ++ SizeofLinger = 0x8 ++ SizeofIPMreq = 0x8 ++ SizeofIPv6Mreq = 0x14 ++ SizeofMsghdr = 0x1c ++ SizeofCmsghdr = 0xc ++ SizeofInet4Pktinfo = 0xc ++ SizeofInet6Pktinfo = 0x14 ++ SizeofIPv6MTUInfo = 0x20 ++ SizeofICMPv6Filter = 0x20 ++) ++ ++const ( ++ PTRACE_TRACEME = 0x0 ++ PTRACE_CONT = 0x7 ++ PTRACE_KILL = 0x8 ++) ++ ++type Kevent_t struct { ++ Ident uint32 ++ Filter int16 ++ Flags uint16 ++ Fflags uint32 ++ Data int32 ++ Udata *byte ++} ++ ++type FdSet struct { ++ Bits [32]int32 ++} ++ ++const ( ++ SizeofIfMsghdr = 0x70 ++ SizeofIfData = 0x60 ++ SizeofIfaMsghdr = 0x14 ++ SizeofIfmaMsghdr = 0x10 ++ SizeofIfmaMsghdr2 = 0x14 ++ SizeofRtMsghdr = 0x5c ++ SizeofRtMetrics = 0x38 ++) ++ ++type IfMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Data IfData ++} ++ ++type IfData struct { ++ Type uint8 ++ Typelen uint8 ++ Physical uint8 ++ Addrlen uint8 ++ Hdrlen uint8 ++ Recvquota uint8 ++ Xmitquota uint8 ++ Unused1 uint8 ++ Mtu uint32 ++ Metric uint32 ++ Baudrate uint32 ++ Ipackets uint32 ++ Ierrors uint32 ++ Opackets uint32 ++ Oerrors uint32 ++ Collisions uint32 ++ Ibytes uint32 ++ Obytes uint32 ++ Imcasts uint32 ++ Omcasts uint32 ++ Iqdrops uint32 ++ Noproto uint32 ++ Recvtiming uint32 ++ Xmittiming uint32 ++ Lastchange Timeval ++ Unused2 uint32 ++ Hwassist uint32 ++ Reserved1 uint32 ++ Reserved2 uint32 ++} ++ ++type IfaMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Metric int32 ++} ++ ++type IfmaMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++} ++ ++type IfmaMsghdr2 struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Refcount int32 ++} ++ ++type RtMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Flags int32 ++ Addrs int32 ++ Pid int32 ++ Seq int32 ++ Errno int32 ++ Use int32 ++ Inits uint32 ++ Rmx RtMetrics ++} ++ ++type RtMetrics struct { ++ Locks uint32 ++ Mtu uint32 ++ Hopcount uint32 ++ Expire int32 ++ Recvpipe uint32 ++ Sendpipe uint32 ++ Ssthresh uint32 ++ Rtt uint32 ++ Rttvar uint32 ++ Pksent uint32 ++ Filler [4]uint32 ++} ++ ++const ( ++ SizeofBpfVersion = 0x4 ++ SizeofBpfStat = 0x8 ++ SizeofBpfProgram = 0x8 ++ SizeofBpfInsn = 0x8 ++ SizeofBpfHdr = 0x14 ++) ++ ++type BpfVersion struct { ++ Major uint16 ++ Minor uint16 ++} ++ ++type BpfStat struct { ++ Recv uint32 ++ Drop uint32 ++} ++ ++type BpfProgram struct { ++ Len uint32 ++ Insns *BpfInsn ++} ++ ++type BpfInsn struct { ++ Code uint16 ++ Jt uint8 ++ Jf uint8 ++ K uint32 ++} ++ ++type BpfHdr struct { ++ Tstamp Timeval ++ Caplen uint32 ++ Datalen uint32 ++ Hdrlen uint16 ++ Pad_cgo_0 [2]byte ++} ++ ++type Termios struct { ++ Iflag uint32 ++ Oflag uint32 ++ Cflag uint32 ++ Lflag uint32 ++ Cc [20]uint8 ++ Ispeed uint32 ++ Ospeed uint32 ++} +diff --git a/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go +new file mode 100644 +index 0000000..85d56ea +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go +@@ -0,0 +1,457 @@ ++// +build arm64,darwin ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs types_darwin.go ++ ++package unix ++ ++const ( ++ sizeofPtr = 0x8 ++ sizeofShort = 0x2 ++ sizeofInt = 0x4 ++ sizeofLong = 0x8 ++ sizeofLongLong = 0x8 ++) ++ ++type ( ++ _C_short int16 ++ _C_int int32 ++ _C_long int64 ++ _C_long_long int64 ++) ++ ++type Timespec struct { ++ Sec int64 ++ Nsec int64 ++} ++ ++type Timeval struct { ++ Sec int64 ++ Usec int32 ++ Pad_cgo_0 [4]byte ++} ++ ++type Timeval32 struct { ++ Sec int32 ++ Usec int32 ++} ++ ++type Rusage struct { ++ Utime Timeval ++ Stime Timeval ++ Maxrss int64 ++ Ixrss int64 ++ Idrss int64 ++ Isrss int64 ++ Minflt int64 ++ Majflt int64 ++ Nswap int64 ++ Inblock int64 ++ Oublock int64 ++ Msgsnd int64 ++ Msgrcv int64 ++ Nsignals int64 ++ Nvcsw int64 ++ Nivcsw int64 ++} ++ ++type Rlimit struct { ++ Cur uint64 ++ Max uint64 ++} ++ ++type _Gid_t uint32 ++ ++type Stat_t struct { ++ Dev int32 ++ Mode uint16 ++ Nlink uint16 ++ Ino uint64 ++ Uid uint32 ++ Gid uint32 ++ Rdev int32 ++ Pad_cgo_0 [4]byte ++ Atimespec Timespec ++ Mtimespec Timespec ++ Ctimespec Timespec ++ Birthtimespec Timespec ++ Size int64 ++ Blocks int64 ++ Blksize int32 ++ Flags uint32 ++ Gen uint32 ++ Lspare int32 ++ Qspare [2]int64 ++} ++ ++type Statfs_t struct { ++ Bsize uint32 ++ Iosize int32 ++ Blocks uint64 ++ Bfree uint64 ++ Bavail uint64 ++ Files uint64 ++ Ffree uint64 ++ Fsid Fsid ++ Owner uint32 ++ Type uint32 ++ Flags uint32 ++ Fssubtype uint32 ++ Fstypename [16]int8 ++ Mntonname [1024]int8 ++ Mntfromname [1024]int8 ++ Reserved [8]uint32 ++} ++ ++type Flock_t struct { ++ Start int64 ++ Len int64 ++ Pid int32 ++ Type int16 ++ Whence int16 ++} ++ ++type Fstore_t struct { ++ Flags uint32 ++ Posmode int32 ++ Offset int64 ++ Length int64 ++ Bytesalloc int64 ++} ++ ++type Radvisory_t struct { ++ Offset int64 ++ Count int32 ++ Pad_cgo_0 [4]byte ++} ++ ++type Fbootstraptransfer_t struct { ++ Offset int64 ++ Length uint64 ++ Buffer *byte ++} ++ ++type Log2phys_t struct { ++ Flags uint32 ++ Pad_cgo_0 [8]byte ++ Pad_cgo_1 [8]byte ++} ++ ++type Fsid struct { ++ Val [2]int32 ++} ++ ++type Dirent struct { ++ Ino uint64 ++ Seekoff uint64 ++ Reclen uint16 ++ Namlen uint16 ++ Type uint8 ++ Name [1024]int8 ++ Pad_cgo_0 [3]byte ++} ++ ++type RawSockaddrInet4 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]int8 ++} ++ ++type RawSockaddrInet6 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++} ++ ++type RawSockaddrUnix struct { ++ Len uint8 ++ Family uint8 ++ Path [104]int8 ++} ++ ++type RawSockaddrDatalink struct { ++ Len uint8 ++ Family uint8 ++ Index uint16 ++ Type uint8 ++ Nlen uint8 ++ Alen uint8 ++ Slen uint8 ++ Data [12]int8 ++} ++ ++type RawSockaddr struct { ++ Len uint8 ++ Family uint8 ++ Data [14]int8 ++} ++ ++type RawSockaddrAny struct { ++ Addr RawSockaddr ++ Pad [92]int8 ++} ++ ++type _Socklen uint32 ++ ++type Linger struct { ++ Onoff int32 ++ Linger int32 ++} ++ ++type Iovec struct { ++ Base *byte ++ Len uint64 ++} ++ ++type IPMreq struct { ++ Multiaddr [4]byte /* in_addr */ ++ Interface [4]byte /* in_addr */ ++} ++ ++type IPv6Mreq struct { ++ Multiaddr [16]byte /* in6_addr */ ++ Interface uint32 ++} ++ ++type Msghdr struct { ++ Name *byte ++ Namelen uint32 ++ Pad_cgo_0 [4]byte ++ Iov *Iovec ++ Iovlen int32 ++ Pad_cgo_1 [4]byte ++ Control *byte ++ Controllen uint32 ++ Flags int32 ++} ++ ++type Cmsghdr struct { ++ Len uint32 ++ Level int32 ++ Type int32 ++} ++ ++type Inet4Pktinfo struct { ++ Ifindex uint32 ++ Spec_dst [4]byte /* in_addr */ ++ Addr [4]byte /* in_addr */ ++} ++ ++type Inet6Pktinfo struct { ++ Addr [16]byte /* in6_addr */ ++ Ifindex uint32 ++} ++ ++type IPv6MTUInfo struct { ++ Addr RawSockaddrInet6 ++ Mtu uint32 ++} ++ ++type ICMPv6Filter struct { ++ Filt [8]uint32 ++} ++ ++const ( ++ SizeofSockaddrInet4 = 0x10 ++ SizeofSockaddrInet6 = 0x1c ++ SizeofSockaddrAny = 0x6c ++ SizeofSockaddrUnix = 0x6a ++ SizeofSockaddrDatalink = 0x14 ++ SizeofLinger = 0x8 ++ SizeofIPMreq = 0x8 ++ SizeofIPv6Mreq = 0x14 ++ SizeofMsghdr = 0x30 ++ SizeofCmsghdr = 0xc ++ SizeofInet4Pktinfo = 0xc ++ SizeofInet6Pktinfo = 0x14 ++ SizeofIPv6MTUInfo = 0x20 ++ SizeofICMPv6Filter = 0x20 ++) ++ ++const ( ++ PTRACE_TRACEME = 0x0 ++ PTRACE_CONT = 0x7 ++ PTRACE_KILL = 0x8 ++) ++ ++type Kevent_t struct { ++ Ident uint64 ++ Filter int16 ++ Flags uint16 ++ Fflags uint32 ++ Data int64 ++ Udata *byte ++} ++ ++type FdSet struct { ++ Bits [32]int32 ++} ++ ++const ( ++ SizeofIfMsghdr = 0x70 ++ SizeofIfData = 0x60 ++ SizeofIfaMsghdr = 0x14 ++ SizeofIfmaMsghdr = 0x10 ++ SizeofIfmaMsghdr2 = 0x14 ++ SizeofRtMsghdr = 0x5c ++ SizeofRtMetrics = 0x38 ++) ++ ++type IfMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Data IfData ++} ++ ++type IfData struct { ++ Type uint8 ++ Typelen uint8 ++ Physical uint8 ++ Addrlen uint8 ++ Hdrlen uint8 ++ Recvquota uint8 ++ Xmitquota uint8 ++ Unused1 uint8 ++ Mtu uint32 ++ Metric uint32 ++ Baudrate uint32 ++ Ipackets uint32 ++ Ierrors uint32 ++ Opackets uint32 ++ Oerrors uint32 ++ Collisions uint32 ++ Ibytes uint32 ++ Obytes uint32 ++ Imcasts uint32 ++ Omcasts uint32 ++ Iqdrops uint32 ++ Noproto uint32 ++ Recvtiming uint32 ++ Xmittiming uint32 ++ Lastchange Timeval32 ++ Unused2 uint32 ++ Hwassist uint32 ++ Reserved1 uint32 ++ Reserved2 uint32 ++} ++ ++type IfaMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Metric int32 ++} ++ ++type IfmaMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++} ++ ++type IfmaMsghdr2 struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Refcount int32 ++} ++ ++type RtMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Flags int32 ++ Addrs int32 ++ Pid int32 ++ Seq int32 ++ Errno int32 ++ Use int32 ++ Inits uint32 ++ Rmx RtMetrics ++} ++ ++type RtMetrics struct { ++ Locks uint32 ++ Mtu uint32 ++ Hopcount uint32 ++ Expire int32 ++ Recvpipe uint32 ++ Sendpipe uint32 ++ Ssthresh uint32 ++ Rtt uint32 ++ Rttvar uint32 ++ Pksent uint32 ++ Filler [4]uint32 ++} ++ ++const ( ++ SizeofBpfVersion = 0x4 ++ SizeofBpfStat = 0x8 ++ SizeofBpfProgram = 0x10 ++ SizeofBpfInsn = 0x8 ++ SizeofBpfHdr = 0x14 ++) ++ ++type BpfVersion struct { ++ Major uint16 ++ Minor uint16 ++} ++ ++type BpfStat struct { ++ Recv uint32 ++ Drop uint32 ++} ++ ++type BpfProgram struct { ++ Len uint32 ++ Pad_cgo_0 [4]byte ++ Insns *BpfInsn ++} ++ ++type BpfInsn struct { ++ Code uint16 ++ Jt uint8 ++ Jf uint8 ++ K uint32 ++} ++ ++type BpfHdr struct { ++ Tstamp Timeval32 ++ Caplen uint32 ++ Datalen uint32 ++ Hdrlen uint16 ++ Pad_cgo_0 [2]byte ++} ++ ++type Termios struct { ++ Iflag uint64 ++ Oflag uint64 ++ Cflag uint64 ++ Lflag uint64 ++ Cc [20]uint8 ++ Pad_cgo_0 [4]byte ++ Ispeed uint64 ++ Ospeed uint64 ++} +diff --git a/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go +new file mode 100644 +index 0000000..8a6f4e1 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go +@@ -0,0 +1,443 @@ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs types_dragonfly.go ++ ++// +build amd64,dragonfly ++ ++package unix ++ ++const ( ++ sizeofPtr = 0x8 ++ sizeofShort = 0x2 ++ sizeofInt = 0x4 ++ sizeofLong = 0x8 ++ sizeofLongLong = 0x8 ++) ++ ++type ( ++ _C_short int16 ++ _C_int int32 ++ _C_long int64 ++ _C_long_long int64 ++) ++ ++type Timespec struct { ++ Sec int64 ++ Nsec int64 ++} ++ ++type Timeval struct { ++ Sec int64 ++ Usec int64 ++} ++ ++type Rusage struct { ++ Utime Timeval ++ Stime Timeval ++ Maxrss int64 ++ Ixrss int64 ++ Idrss int64 ++ Isrss int64 ++ Minflt int64 ++ Majflt int64 ++ Nswap int64 ++ Inblock int64 ++ Oublock int64 ++ Msgsnd int64 ++ Msgrcv int64 ++ Nsignals int64 ++ Nvcsw int64 ++ Nivcsw int64 ++} ++ ++type Rlimit struct { ++ Cur int64 ++ Max int64 ++} ++ ++type _Gid_t uint32 ++ ++const ( ++ S_IFMT = 0xf000 ++ S_IFIFO = 0x1000 ++ S_IFCHR = 0x2000 ++ S_IFDIR = 0x4000 ++ S_IFBLK = 0x6000 ++ S_IFREG = 0x8000 ++ S_IFLNK = 0xa000 ++ S_IFSOCK = 0xc000 ++ S_ISUID = 0x800 ++ S_ISGID = 0x400 ++ S_ISVTX = 0x200 ++ S_IRUSR = 0x100 ++ S_IWUSR = 0x80 ++ S_IXUSR = 0x40 ++) ++ ++type Stat_t struct { ++ Ino uint64 ++ Nlink uint32 ++ Dev uint32 ++ Mode uint16 ++ Padding1 uint16 ++ Uid uint32 ++ Gid uint32 ++ Rdev uint32 ++ Atim Timespec ++ Mtim Timespec ++ Ctim Timespec ++ Size int64 ++ Blocks int64 ++ Blksize uint32 ++ Flags uint32 ++ Gen uint32 ++ Lspare int32 ++ Qspare1 int64 ++ Qspare2 int64 ++} ++ ++type Statfs_t struct { ++ Spare2 int64 ++ Bsize int64 ++ Iosize int64 ++ Blocks int64 ++ Bfree int64 ++ Bavail int64 ++ Files int64 ++ Ffree int64 ++ Fsid Fsid ++ Owner uint32 ++ Type int32 ++ Flags int32 ++ Pad_cgo_0 [4]byte ++ Syncwrites int64 ++ Asyncwrites int64 ++ Fstypename [16]int8 ++ Mntonname [80]int8 ++ Syncreads int64 ++ Asyncreads int64 ++ Spares1 int16 ++ Mntfromname [80]int8 ++ Spares2 int16 ++ Pad_cgo_1 [4]byte ++ Spare [2]int64 ++} ++ ++type Flock_t struct { ++ Start int64 ++ Len int64 ++ Pid int32 ++ Type int16 ++ Whence int16 ++} ++ ++type Dirent struct { ++ Fileno uint64 ++ Namlen uint16 ++ Type uint8 ++ Unused1 uint8 ++ Unused2 uint32 ++ Name [256]int8 ++} ++ ++type Fsid struct { ++ Val [2]int32 ++} ++ ++type RawSockaddrInet4 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]int8 ++} ++ ++type RawSockaddrInet6 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++} ++ ++type RawSockaddrUnix struct { ++ Len uint8 ++ Family uint8 ++ Path [104]int8 ++} ++ ++type RawSockaddrDatalink struct { ++ Len uint8 ++ Family uint8 ++ Index uint16 ++ Type uint8 ++ Nlen uint8 ++ Alen uint8 ++ Slen uint8 ++ Data [12]int8 ++ Rcf uint16 ++ Route [16]uint16 ++} ++ ++type RawSockaddr struct { ++ Len uint8 ++ Family uint8 ++ Data [14]int8 ++} ++ ++type RawSockaddrAny struct { ++ Addr RawSockaddr ++ Pad [92]int8 ++} ++ ++type _Socklen uint32 ++ ++type Linger struct { ++ Onoff int32 ++ Linger int32 ++} ++ ++type Iovec struct { ++ Base *byte ++ Len uint64 ++} ++ ++type IPMreq struct { ++ Multiaddr [4]byte /* in_addr */ ++ Interface [4]byte /* in_addr */ ++} ++ ++type IPv6Mreq struct { ++ Multiaddr [16]byte /* in6_addr */ ++ Interface uint32 ++} ++ ++type Msghdr struct { ++ Name *byte ++ Namelen uint32 ++ Pad_cgo_0 [4]byte ++ Iov *Iovec ++ Iovlen int32 ++ Pad_cgo_1 [4]byte ++ Control *byte ++ Controllen uint32 ++ Flags int32 ++} ++ ++type Cmsghdr struct { ++ Len uint32 ++ Level int32 ++ Type int32 ++} ++ ++type Inet6Pktinfo struct { ++ Addr [16]byte /* in6_addr */ ++ Ifindex uint32 ++} ++ ++type IPv6MTUInfo struct { ++ Addr RawSockaddrInet6 ++ Mtu uint32 ++} ++ ++type ICMPv6Filter struct { ++ Filt [8]uint32 ++} ++ ++const ( ++ SizeofSockaddrInet4 = 0x10 ++ SizeofSockaddrInet6 = 0x1c ++ SizeofSockaddrAny = 0x6c ++ SizeofSockaddrUnix = 0x6a ++ SizeofSockaddrDatalink = 0x36 ++ SizeofLinger = 0x8 ++ SizeofIPMreq = 0x8 ++ SizeofIPv6Mreq = 0x14 ++ SizeofMsghdr = 0x30 ++ SizeofCmsghdr = 0xc ++ SizeofInet6Pktinfo = 0x14 ++ SizeofIPv6MTUInfo = 0x20 ++ SizeofICMPv6Filter = 0x20 ++) ++ ++const ( ++ PTRACE_TRACEME = 0x0 ++ PTRACE_CONT = 0x7 ++ PTRACE_KILL = 0x8 ++) ++ ++type Kevent_t struct { ++ Ident uint64 ++ Filter int16 ++ Flags uint16 ++ Fflags uint32 ++ Data int64 ++ Udata *byte ++} ++ ++type FdSet struct { ++ Bits [16]uint64 ++} ++ ++const ( ++ SizeofIfMsghdr = 0xb0 ++ SizeofIfData = 0xa0 ++ SizeofIfaMsghdr = 0x14 ++ SizeofIfmaMsghdr = 0x10 ++ SizeofIfAnnounceMsghdr = 0x18 ++ SizeofRtMsghdr = 0x98 ++ SizeofRtMetrics = 0x70 ++) ++ ++type IfMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Data IfData ++} ++ ++type IfData struct { ++ Type uint8 ++ Physical uint8 ++ Addrlen uint8 ++ Hdrlen uint8 ++ Recvquota uint8 ++ Xmitquota uint8 ++ Pad_cgo_0 [2]byte ++ Mtu uint64 ++ Metric uint64 ++ Link_state uint64 ++ Baudrate uint64 ++ Ipackets uint64 ++ Ierrors uint64 ++ Opackets uint64 ++ Oerrors uint64 ++ Collisions uint64 ++ Ibytes uint64 ++ Obytes uint64 ++ Imcasts uint64 ++ Omcasts uint64 ++ Iqdrops uint64 ++ Noproto uint64 ++ Hwassist uint64 ++ Unused uint64 ++ Lastchange Timeval ++} ++ ++type IfaMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Metric int32 ++} ++ ++type IfmaMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++} ++ ++type IfAnnounceMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Index uint16 ++ Name [16]int8 ++ What uint16 ++} ++ ++type RtMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Flags int32 ++ Addrs int32 ++ Pid int32 ++ Seq int32 ++ Errno int32 ++ Use int32 ++ Inits uint64 ++ Rmx RtMetrics ++} ++ ++type RtMetrics struct { ++ Locks uint64 ++ Mtu uint64 ++ Pksent uint64 ++ Expire uint64 ++ Sendpipe uint64 ++ Ssthresh uint64 ++ Rtt uint64 ++ Rttvar uint64 ++ Recvpipe uint64 ++ Hopcount uint64 ++ Mssopt uint16 ++ Pad uint16 ++ Pad_cgo_0 [4]byte ++ Msl uint64 ++ Iwmaxsegs uint64 ++ Iwcapsegs uint64 ++} ++ ++const ( ++ SizeofBpfVersion = 0x4 ++ SizeofBpfStat = 0x8 ++ SizeofBpfProgram = 0x10 ++ SizeofBpfInsn = 0x8 ++ SizeofBpfHdr = 0x20 ++) ++ ++type BpfVersion struct { ++ Major uint16 ++ Minor uint16 ++} ++ ++type BpfStat struct { ++ Recv uint32 ++ Drop uint32 ++} ++ ++type BpfProgram struct { ++ Len uint32 ++ Pad_cgo_0 [4]byte ++ Insns *BpfInsn ++} ++ ++type BpfInsn struct { ++ Code uint16 ++ Jt uint8 ++ Jf uint8 ++ K uint32 ++} ++ ++type BpfHdr struct { ++ Tstamp Timeval ++ Caplen uint32 ++ Datalen uint32 ++ Hdrlen uint16 ++ Pad_cgo_0 [6]byte ++} ++ ++type Termios struct { ++ Iflag uint32 ++ Oflag uint32 ++ Cflag uint32 ++ Lflag uint32 ++ Cc [20]uint8 ++ Ispeed uint32 ++ Ospeed uint32 ++} +diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go +new file mode 100644 +index 0000000..8cf3094 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go +@@ -0,0 +1,502 @@ ++// +build 386,freebsd ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs types_freebsd.go ++ ++package unix ++ ++const ( ++ sizeofPtr = 0x4 ++ sizeofShort = 0x2 ++ sizeofInt = 0x4 ++ sizeofLong = 0x4 ++ sizeofLongLong = 0x8 ++) ++ ++type ( ++ _C_short int16 ++ _C_int int32 ++ _C_long int32 ++ _C_long_long int64 ++) ++ ++type Timespec struct { ++ Sec int32 ++ Nsec int32 ++} ++ ++type Timeval struct { ++ Sec int32 ++ Usec int32 ++} ++ ++type Rusage struct { ++ Utime Timeval ++ Stime Timeval ++ Maxrss int32 ++ Ixrss int32 ++ Idrss int32 ++ Isrss int32 ++ Minflt int32 ++ Majflt int32 ++ Nswap int32 ++ Inblock int32 ++ Oublock int32 ++ Msgsnd int32 ++ Msgrcv int32 ++ Nsignals int32 ++ Nvcsw int32 ++ Nivcsw int32 ++} ++ ++type Rlimit struct { ++ Cur int64 ++ Max int64 ++} ++ ++type _Gid_t uint32 ++ ++const ( ++ S_IFMT = 0xf000 ++ S_IFIFO = 0x1000 ++ S_IFCHR = 0x2000 ++ S_IFDIR = 0x4000 ++ S_IFBLK = 0x6000 ++ S_IFREG = 0x8000 ++ S_IFLNK = 0xa000 ++ S_IFSOCK = 0xc000 ++ S_ISUID = 0x800 ++ S_ISGID = 0x400 ++ S_ISVTX = 0x200 ++ S_IRUSR = 0x100 ++ S_IWUSR = 0x80 ++ S_IXUSR = 0x40 ++) ++ ++type Stat_t struct { ++ Dev uint32 ++ Ino uint32 ++ Mode uint16 ++ Nlink uint16 ++ Uid uint32 ++ Gid uint32 ++ Rdev uint32 ++ Atimespec Timespec ++ Mtimespec Timespec ++ Ctimespec Timespec ++ Size int64 ++ Blocks int64 ++ Blksize uint32 ++ Flags uint32 ++ Gen uint32 ++ Lspare int32 ++ Birthtimespec Timespec ++ Pad_cgo_0 [8]byte ++} ++ ++type Statfs_t struct { ++ Version uint32 ++ Type uint32 ++ Flags uint64 ++ Bsize uint64 ++ Iosize uint64 ++ Blocks uint64 ++ Bfree uint64 ++ Bavail int64 ++ Files uint64 ++ Ffree int64 ++ Syncwrites uint64 ++ Asyncwrites uint64 ++ Syncreads uint64 ++ Asyncreads uint64 ++ Spare [10]uint64 ++ Namemax uint32 ++ Owner uint32 ++ Fsid Fsid ++ Charspare [80]int8 ++ Fstypename [16]int8 ++ Mntfromname [88]int8 ++ Mntonname [88]int8 ++} ++ ++type Flock_t struct { ++ Start int64 ++ Len int64 ++ Pid int32 ++ Type int16 ++ Whence int16 ++ Sysid int32 ++} ++ ++type Dirent struct { ++ Fileno uint32 ++ Reclen uint16 ++ Type uint8 ++ Namlen uint8 ++ Name [256]int8 ++} ++ ++type Fsid struct { ++ Val [2]int32 ++} ++ ++const ( ++ FADV_NORMAL = 0x0 ++ FADV_RANDOM = 0x1 ++ FADV_SEQUENTIAL = 0x2 ++ FADV_WILLNEED = 0x3 ++ FADV_DONTNEED = 0x4 ++ FADV_NOREUSE = 0x5 ++) ++ ++type RawSockaddrInet4 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]int8 ++} ++ ++type RawSockaddrInet6 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++} ++ ++type RawSockaddrUnix struct { ++ Len uint8 ++ Family uint8 ++ Path [104]int8 ++} ++ ++type RawSockaddrDatalink struct { ++ Len uint8 ++ Family uint8 ++ Index uint16 ++ Type uint8 ++ Nlen uint8 ++ Alen uint8 ++ Slen uint8 ++ Data [46]int8 ++} ++ ++type RawSockaddr struct { ++ Len uint8 ++ Family uint8 ++ Data [14]int8 ++} ++ ++type RawSockaddrAny struct { ++ Addr RawSockaddr ++ Pad [92]int8 ++} ++ ++type _Socklen uint32 ++ ++type Linger struct { ++ Onoff int32 ++ Linger int32 ++} ++ ++type Iovec struct { ++ Base *byte ++ Len uint32 ++} ++ ++type IPMreq struct { ++ Multiaddr [4]byte /* in_addr */ ++ Interface [4]byte /* in_addr */ ++} ++ ++type IPMreqn struct { ++ Multiaddr [4]byte /* in_addr */ ++ Address [4]byte /* in_addr */ ++ Ifindex int32 ++} ++ ++type IPv6Mreq struct { ++ Multiaddr [16]byte /* in6_addr */ ++ Interface uint32 ++} ++ ++type Msghdr struct { ++ Name *byte ++ Namelen uint32 ++ Iov *Iovec ++ Iovlen int32 ++ Control *byte ++ Controllen uint32 ++ Flags int32 ++} ++ ++type Cmsghdr struct { ++ Len uint32 ++ Level int32 ++ Type int32 ++} ++ ++type Inet6Pktinfo struct { ++ Addr [16]byte /* in6_addr */ ++ Ifindex uint32 ++} ++ ++type IPv6MTUInfo struct { ++ Addr RawSockaddrInet6 ++ Mtu uint32 ++} ++ ++type ICMPv6Filter struct { ++ Filt [8]uint32 ++} ++ ++const ( ++ SizeofSockaddrInet4 = 0x10 ++ SizeofSockaddrInet6 = 0x1c ++ SizeofSockaddrAny = 0x6c ++ SizeofSockaddrUnix = 0x6a ++ SizeofSockaddrDatalink = 0x36 ++ SizeofLinger = 0x8 ++ SizeofIPMreq = 0x8 ++ SizeofIPMreqn = 0xc ++ SizeofIPv6Mreq = 0x14 ++ SizeofMsghdr = 0x1c ++ SizeofCmsghdr = 0xc ++ SizeofInet6Pktinfo = 0x14 ++ SizeofIPv6MTUInfo = 0x20 ++ SizeofICMPv6Filter = 0x20 ++) ++ ++const ( ++ PTRACE_TRACEME = 0x0 ++ PTRACE_CONT = 0x7 ++ PTRACE_KILL = 0x8 ++) ++ ++type Kevent_t struct { ++ Ident uint32 ++ Filter int16 ++ Flags uint16 ++ Fflags uint32 ++ Data int32 ++ Udata *byte ++} ++ ++type FdSet struct { ++ X__fds_bits [32]uint32 ++} ++ ++const ( ++ sizeofIfMsghdr = 0x64 ++ SizeofIfMsghdr = 0x60 ++ sizeofIfData = 0x54 ++ SizeofIfData = 0x50 ++ SizeofIfaMsghdr = 0x14 ++ SizeofIfmaMsghdr = 0x10 ++ SizeofIfAnnounceMsghdr = 0x18 ++ SizeofRtMsghdr = 0x5c ++ SizeofRtMetrics = 0x38 ++) ++ ++type ifMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Data ifData ++} ++ ++type IfMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Data IfData ++} ++ ++type ifData struct { ++ Type uint8 ++ Physical uint8 ++ Addrlen uint8 ++ Hdrlen uint8 ++ Link_state uint8 ++ Vhid uint8 ++ Baudrate_pf uint8 ++ Datalen uint8 ++ Mtu uint32 ++ Metric uint32 ++ Baudrate uint32 ++ Ipackets uint32 ++ Ierrors uint32 ++ Opackets uint32 ++ Oerrors uint32 ++ Collisions uint32 ++ Ibytes uint32 ++ Obytes uint32 ++ Imcasts uint32 ++ Omcasts uint32 ++ Iqdrops uint32 ++ Noproto uint32 ++ Hwassist uint64 ++ Epoch int32 ++ Lastchange Timeval ++} ++ ++type IfData struct { ++ Type uint8 ++ Physical uint8 ++ Addrlen uint8 ++ Hdrlen uint8 ++ Link_state uint8 ++ Spare_char1 uint8 ++ Spare_char2 uint8 ++ Datalen uint8 ++ Mtu uint32 ++ Metric uint32 ++ Baudrate uint32 ++ Ipackets uint32 ++ Ierrors uint32 ++ Opackets uint32 ++ Oerrors uint32 ++ Collisions uint32 ++ Ibytes uint32 ++ Obytes uint32 ++ Imcasts uint32 ++ Omcasts uint32 ++ Iqdrops uint32 ++ Noproto uint32 ++ Hwassist uint32 ++ Epoch int32 ++ Lastchange Timeval ++} ++ ++type IfaMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Metric int32 ++} ++ ++type IfmaMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++} ++ ++type IfAnnounceMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Index uint16 ++ Name [16]int8 ++ What uint16 ++} ++ ++type RtMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Flags int32 ++ Addrs int32 ++ Pid int32 ++ Seq int32 ++ Errno int32 ++ Fmask int32 ++ Inits uint32 ++ Rmx RtMetrics ++} ++ ++type RtMetrics struct { ++ Locks uint32 ++ Mtu uint32 ++ Hopcount uint32 ++ Expire uint32 ++ Recvpipe uint32 ++ Sendpipe uint32 ++ Ssthresh uint32 ++ Rtt uint32 ++ Rttvar uint32 ++ Pksent uint32 ++ Weight uint32 ++ Filler [3]uint32 ++} ++ ++const ( ++ SizeofBpfVersion = 0x4 ++ SizeofBpfStat = 0x8 ++ SizeofBpfZbuf = 0xc ++ SizeofBpfProgram = 0x8 ++ SizeofBpfInsn = 0x8 ++ SizeofBpfHdr = 0x14 ++ SizeofBpfZbufHeader = 0x20 ++) ++ ++type BpfVersion struct { ++ Major uint16 ++ Minor uint16 ++} ++ ++type BpfStat struct { ++ Recv uint32 ++ Drop uint32 ++} ++ ++type BpfZbuf struct { ++ Bufa *byte ++ Bufb *byte ++ Buflen uint32 ++} ++ ++type BpfProgram struct { ++ Len uint32 ++ Insns *BpfInsn ++} ++ ++type BpfInsn struct { ++ Code uint16 ++ Jt uint8 ++ Jf uint8 ++ K uint32 ++} ++ ++type BpfHdr struct { ++ Tstamp Timeval ++ Caplen uint32 ++ Datalen uint32 ++ Hdrlen uint16 ++ Pad_cgo_0 [2]byte ++} ++ ++type BpfZbufHeader struct { ++ Kernel_gen uint32 ++ Kernel_len uint32 ++ User_gen uint32 ++ X_bzh_pad [5]uint32 ++} ++ ++type Termios struct { ++ Iflag uint32 ++ Oflag uint32 ++ Cflag uint32 ++ Lflag uint32 ++ Cc [20]uint8 ++ Ispeed uint32 ++ Ospeed uint32 ++} +diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go +new file mode 100644 +index 0000000..e5feb20 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go +@@ -0,0 +1,505 @@ ++// +build amd64,freebsd ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs types_freebsd.go ++ ++package unix ++ ++const ( ++ sizeofPtr = 0x8 ++ sizeofShort = 0x2 ++ sizeofInt = 0x4 ++ sizeofLong = 0x8 ++ sizeofLongLong = 0x8 ++) ++ ++type ( ++ _C_short int16 ++ _C_int int32 ++ _C_long int64 ++ _C_long_long int64 ++) ++ ++type Timespec struct { ++ Sec int64 ++ Nsec int64 ++} ++ ++type Timeval struct { ++ Sec int64 ++ Usec int64 ++} ++ ++type Rusage struct { ++ Utime Timeval ++ Stime Timeval ++ Maxrss int64 ++ Ixrss int64 ++ Idrss int64 ++ Isrss int64 ++ Minflt int64 ++ Majflt int64 ++ Nswap int64 ++ Inblock int64 ++ Oublock int64 ++ Msgsnd int64 ++ Msgrcv int64 ++ Nsignals int64 ++ Nvcsw int64 ++ Nivcsw int64 ++} ++ ++type Rlimit struct { ++ Cur int64 ++ Max int64 ++} ++ ++type _Gid_t uint32 ++ ++const ( ++ S_IFMT = 0xf000 ++ S_IFIFO = 0x1000 ++ S_IFCHR = 0x2000 ++ S_IFDIR = 0x4000 ++ S_IFBLK = 0x6000 ++ S_IFREG = 0x8000 ++ S_IFLNK = 0xa000 ++ S_IFSOCK = 0xc000 ++ S_ISUID = 0x800 ++ S_ISGID = 0x400 ++ S_ISVTX = 0x200 ++ S_IRUSR = 0x100 ++ S_IWUSR = 0x80 ++ S_IXUSR = 0x40 ++) ++ ++type Stat_t struct { ++ Dev uint32 ++ Ino uint32 ++ Mode uint16 ++ Nlink uint16 ++ Uid uint32 ++ Gid uint32 ++ Rdev uint32 ++ Atimespec Timespec ++ Mtimespec Timespec ++ Ctimespec Timespec ++ Size int64 ++ Blocks int64 ++ Blksize uint32 ++ Flags uint32 ++ Gen uint32 ++ Lspare int32 ++ Birthtimespec Timespec ++} ++ ++type Statfs_t struct { ++ Version uint32 ++ Type uint32 ++ Flags uint64 ++ Bsize uint64 ++ Iosize uint64 ++ Blocks uint64 ++ Bfree uint64 ++ Bavail int64 ++ Files uint64 ++ Ffree int64 ++ Syncwrites uint64 ++ Asyncwrites uint64 ++ Syncreads uint64 ++ Asyncreads uint64 ++ Spare [10]uint64 ++ Namemax uint32 ++ Owner uint32 ++ Fsid Fsid ++ Charspare [80]int8 ++ Fstypename [16]int8 ++ Mntfromname [88]int8 ++ Mntonname [88]int8 ++} ++ ++type Flock_t struct { ++ Start int64 ++ Len int64 ++ Pid int32 ++ Type int16 ++ Whence int16 ++ Sysid int32 ++ Pad_cgo_0 [4]byte ++} ++ ++type Dirent struct { ++ Fileno uint32 ++ Reclen uint16 ++ Type uint8 ++ Namlen uint8 ++ Name [256]int8 ++} ++ ++type Fsid struct { ++ Val [2]int32 ++} ++ ++const ( ++ FADV_NORMAL = 0x0 ++ FADV_RANDOM = 0x1 ++ FADV_SEQUENTIAL = 0x2 ++ FADV_WILLNEED = 0x3 ++ FADV_DONTNEED = 0x4 ++ FADV_NOREUSE = 0x5 ++) ++ ++type RawSockaddrInet4 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]int8 ++} ++ ++type RawSockaddrInet6 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++} ++ ++type RawSockaddrUnix struct { ++ Len uint8 ++ Family uint8 ++ Path [104]int8 ++} ++ ++type RawSockaddrDatalink struct { ++ Len uint8 ++ Family uint8 ++ Index uint16 ++ Type uint8 ++ Nlen uint8 ++ Alen uint8 ++ Slen uint8 ++ Data [46]int8 ++} ++ ++type RawSockaddr struct { ++ Len uint8 ++ Family uint8 ++ Data [14]int8 ++} ++ ++type RawSockaddrAny struct { ++ Addr RawSockaddr ++ Pad [92]int8 ++} ++ ++type _Socklen uint32 ++ ++type Linger struct { ++ Onoff int32 ++ Linger int32 ++} ++ ++type Iovec struct { ++ Base *byte ++ Len uint64 ++} ++ ++type IPMreq struct { ++ Multiaddr [4]byte /* in_addr */ ++ Interface [4]byte /* in_addr */ ++} ++ ++type IPMreqn struct { ++ Multiaddr [4]byte /* in_addr */ ++ Address [4]byte /* in_addr */ ++ Ifindex int32 ++} ++ ++type IPv6Mreq struct { ++ Multiaddr [16]byte /* in6_addr */ ++ Interface uint32 ++} ++ ++type Msghdr struct { ++ Name *byte ++ Namelen uint32 ++ Pad_cgo_0 [4]byte ++ Iov *Iovec ++ Iovlen int32 ++ Pad_cgo_1 [4]byte ++ Control *byte ++ Controllen uint32 ++ Flags int32 ++} ++ ++type Cmsghdr struct { ++ Len uint32 ++ Level int32 ++ Type int32 ++} ++ ++type Inet6Pktinfo struct { ++ Addr [16]byte /* in6_addr */ ++ Ifindex uint32 ++} ++ ++type IPv6MTUInfo struct { ++ Addr RawSockaddrInet6 ++ Mtu uint32 ++} ++ ++type ICMPv6Filter struct { ++ Filt [8]uint32 ++} ++ ++const ( ++ SizeofSockaddrInet4 = 0x10 ++ SizeofSockaddrInet6 = 0x1c ++ SizeofSockaddrAny = 0x6c ++ SizeofSockaddrUnix = 0x6a ++ SizeofSockaddrDatalink = 0x36 ++ SizeofLinger = 0x8 ++ SizeofIPMreq = 0x8 ++ SizeofIPMreqn = 0xc ++ SizeofIPv6Mreq = 0x14 ++ SizeofMsghdr = 0x30 ++ SizeofCmsghdr = 0xc ++ SizeofInet6Pktinfo = 0x14 ++ SizeofIPv6MTUInfo = 0x20 ++ SizeofICMPv6Filter = 0x20 ++) ++ ++const ( ++ PTRACE_TRACEME = 0x0 ++ PTRACE_CONT = 0x7 ++ PTRACE_KILL = 0x8 ++) ++ ++type Kevent_t struct { ++ Ident uint64 ++ Filter int16 ++ Flags uint16 ++ Fflags uint32 ++ Data int64 ++ Udata *byte ++} ++ ++type FdSet struct { ++ X__fds_bits [16]uint64 ++} ++ ++const ( ++ sizeofIfMsghdr = 0xa8 ++ SizeofIfMsghdr = 0xa8 ++ sizeofIfData = 0x98 ++ SizeofIfData = 0x98 ++ SizeofIfaMsghdr = 0x14 ++ SizeofIfmaMsghdr = 0x10 ++ SizeofIfAnnounceMsghdr = 0x18 ++ SizeofRtMsghdr = 0x98 ++ SizeofRtMetrics = 0x70 ++) ++ ++type ifMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Data ifData ++} ++ ++type IfMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Data IfData ++} ++ ++type ifData struct { ++ Type uint8 ++ Physical uint8 ++ Addrlen uint8 ++ Hdrlen uint8 ++ Link_state uint8 ++ Vhid uint8 ++ Baudrate_pf uint8 ++ Datalen uint8 ++ Mtu uint64 ++ Metric uint64 ++ Baudrate uint64 ++ Ipackets uint64 ++ Ierrors uint64 ++ Opackets uint64 ++ Oerrors uint64 ++ Collisions uint64 ++ Ibytes uint64 ++ Obytes uint64 ++ Imcasts uint64 ++ Omcasts uint64 ++ Iqdrops uint64 ++ Noproto uint64 ++ Hwassist uint64 ++ Epoch int64 ++ Lastchange Timeval ++} ++ ++type IfData struct { ++ Type uint8 ++ Physical uint8 ++ Addrlen uint8 ++ Hdrlen uint8 ++ Link_state uint8 ++ Spare_char1 uint8 ++ Spare_char2 uint8 ++ Datalen uint8 ++ Mtu uint64 ++ Metric uint64 ++ Baudrate uint64 ++ Ipackets uint64 ++ Ierrors uint64 ++ Opackets uint64 ++ Oerrors uint64 ++ Collisions uint64 ++ Ibytes uint64 ++ Obytes uint64 ++ Imcasts uint64 ++ Omcasts uint64 ++ Iqdrops uint64 ++ Noproto uint64 ++ Hwassist uint64 ++ Epoch int64 ++ Lastchange Timeval ++} ++ ++type IfaMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Metric int32 ++} ++ ++type IfmaMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++} ++ ++type IfAnnounceMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Index uint16 ++ Name [16]int8 ++ What uint16 ++} ++ ++type RtMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Flags int32 ++ Addrs int32 ++ Pid int32 ++ Seq int32 ++ Errno int32 ++ Fmask int32 ++ Inits uint64 ++ Rmx RtMetrics ++} ++ ++type RtMetrics struct { ++ Locks uint64 ++ Mtu uint64 ++ Hopcount uint64 ++ Expire uint64 ++ Recvpipe uint64 ++ Sendpipe uint64 ++ Ssthresh uint64 ++ Rtt uint64 ++ Rttvar uint64 ++ Pksent uint64 ++ Weight uint64 ++ Filler [3]uint64 ++} ++ ++const ( ++ SizeofBpfVersion = 0x4 ++ SizeofBpfStat = 0x8 ++ SizeofBpfZbuf = 0x18 ++ SizeofBpfProgram = 0x10 ++ SizeofBpfInsn = 0x8 ++ SizeofBpfHdr = 0x20 ++ SizeofBpfZbufHeader = 0x20 ++) ++ ++type BpfVersion struct { ++ Major uint16 ++ Minor uint16 ++} ++ ++type BpfStat struct { ++ Recv uint32 ++ Drop uint32 ++} ++ ++type BpfZbuf struct { ++ Bufa *byte ++ Bufb *byte ++ Buflen uint64 ++} ++ ++type BpfProgram struct { ++ Len uint32 ++ Pad_cgo_0 [4]byte ++ Insns *BpfInsn ++} ++ ++type BpfInsn struct { ++ Code uint16 ++ Jt uint8 ++ Jf uint8 ++ K uint32 ++} ++ ++type BpfHdr struct { ++ Tstamp Timeval ++ Caplen uint32 ++ Datalen uint32 ++ Hdrlen uint16 ++ Pad_cgo_0 [6]byte ++} ++ ++type BpfZbufHeader struct { ++ Kernel_gen uint32 ++ Kernel_len uint32 ++ User_gen uint32 ++ X_bzh_pad [5]uint32 ++} ++ ++type Termios struct { ++ Iflag uint32 ++ Oflag uint32 ++ Cflag uint32 ++ Lflag uint32 ++ Cc [20]uint8 ++ Ispeed uint32 ++ Ospeed uint32 ++} +diff --git a/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go +new file mode 100644 +index 0000000..5472b54 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go +@@ -0,0 +1,497 @@ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- -fsigned-char types_freebsd.go ++ ++// +build arm,freebsd ++ ++package unix ++ ++const ( ++ sizeofPtr = 0x4 ++ sizeofShort = 0x2 ++ sizeofInt = 0x4 ++ sizeofLong = 0x4 ++ sizeofLongLong = 0x8 ++) ++ ++type ( ++ _C_short int16 ++ _C_int int32 ++ _C_long int32 ++ _C_long_long int64 ++) ++ ++type Timespec struct { ++ Sec int64 ++ Nsec int32 ++ Pad_cgo_0 [4]byte ++} ++ ++type Timeval struct { ++ Sec int64 ++ Usec int32 ++ Pad_cgo_0 [4]byte ++} ++ ++type Rusage struct { ++ Utime Timeval ++ Stime Timeval ++ Maxrss int32 ++ Ixrss int32 ++ Idrss int32 ++ Isrss int32 ++ Minflt int32 ++ Majflt int32 ++ Nswap int32 ++ Inblock int32 ++ Oublock int32 ++ Msgsnd int32 ++ Msgrcv int32 ++ Nsignals int32 ++ Nvcsw int32 ++ Nivcsw int32 ++} ++ ++type Rlimit struct { ++ Cur int64 ++ Max int64 ++} ++ ++type _Gid_t uint32 ++ ++const ( ++ S_IFMT = 0xf000 ++ S_IFIFO = 0x1000 ++ S_IFCHR = 0x2000 ++ S_IFDIR = 0x4000 ++ S_IFBLK = 0x6000 ++ S_IFREG = 0x8000 ++ S_IFLNK = 0xa000 ++ S_IFSOCK = 0xc000 ++ S_ISUID = 0x800 ++ S_ISGID = 0x400 ++ S_ISVTX = 0x200 ++ S_IRUSR = 0x100 ++ S_IWUSR = 0x80 ++ S_IXUSR = 0x40 ++) ++ ++type Stat_t struct { ++ Dev uint32 ++ Ino uint32 ++ Mode uint16 ++ Nlink uint16 ++ Uid uint32 ++ Gid uint32 ++ Rdev uint32 ++ Atimespec Timespec ++ Mtimespec Timespec ++ Ctimespec Timespec ++ Size int64 ++ Blocks int64 ++ Blksize uint32 ++ Flags uint32 ++ Gen uint32 ++ Lspare int32 ++ Birthtimespec Timespec ++} ++ ++type Statfs_t struct { ++ Version uint32 ++ Type uint32 ++ Flags uint64 ++ Bsize uint64 ++ Iosize uint64 ++ Blocks uint64 ++ Bfree uint64 ++ Bavail int64 ++ Files uint64 ++ Ffree int64 ++ Syncwrites uint64 ++ Asyncwrites uint64 ++ Syncreads uint64 ++ Asyncreads uint64 ++ Spare [10]uint64 ++ Namemax uint32 ++ Owner uint32 ++ Fsid Fsid ++ Charspare [80]int8 ++ Fstypename [16]int8 ++ Mntfromname [88]int8 ++ Mntonname [88]int8 ++} ++ ++type Flock_t struct { ++ Start int64 ++ Len int64 ++ Pid int32 ++ Type int16 ++ Whence int16 ++ Sysid int32 ++ Pad_cgo_0 [4]byte ++} ++ ++type Dirent struct { ++ Fileno uint32 ++ Reclen uint16 ++ Type uint8 ++ Namlen uint8 ++ Name [256]int8 ++} ++ ++type Fsid struct { ++ Val [2]int32 ++} ++ ++type RawSockaddrInet4 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]int8 ++} ++ ++type RawSockaddrInet6 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++} ++ ++type RawSockaddrUnix struct { ++ Len uint8 ++ Family uint8 ++ Path [104]int8 ++} ++ ++type RawSockaddrDatalink struct { ++ Len uint8 ++ Family uint8 ++ Index uint16 ++ Type uint8 ++ Nlen uint8 ++ Alen uint8 ++ Slen uint8 ++ Data [46]int8 ++} ++ ++type RawSockaddr struct { ++ Len uint8 ++ Family uint8 ++ Data [14]int8 ++} ++ ++type RawSockaddrAny struct { ++ Addr RawSockaddr ++ Pad [92]int8 ++} ++ ++type _Socklen uint32 ++ ++type Linger struct { ++ Onoff int32 ++ Linger int32 ++} ++ ++type Iovec struct { ++ Base *byte ++ Len uint32 ++} ++ ++type IPMreq struct { ++ Multiaddr [4]byte /* in_addr */ ++ Interface [4]byte /* in_addr */ ++} ++ ++type IPMreqn struct { ++ Multiaddr [4]byte /* in_addr */ ++ Address [4]byte /* in_addr */ ++ Ifindex int32 ++} ++ ++type IPv6Mreq struct { ++ Multiaddr [16]byte /* in6_addr */ ++ Interface uint32 ++} ++ ++type Msghdr struct { ++ Name *byte ++ Namelen uint32 ++ Iov *Iovec ++ Iovlen int32 ++ Control *byte ++ Controllen uint32 ++ Flags int32 ++} ++ ++type Cmsghdr struct { ++ Len uint32 ++ Level int32 ++ Type int32 ++} ++ ++type Inet6Pktinfo struct { ++ Addr [16]byte /* in6_addr */ ++ Ifindex uint32 ++} ++ ++type IPv6MTUInfo struct { ++ Addr RawSockaddrInet6 ++ Mtu uint32 ++} ++ ++type ICMPv6Filter struct { ++ Filt [8]uint32 ++} ++ ++const ( ++ SizeofSockaddrInet4 = 0x10 ++ SizeofSockaddrInet6 = 0x1c ++ SizeofSockaddrAny = 0x6c ++ SizeofSockaddrUnix = 0x6a ++ SizeofSockaddrDatalink = 0x36 ++ SizeofLinger = 0x8 ++ SizeofIPMreq = 0x8 ++ SizeofIPMreqn = 0xc ++ SizeofIPv6Mreq = 0x14 ++ SizeofMsghdr = 0x1c ++ SizeofCmsghdr = 0xc ++ SizeofInet6Pktinfo = 0x14 ++ SizeofIPv6MTUInfo = 0x20 ++ SizeofICMPv6Filter = 0x20 ++) ++ ++const ( ++ PTRACE_TRACEME = 0x0 ++ PTRACE_CONT = 0x7 ++ PTRACE_KILL = 0x8 ++) ++ ++type Kevent_t struct { ++ Ident uint32 ++ Filter int16 ++ Flags uint16 ++ Fflags uint32 ++ Data int32 ++ Udata *byte ++} ++ ++type FdSet struct { ++ X__fds_bits [32]uint32 ++} ++ ++const ( ++ sizeofIfMsghdr = 0x70 ++ SizeofIfMsghdr = 0x70 ++ sizeofIfData = 0x60 ++ SizeofIfData = 0x60 ++ SizeofIfaMsghdr = 0x14 ++ SizeofIfmaMsghdr = 0x10 ++ SizeofIfAnnounceMsghdr = 0x18 ++ SizeofRtMsghdr = 0x5c ++ SizeofRtMetrics = 0x38 ++) ++ ++type ifMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Data ifData ++} ++ ++type IfMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Data IfData ++} ++ ++type ifData struct { ++ Type uint8 ++ Physical uint8 ++ Addrlen uint8 ++ Hdrlen uint8 ++ Link_state uint8 ++ Vhid uint8 ++ Baudrate_pf uint8 ++ Datalen uint8 ++ Mtu uint32 ++ Metric uint32 ++ Baudrate uint32 ++ Ipackets uint32 ++ Ierrors uint32 ++ Opackets uint32 ++ Oerrors uint32 ++ Collisions uint32 ++ Ibytes uint32 ++ Obytes uint32 ++ Imcasts uint32 ++ Omcasts uint32 ++ Iqdrops uint32 ++ Noproto uint32 ++ Hwassist uint64 ++ Epoch int64 ++ Lastchange Timeval ++} ++ ++type IfData struct { ++ Type uint8 ++ Physical uint8 ++ Addrlen uint8 ++ Hdrlen uint8 ++ Link_state uint8 ++ Spare_char1 uint8 ++ Spare_char2 uint8 ++ Datalen uint8 ++ Mtu uint32 ++ Metric uint32 ++ Baudrate uint32 ++ Ipackets uint32 ++ Ierrors uint32 ++ Opackets uint32 ++ Oerrors uint32 ++ Collisions uint32 ++ Ibytes uint32 ++ Obytes uint32 ++ Imcasts uint32 ++ Omcasts uint32 ++ Iqdrops uint32 ++ Noproto uint32 ++ Hwassist uint32 ++ Pad_cgo_0 [4]byte ++ Epoch int64 ++ Lastchange Timeval ++} ++ ++type IfaMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Metric int32 ++} ++ ++type IfmaMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++} ++ ++type IfAnnounceMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Index uint16 ++ Name [16]int8 ++ What uint16 ++} ++ ++type RtMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Flags int32 ++ Addrs int32 ++ Pid int32 ++ Seq int32 ++ Errno int32 ++ Fmask int32 ++ Inits uint32 ++ Rmx RtMetrics ++} ++ ++type RtMetrics struct { ++ Locks uint32 ++ Mtu uint32 ++ Hopcount uint32 ++ Expire uint32 ++ Recvpipe uint32 ++ Sendpipe uint32 ++ Ssthresh uint32 ++ Rtt uint32 ++ Rttvar uint32 ++ Pksent uint32 ++ Weight uint32 ++ Filler [3]uint32 ++} ++ ++const ( ++ SizeofBpfVersion = 0x4 ++ SizeofBpfStat = 0x8 ++ SizeofBpfZbuf = 0xc ++ SizeofBpfProgram = 0x8 ++ SizeofBpfInsn = 0x8 ++ SizeofBpfHdr = 0x20 ++ SizeofBpfZbufHeader = 0x20 ++) ++ ++type BpfVersion struct { ++ Major uint16 ++ Minor uint16 ++} ++ ++type BpfStat struct { ++ Recv uint32 ++ Drop uint32 ++} ++ ++type BpfZbuf struct { ++ Bufa *byte ++ Bufb *byte ++ Buflen uint32 ++} ++ ++type BpfProgram struct { ++ Len uint32 ++ Insns *BpfInsn ++} ++ ++type BpfInsn struct { ++ Code uint16 ++ Jt uint8 ++ Jf uint8 ++ K uint32 ++} ++ ++type BpfHdr struct { ++ Tstamp Timeval ++ Caplen uint32 ++ Datalen uint32 ++ Hdrlen uint16 ++ Pad_cgo_0 [6]byte ++} ++ ++type BpfZbufHeader struct { ++ Kernel_gen uint32 ++ Kernel_len uint32 ++ User_gen uint32 ++ X_bzh_pad [5]uint32 ++} ++ ++type Termios struct { ++ Iflag uint32 ++ Oflag uint32 ++ Cflag uint32 ++ Lflag uint32 ++ Cc [20]uint8 ++ Ispeed uint32 ++ Ospeed uint32 ++} +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +new file mode 100644 +index 0000000..99dfd58 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +@@ -0,0 +1,653 @@ ++// +build 386,linux ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs types_linux.go ++ ++package unix ++ ++const ( ++ sizeofPtr = 0x4 ++ sizeofShort = 0x2 ++ sizeofInt = 0x4 ++ sizeofLong = 0x4 ++ sizeofLongLong = 0x8 ++ PathMax = 0x1000 ++) ++ ++type ( ++ _C_short int16 ++ _C_int int32 ++ _C_long int32 ++ _C_long_long int64 ++) ++ ++type Timespec struct { ++ Sec int32 ++ Nsec int32 ++} ++ ++type Timeval struct { ++ Sec int32 ++ Usec int32 ++} ++ ++type Timex struct { ++ Modes uint32 ++ Offset int32 ++ Freq int32 ++ Maxerror int32 ++ Esterror int32 ++ Status int32 ++ Constant int32 ++ Precision int32 ++ Tolerance int32 ++ Time Timeval ++ Tick int32 ++ Ppsfreq int32 ++ Jitter int32 ++ Shift int32 ++ Stabil int32 ++ Jitcnt int32 ++ Calcnt int32 ++ Errcnt int32 ++ Stbcnt int32 ++ Tai int32 ++ Pad_cgo_0 [44]byte ++} ++ ++type Time_t int32 ++ ++type Tms struct { ++ Utime int32 ++ Stime int32 ++ Cutime int32 ++ Cstime int32 ++} ++ ++type Utimbuf struct { ++ Actime int32 ++ Modtime int32 ++} ++ ++type Rusage struct { ++ Utime Timeval ++ Stime Timeval ++ Maxrss int32 ++ Ixrss int32 ++ Idrss int32 ++ Isrss int32 ++ Minflt int32 ++ Majflt int32 ++ Nswap int32 ++ Inblock int32 ++ Oublock int32 ++ Msgsnd int32 ++ Msgrcv int32 ++ Nsignals int32 ++ Nvcsw int32 ++ Nivcsw int32 ++} ++ ++type Rlimit struct { ++ Cur uint64 ++ Max uint64 ++} ++ ++type _Gid_t uint32 ++ ++type Stat_t struct { ++ Dev uint64 ++ X__pad1 uint16 ++ Pad_cgo_0 [2]byte ++ X__st_ino uint32 ++ Mode uint32 ++ Nlink uint32 ++ Uid uint32 ++ Gid uint32 ++ Rdev uint64 ++ X__pad2 uint16 ++ Pad_cgo_1 [2]byte ++ Size int64 ++ Blksize int32 ++ Blocks int64 ++ Atim Timespec ++ Mtim Timespec ++ Ctim Timespec ++ Ino uint64 ++} ++ ++type Statfs_t struct { ++ Type int32 ++ Bsize int32 ++ Blocks uint64 ++ Bfree uint64 ++ Bavail uint64 ++ Files uint64 ++ Ffree uint64 ++ Fsid Fsid ++ Namelen int32 ++ Frsize int32 ++ Flags int32 ++ Spare [4]int32 ++} ++ ++type Dirent struct { ++ Ino uint64 ++ Off int64 ++ Reclen uint16 ++ Type uint8 ++ Name [256]int8 ++ Pad_cgo_0 [1]byte ++} ++ ++type Fsid struct { ++ X__val [2]int32 ++} ++ ++type Flock_t struct { ++ Type int16 ++ Whence int16 ++ Start int64 ++ Len int64 ++ Pid int32 ++} ++ ++const ( ++ FADV_NORMAL = 0x0 ++ FADV_RANDOM = 0x1 ++ FADV_SEQUENTIAL = 0x2 ++ FADV_WILLNEED = 0x3 ++ FADV_DONTNEED = 0x4 ++ FADV_NOREUSE = 0x5 ++) ++ ++type RawSockaddrInet4 struct { ++ Family uint16 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]uint8 ++} ++ ++type RawSockaddrInet6 struct { ++ Family uint16 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++} ++ ++type RawSockaddrUnix struct { ++ Family uint16 ++ Path [108]int8 ++} ++ ++type RawSockaddrLinklayer struct { ++ Family uint16 ++ Protocol uint16 ++ Ifindex int32 ++ Hatype uint16 ++ Pkttype uint8 ++ Halen uint8 ++ Addr [8]uint8 ++} ++ ++type RawSockaddrNetlink struct { ++ Family uint16 ++ Pad uint16 ++ Pid uint32 ++ Groups uint32 ++} ++ ++type RawSockaddrHCI struct { ++ Family uint16 ++ Dev uint16 ++ Channel uint16 ++} ++ ++type RawSockaddrCAN struct { ++ Family uint16 ++ Pad_cgo_0 [2]byte ++ Ifindex int32 ++ Addr [8]byte ++} ++ ++type RawSockaddrALG struct { ++ Family uint16 ++ Type [14]uint8 ++ Feat uint32 ++ Mask uint32 ++ Name [64]uint8 ++} ++ ++type RawSockaddrVM struct { ++ Family uint16 ++ Reserved1 uint16 ++ Port uint32 ++ Cid uint32 ++ Zero [4]uint8 ++} ++ ++type RawSockaddr struct { ++ Family uint16 ++ Data [14]int8 ++} ++ ++type RawSockaddrAny struct { ++ Addr RawSockaddr ++ Pad [96]int8 ++} ++ ++type _Socklen uint32 ++ ++type Linger struct { ++ Onoff int32 ++ Linger int32 ++} ++ ++type Iovec struct { ++ Base *byte ++ Len uint32 ++} ++ ++type IPMreq struct { ++ Multiaddr [4]byte /* in_addr */ ++ Interface [4]byte /* in_addr */ ++} ++ ++type IPMreqn struct { ++ Multiaddr [4]byte /* in_addr */ ++ Address [4]byte /* in_addr */ ++ Ifindex int32 ++} ++ ++type IPv6Mreq struct { ++ Multiaddr [16]byte /* in6_addr */ ++ Interface uint32 ++} ++ ++type Msghdr struct { ++ Name *byte ++ Namelen uint32 ++ Iov *Iovec ++ Iovlen uint32 ++ Control *byte ++ Controllen uint32 ++ Flags int32 ++} ++ ++type Cmsghdr struct { ++ Len uint32 ++ Level int32 ++ Type int32 ++ X__cmsg_data [0]uint8 ++} ++ ++type Inet4Pktinfo struct { ++ Ifindex int32 ++ Spec_dst [4]byte /* in_addr */ ++ Addr [4]byte /* in_addr */ ++} ++ ++type Inet6Pktinfo struct { ++ Addr [16]byte /* in6_addr */ ++ Ifindex uint32 ++} ++ ++type IPv6MTUInfo struct { ++ Addr RawSockaddrInet6 ++ Mtu uint32 ++} ++ ++type ICMPv6Filter struct { ++ Data [8]uint32 ++} ++ ++type Ucred struct { ++ Pid int32 ++ Uid uint32 ++ Gid uint32 ++} ++ ++type TCPInfo struct { ++ State uint8 ++ Ca_state uint8 ++ Retransmits uint8 ++ Probes uint8 ++ Backoff uint8 ++ Options uint8 ++ Pad_cgo_0 [2]byte ++ Rto uint32 ++ Ato uint32 ++ Snd_mss uint32 ++ Rcv_mss uint32 ++ Unacked uint32 ++ Sacked uint32 ++ Lost uint32 ++ Retrans uint32 ++ Fackets uint32 ++ Last_data_sent uint32 ++ Last_ack_sent uint32 ++ Last_data_recv uint32 ++ Last_ack_recv uint32 ++ Pmtu uint32 ++ Rcv_ssthresh uint32 ++ Rtt uint32 ++ Rttvar uint32 ++ Snd_ssthresh uint32 ++ Snd_cwnd uint32 ++ Advmss uint32 ++ Reordering uint32 ++ Rcv_rtt uint32 ++ Rcv_space uint32 ++ Total_retrans uint32 ++} ++ ++const ( ++ SizeofSockaddrInet4 = 0x10 ++ SizeofSockaddrInet6 = 0x1c ++ SizeofSockaddrAny = 0x70 ++ SizeofSockaddrUnix = 0x6e ++ SizeofSockaddrLinklayer = 0x14 ++ SizeofSockaddrNetlink = 0xc ++ SizeofSockaddrHCI = 0x6 ++ SizeofSockaddrCAN = 0x10 ++ SizeofSockaddrALG = 0x58 ++ SizeofSockaddrVM = 0x10 ++ SizeofLinger = 0x8 ++ SizeofIPMreq = 0x8 ++ SizeofIPMreqn = 0xc ++ SizeofIPv6Mreq = 0x14 ++ SizeofMsghdr = 0x1c ++ SizeofCmsghdr = 0xc ++ SizeofInet4Pktinfo = 0xc ++ SizeofInet6Pktinfo = 0x14 ++ SizeofIPv6MTUInfo = 0x20 ++ SizeofICMPv6Filter = 0x20 ++ SizeofUcred = 0xc ++ SizeofTCPInfo = 0x68 ++) ++ ++const ( ++ IFA_UNSPEC = 0x0 ++ IFA_ADDRESS = 0x1 ++ IFA_LOCAL = 0x2 ++ IFA_LABEL = 0x3 ++ IFA_BROADCAST = 0x4 ++ IFA_ANYCAST = 0x5 ++ IFA_CACHEINFO = 0x6 ++ IFA_MULTICAST = 0x7 ++ IFLA_UNSPEC = 0x0 ++ IFLA_ADDRESS = 0x1 ++ IFLA_BROADCAST = 0x2 ++ IFLA_IFNAME = 0x3 ++ IFLA_MTU = 0x4 ++ IFLA_LINK = 0x5 ++ IFLA_QDISC = 0x6 ++ IFLA_STATS = 0x7 ++ IFLA_COST = 0x8 ++ IFLA_PRIORITY = 0x9 ++ IFLA_MASTER = 0xa ++ IFLA_WIRELESS = 0xb ++ IFLA_PROTINFO = 0xc ++ IFLA_TXQLEN = 0xd ++ IFLA_MAP = 0xe ++ IFLA_WEIGHT = 0xf ++ IFLA_OPERSTATE = 0x10 ++ IFLA_LINKMODE = 0x11 ++ IFLA_LINKINFO = 0x12 ++ IFLA_NET_NS_PID = 0x13 ++ IFLA_IFALIAS = 0x14 ++ IFLA_MAX = 0x1d ++ RT_SCOPE_UNIVERSE = 0x0 ++ RT_SCOPE_SITE = 0xc8 ++ RT_SCOPE_LINK = 0xfd ++ RT_SCOPE_HOST = 0xfe ++ RT_SCOPE_NOWHERE = 0xff ++ RT_TABLE_UNSPEC = 0x0 ++ RT_TABLE_COMPAT = 0xfc ++ RT_TABLE_DEFAULT = 0xfd ++ RT_TABLE_MAIN = 0xfe ++ RT_TABLE_LOCAL = 0xff ++ RT_TABLE_MAX = 0xffffffff ++ RTA_UNSPEC = 0x0 ++ RTA_DST = 0x1 ++ RTA_SRC = 0x2 ++ RTA_IIF = 0x3 ++ RTA_OIF = 0x4 ++ RTA_GATEWAY = 0x5 ++ RTA_PRIORITY = 0x6 ++ RTA_PREFSRC = 0x7 ++ RTA_METRICS = 0x8 ++ RTA_MULTIPATH = 0x9 ++ RTA_FLOW = 0xb ++ RTA_CACHEINFO = 0xc ++ RTA_TABLE = 0xf ++ RTN_UNSPEC = 0x0 ++ RTN_UNICAST = 0x1 ++ RTN_LOCAL = 0x2 ++ RTN_BROADCAST = 0x3 ++ RTN_ANYCAST = 0x4 ++ RTN_MULTICAST = 0x5 ++ RTN_BLACKHOLE = 0x6 ++ RTN_UNREACHABLE = 0x7 ++ RTN_PROHIBIT = 0x8 ++ RTN_THROW = 0x9 ++ RTN_NAT = 0xa ++ RTN_XRESOLVE = 0xb ++ RTNLGRP_NONE = 0x0 ++ RTNLGRP_LINK = 0x1 ++ RTNLGRP_NOTIFY = 0x2 ++ RTNLGRP_NEIGH = 0x3 ++ RTNLGRP_TC = 0x4 ++ RTNLGRP_IPV4_IFADDR = 0x5 ++ RTNLGRP_IPV4_MROUTE = 0x6 ++ RTNLGRP_IPV4_ROUTE = 0x7 ++ RTNLGRP_IPV4_RULE = 0x8 ++ RTNLGRP_IPV6_IFADDR = 0x9 ++ RTNLGRP_IPV6_MROUTE = 0xa ++ RTNLGRP_IPV6_ROUTE = 0xb ++ RTNLGRP_IPV6_IFINFO = 0xc ++ RTNLGRP_IPV6_PREFIX = 0x12 ++ RTNLGRP_IPV6_RULE = 0x13 ++ RTNLGRP_ND_USEROPT = 0x14 ++ SizeofNlMsghdr = 0x10 ++ SizeofNlMsgerr = 0x14 ++ SizeofRtGenmsg = 0x1 ++ SizeofNlAttr = 0x4 ++ SizeofRtAttr = 0x4 ++ SizeofIfInfomsg = 0x10 ++ SizeofIfAddrmsg = 0x8 ++ SizeofRtMsg = 0xc ++ SizeofRtNexthop = 0x8 ++) ++ ++type NlMsghdr struct { ++ Len uint32 ++ Type uint16 ++ Flags uint16 ++ Seq uint32 ++ Pid uint32 ++} ++ ++type NlMsgerr struct { ++ Error int32 ++ Msg NlMsghdr ++} ++ ++type RtGenmsg struct { ++ Family uint8 ++} ++ ++type NlAttr struct { ++ Len uint16 ++ Type uint16 ++} ++ ++type RtAttr struct { ++ Len uint16 ++ Type uint16 ++} ++ ++type IfInfomsg struct { ++ Family uint8 ++ X__ifi_pad uint8 ++ Type uint16 ++ Index int32 ++ Flags uint32 ++ Change uint32 ++} ++ ++type IfAddrmsg struct { ++ Family uint8 ++ Prefixlen uint8 ++ Flags uint8 ++ Scope uint8 ++ Index uint32 ++} ++ ++type RtMsg struct { ++ Family uint8 ++ Dst_len uint8 ++ Src_len uint8 ++ Tos uint8 ++ Table uint8 ++ Protocol uint8 ++ Scope uint8 ++ Type uint8 ++ Flags uint32 ++} ++ ++type RtNexthop struct { ++ Len uint16 ++ Flags uint8 ++ Hops uint8 ++ Ifindex int32 ++} ++ ++const ( ++ SizeofSockFilter = 0x8 ++ SizeofSockFprog = 0x8 ++) ++ ++type SockFilter struct { ++ Code uint16 ++ Jt uint8 ++ Jf uint8 ++ K uint32 ++} ++ ++type SockFprog struct { ++ Len uint16 ++ Pad_cgo_0 [2]byte ++ Filter *SockFilter ++} ++ ++type InotifyEvent struct { ++ Wd int32 ++ Mask uint32 ++ Cookie uint32 ++ Len uint32 ++ Name [0]int8 ++} ++ ++const SizeofInotifyEvent = 0x10 ++ ++type PtraceRegs struct { ++ Ebx int32 ++ Ecx int32 ++ Edx int32 ++ Esi int32 ++ Edi int32 ++ Ebp int32 ++ Eax int32 ++ Xds int32 ++ Xes int32 ++ Xfs int32 ++ Xgs int32 ++ Orig_eax int32 ++ Eip int32 ++ Xcs int32 ++ Eflags int32 ++ Esp int32 ++ Xss int32 ++} ++ ++type FdSet struct { ++ Bits [32]int32 ++} ++ ++type Sysinfo_t struct { ++ Uptime int32 ++ Loads [3]uint32 ++ Totalram uint32 ++ Freeram uint32 ++ Sharedram uint32 ++ Bufferram uint32 ++ Totalswap uint32 ++ Freeswap uint32 ++ Procs uint16 ++ Pad uint16 ++ Totalhigh uint32 ++ Freehigh uint32 ++ Unit uint32 ++ X_f [8]int8 ++} ++ ++type Utsname struct { ++ Sysname [65]int8 ++ Nodename [65]int8 ++ Release [65]int8 ++ Version [65]int8 ++ Machine [65]int8 ++ Domainname [65]int8 ++} ++ ++type Ustat_t struct { ++ Tfree int32 ++ Tinode uint32 ++ Fname [6]int8 ++ Fpack [6]int8 ++} ++ ++type EpollEvent struct { ++ Events uint32 ++ Fd int32 ++ Pad int32 ++} ++ ++const ( ++ AT_FDCWD = -0x64 ++ AT_REMOVEDIR = 0x200 ++ AT_SYMLINK_FOLLOW = 0x400 ++ AT_SYMLINK_NOFOLLOW = 0x100 ++) ++ ++type PollFd struct { ++ Fd int32 ++ Events int16 ++ Revents int16 ++} ++ ++const ( ++ POLLIN = 0x1 ++ POLLPRI = 0x2 ++ POLLOUT = 0x4 ++ POLLRDHUP = 0x2000 ++ POLLERR = 0x8 ++ POLLHUP = 0x10 ++ POLLNVAL = 0x20 ++) ++ ++type Sigset_t struct { ++ X__val [16]uint64 ++} ++ ++type Termios struct { ++ Iflag uint32 ++ Oflag uint32 ++ Cflag uint32 ++ Lflag uint32 ++ Line uint8 ++ Cc [19]uint8 ++ Ispeed uint32 ++ Ospeed uint32 ++} +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +new file mode 100644 +index 0000000..c9e1e64 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +@@ -0,0 +1,671 @@ ++// +build amd64,linux ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs types_linux.go ++ ++package unix ++ ++const ( ++ sizeofPtr = 0x8 ++ sizeofShort = 0x2 ++ sizeofInt = 0x4 ++ sizeofLong = 0x8 ++ sizeofLongLong = 0x8 ++ PathMax = 0x1000 ++) ++ ++type ( ++ _C_short int16 ++ _C_int int32 ++ _C_long int64 ++ _C_long_long int64 ++) ++ ++type Timespec struct { ++ Sec int64 ++ Nsec int64 ++} ++ ++type Timeval struct { ++ Sec int64 ++ Usec int64 ++} ++ ++type Timex struct { ++ Modes uint32 ++ Pad_cgo_0 [4]byte ++ Offset int64 ++ Freq int64 ++ Maxerror int64 ++ Esterror int64 ++ Status int32 ++ Pad_cgo_1 [4]byte ++ Constant int64 ++ Precision int64 ++ Tolerance int64 ++ Time Timeval ++ Tick int64 ++ Ppsfreq int64 ++ Jitter int64 ++ Shift int32 ++ Pad_cgo_2 [4]byte ++ Stabil int64 ++ Jitcnt int64 ++ Calcnt int64 ++ Errcnt int64 ++ Stbcnt int64 ++ Tai int32 ++ Pad_cgo_3 [44]byte ++} ++ ++type Time_t int64 ++ ++type Tms struct { ++ Utime int64 ++ Stime int64 ++ Cutime int64 ++ Cstime int64 ++} ++ ++type Utimbuf struct { ++ Actime int64 ++ Modtime int64 ++} ++ ++type Rusage struct { ++ Utime Timeval ++ Stime Timeval ++ Maxrss int64 ++ Ixrss int64 ++ Idrss int64 ++ Isrss int64 ++ Minflt int64 ++ Majflt int64 ++ Nswap int64 ++ Inblock int64 ++ Oublock int64 ++ Msgsnd int64 ++ Msgrcv int64 ++ Nsignals int64 ++ Nvcsw int64 ++ Nivcsw int64 ++} ++ ++type Rlimit struct { ++ Cur uint64 ++ Max uint64 ++} ++ ++type _Gid_t uint32 ++ ++type Stat_t struct { ++ Dev uint64 ++ Ino uint64 ++ Nlink uint64 ++ Mode uint32 ++ Uid uint32 ++ Gid uint32 ++ X__pad0 int32 ++ Rdev uint64 ++ Size int64 ++ Blksize int64 ++ Blocks int64 ++ Atim Timespec ++ Mtim Timespec ++ Ctim Timespec ++ X__unused [3]int64 ++} ++ ++type Statfs_t struct { ++ Type int64 ++ Bsize int64 ++ Blocks uint64 ++ Bfree uint64 ++ Bavail uint64 ++ Files uint64 ++ Ffree uint64 ++ Fsid Fsid ++ Namelen int64 ++ Frsize int64 ++ Flags int64 ++ Spare [4]int64 ++} ++ ++type Dirent struct { ++ Ino uint64 ++ Off int64 ++ Reclen uint16 ++ Type uint8 ++ Name [256]int8 ++ Pad_cgo_0 [5]byte ++} ++ ++type Fsid struct { ++ X__val [2]int32 ++} ++ ++type Flock_t struct { ++ Type int16 ++ Whence int16 ++ Pad_cgo_0 [4]byte ++ Start int64 ++ Len int64 ++ Pid int32 ++ Pad_cgo_1 [4]byte ++} ++ ++const ( ++ FADV_NORMAL = 0x0 ++ FADV_RANDOM = 0x1 ++ FADV_SEQUENTIAL = 0x2 ++ FADV_WILLNEED = 0x3 ++ FADV_DONTNEED = 0x4 ++ FADV_NOREUSE = 0x5 ++) ++ ++type RawSockaddrInet4 struct { ++ Family uint16 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]uint8 ++} ++ ++type RawSockaddrInet6 struct { ++ Family uint16 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++} ++ ++type RawSockaddrUnix struct { ++ Family uint16 ++ Path [108]int8 ++} ++ ++type RawSockaddrLinklayer struct { ++ Family uint16 ++ Protocol uint16 ++ Ifindex int32 ++ Hatype uint16 ++ Pkttype uint8 ++ Halen uint8 ++ Addr [8]uint8 ++} ++ ++type RawSockaddrNetlink struct { ++ Family uint16 ++ Pad uint16 ++ Pid uint32 ++ Groups uint32 ++} ++ ++type RawSockaddrHCI struct { ++ Family uint16 ++ Dev uint16 ++ Channel uint16 ++} ++ ++type RawSockaddrCAN struct { ++ Family uint16 ++ Pad_cgo_0 [2]byte ++ Ifindex int32 ++ Addr [8]byte ++} ++ ++type RawSockaddrALG struct { ++ Family uint16 ++ Type [14]uint8 ++ Feat uint32 ++ Mask uint32 ++ Name [64]uint8 ++} ++ ++type RawSockaddrVM struct { ++ Family uint16 ++ Reserved1 uint16 ++ Port uint32 ++ Cid uint32 ++ Zero [4]uint8 ++} ++ ++type RawSockaddr struct { ++ Family uint16 ++ Data [14]int8 ++} ++ ++type RawSockaddrAny struct { ++ Addr RawSockaddr ++ Pad [96]int8 ++} ++ ++type _Socklen uint32 ++ ++type Linger struct { ++ Onoff int32 ++ Linger int32 ++} ++ ++type Iovec struct { ++ Base *byte ++ Len uint64 ++} ++ ++type IPMreq struct { ++ Multiaddr [4]byte /* in_addr */ ++ Interface [4]byte /* in_addr */ ++} ++ ++type IPMreqn struct { ++ Multiaddr [4]byte /* in_addr */ ++ Address [4]byte /* in_addr */ ++ Ifindex int32 ++} ++ ++type IPv6Mreq struct { ++ Multiaddr [16]byte /* in6_addr */ ++ Interface uint32 ++} ++ ++type Msghdr struct { ++ Name *byte ++ Namelen uint32 ++ Pad_cgo_0 [4]byte ++ Iov *Iovec ++ Iovlen uint64 ++ Control *byte ++ Controllen uint64 ++ Flags int32 ++ Pad_cgo_1 [4]byte ++} ++ ++type Cmsghdr struct { ++ Len uint64 ++ Level int32 ++ Type int32 ++ X__cmsg_data [0]uint8 ++} ++ ++type Inet4Pktinfo struct { ++ Ifindex int32 ++ Spec_dst [4]byte /* in_addr */ ++ Addr [4]byte /* in_addr */ ++} ++ ++type Inet6Pktinfo struct { ++ Addr [16]byte /* in6_addr */ ++ Ifindex uint32 ++} ++ ++type IPv6MTUInfo struct { ++ Addr RawSockaddrInet6 ++ Mtu uint32 ++} ++ ++type ICMPv6Filter struct { ++ Data [8]uint32 ++} ++ ++type Ucred struct { ++ Pid int32 ++ Uid uint32 ++ Gid uint32 ++} ++ ++type TCPInfo struct { ++ State uint8 ++ Ca_state uint8 ++ Retransmits uint8 ++ Probes uint8 ++ Backoff uint8 ++ Options uint8 ++ Pad_cgo_0 [2]byte ++ Rto uint32 ++ Ato uint32 ++ Snd_mss uint32 ++ Rcv_mss uint32 ++ Unacked uint32 ++ Sacked uint32 ++ Lost uint32 ++ Retrans uint32 ++ Fackets uint32 ++ Last_data_sent uint32 ++ Last_ack_sent uint32 ++ Last_data_recv uint32 ++ Last_ack_recv uint32 ++ Pmtu uint32 ++ Rcv_ssthresh uint32 ++ Rtt uint32 ++ Rttvar uint32 ++ Snd_ssthresh uint32 ++ Snd_cwnd uint32 ++ Advmss uint32 ++ Reordering uint32 ++ Rcv_rtt uint32 ++ Rcv_space uint32 ++ Total_retrans uint32 ++} ++ ++const ( ++ SizeofSockaddrInet4 = 0x10 ++ SizeofSockaddrInet6 = 0x1c ++ SizeofSockaddrAny = 0x70 ++ SizeofSockaddrUnix = 0x6e ++ SizeofSockaddrLinklayer = 0x14 ++ SizeofSockaddrNetlink = 0xc ++ SizeofSockaddrHCI = 0x6 ++ SizeofSockaddrCAN = 0x10 ++ SizeofSockaddrALG = 0x58 ++ SizeofSockaddrVM = 0x10 ++ SizeofLinger = 0x8 ++ SizeofIPMreq = 0x8 ++ SizeofIPMreqn = 0xc ++ SizeofIPv6Mreq = 0x14 ++ SizeofMsghdr = 0x38 ++ SizeofCmsghdr = 0x10 ++ SizeofInet4Pktinfo = 0xc ++ SizeofInet6Pktinfo = 0x14 ++ SizeofIPv6MTUInfo = 0x20 ++ SizeofICMPv6Filter = 0x20 ++ SizeofUcred = 0xc ++ SizeofTCPInfo = 0x68 ++) ++ ++const ( ++ IFA_UNSPEC = 0x0 ++ IFA_ADDRESS = 0x1 ++ IFA_LOCAL = 0x2 ++ IFA_LABEL = 0x3 ++ IFA_BROADCAST = 0x4 ++ IFA_ANYCAST = 0x5 ++ IFA_CACHEINFO = 0x6 ++ IFA_MULTICAST = 0x7 ++ IFLA_UNSPEC = 0x0 ++ IFLA_ADDRESS = 0x1 ++ IFLA_BROADCAST = 0x2 ++ IFLA_IFNAME = 0x3 ++ IFLA_MTU = 0x4 ++ IFLA_LINK = 0x5 ++ IFLA_QDISC = 0x6 ++ IFLA_STATS = 0x7 ++ IFLA_COST = 0x8 ++ IFLA_PRIORITY = 0x9 ++ IFLA_MASTER = 0xa ++ IFLA_WIRELESS = 0xb ++ IFLA_PROTINFO = 0xc ++ IFLA_TXQLEN = 0xd ++ IFLA_MAP = 0xe ++ IFLA_WEIGHT = 0xf ++ IFLA_OPERSTATE = 0x10 ++ IFLA_LINKMODE = 0x11 ++ IFLA_LINKINFO = 0x12 ++ IFLA_NET_NS_PID = 0x13 ++ IFLA_IFALIAS = 0x14 ++ IFLA_MAX = 0x1d ++ RT_SCOPE_UNIVERSE = 0x0 ++ RT_SCOPE_SITE = 0xc8 ++ RT_SCOPE_LINK = 0xfd ++ RT_SCOPE_HOST = 0xfe ++ RT_SCOPE_NOWHERE = 0xff ++ RT_TABLE_UNSPEC = 0x0 ++ RT_TABLE_COMPAT = 0xfc ++ RT_TABLE_DEFAULT = 0xfd ++ RT_TABLE_MAIN = 0xfe ++ RT_TABLE_LOCAL = 0xff ++ RT_TABLE_MAX = 0xffffffff ++ RTA_UNSPEC = 0x0 ++ RTA_DST = 0x1 ++ RTA_SRC = 0x2 ++ RTA_IIF = 0x3 ++ RTA_OIF = 0x4 ++ RTA_GATEWAY = 0x5 ++ RTA_PRIORITY = 0x6 ++ RTA_PREFSRC = 0x7 ++ RTA_METRICS = 0x8 ++ RTA_MULTIPATH = 0x9 ++ RTA_FLOW = 0xb ++ RTA_CACHEINFO = 0xc ++ RTA_TABLE = 0xf ++ RTN_UNSPEC = 0x0 ++ RTN_UNICAST = 0x1 ++ RTN_LOCAL = 0x2 ++ RTN_BROADCAST = 0x3 ++ RTN_ANYCAST = 0x4 ++ RTN_MULTICAST = 0x5 ++ RTN_BLACKHOLE = 0x6 ++ RTN_UNREACHABLE = 0x7 ++ RTN_PROHIBIT = 0x8 ++ RTN_THROW = 0x9 ++ RTN_NAT = 0xa ++ RTN_XRESOLVE = 0xb ++ RTNLGRP_NONE = 0x0 ++ RTNLGRP_LINK = 0x1 ++ RTNLGRP_NOTIFY = 0x2 ++ RTNLGRP_NEIGH = 0x3 ++ RTNLGRP_TC = 0x4 ++ RTNLGRP_IPV4_IFADDR = 0x5 ++ RTNLGRP_IPV4_MROUTE = 0x6 ++ RTNLGRP_IPV4_ROUTE = 0x7 ++ RTNLGRP_IPV4_RULE = 0x8 ++ RTNLGRP_IPV6_IFADDR = 0x9 ++ RTNLGRP_IPV6_MROUTE = 0xa ++ RTNLGRP_IPV6_ROUTE = 0xb ++ RTNLGRP_IPV6_IFINFO = 0xc ++ RTNLGRP_IPV6_PREFIX = 0x12 ++ RTNLGRP_IPV6_RULE = 0x13 ++ RTNLGRP_ND_USEROPT = 0x14 ++ SizeofNlMsghdr = 0x10 ++ SizeofNlMsgerr = 0x14 ++ SizeofRtGenmsg = 0x1 ++ SizeofNlAttr = 0x4 ++ SizeofRtAttr = 0x4 ++ SizeofIfInfomsg = 0x10 ++ SizeofIfAddrmsg = 0x8 ++ SizeofRtMsg = 0xc ++ SizeofRtNexthop = 0x8 ++) ++ ++type NlMsghdr struct { ++ Len uint32 ++ Type uint16 ++ Flags uint16 ++ Seq uint32 ++ Pid uint32 ++} ++ ++type NlMsgerr struct { ++ Error int32 ++ Msg NlMsghdr ++} ++ ++type RtGenmsg struct { ++ Family uint8 ++} ++ ++type NlAttr struct { ++ Len uint16 ++ Type uint16 ++} ++ ++type RtAttr struct { ++ Len uint16 ++ Type uint16 ++} ++ ++type IfInfomsg struct { ++ Family uint8 ++ X__ifi_pad uint8 ++ Type uint16 ++ Index int32 ++ Flags uint32 ++ Change uint32 ++} ++ ++type IfAddrmsg struct { ++ Family uint8 ++ Prefixlen uint8 ++ Flags uint8 ++ Scope uint8 ++ Index uint32 ++} ++ ++type RtMsg struct { ++ Family uint8 ++ Dst_len uint8 ++ Src_len uint8 ++ Tos uint8 ++ Table uint8 ++ Protocol uint8 ++ Scope uint8 ++ Type uint8 ++ Flags uint32 ++} ++ ++type RtNexthop struct { ++ Len uint16 ++ Flags uint8 ++ Hops uint8 ++ Ifindex int32 ++} ++ ++const ( ++ SizeofSockFilter = 0x8 ++ SizeofSockFprog = 0x10 ++) ++ ++type SockFilter struct { ++ Code uint16 ++ Jt uint8 ++ Jf uint8 ++ K uint32 ++} ++ ++type SockFprog struct { ++ Len uint16 ++ Pad_cgo_0 [6]byte ++ Filter *SockFilter ++} ++ ++type InotifyEvent struct { ++ Wd int32 ++ Mask uint32 ++ Cookie uint32 ++ Len uint32 ++ Name [0]int8 ++} ++ ++const SizeofInotifyEvent = 0x10 ++ ++type PtraceRegs struct { ++ R15 uint64 ++ R14 uint64 ++ R13 uint64 ++ R12 uint64 ++ Rbp uint64 ++ Rbx uint64 ++ R11 uint64 ++ R10 uint64 ++ R9 uint64 ++ R8 uint64 ++ Rax uint64 ++ Rcx uint64 ++ Rdx uint64 ++ Rsi uint64 ++ Rdi uint64 ++ Orig_rax uint64 ++ Rip uint64 ++ Cs uint64 ++ Eflags uint64 ++ Rsp uint64 ++ Ss uint64 ++ Fs_base uint64 ++ Gs_base uint64 ++ Ds uint64 ++ Es uint64 ++ Fs uint64 ++ Gs uint64 ++} ++ ++type FdSet struct { ++ Bits [16]int64 ++} ++ ++type Sysinfo_t struct { ++ Uptime int64 ++ Loads [3]uint64 ++ Totalram uint64 ++ Freeram uint64 ++ Sharedram uint64 ++ Bufferram uint64 ++ Totalswap uint64 ++ Freeswap uint64 ++ Procs uint16 ++ Pad uint16 ++ Pad_cgo_0 [4]byte ++ Totalhigh uint64 ++ Freehigh uint64 ++ Unit uint32 ++ X_f [0]int8 ++ Pad_cgo_1 [4]byte ++} ++ ++type Utsname struct { ++ Sysname [65]int8 ++ Nodename [65]int8 ++ Release [65]int8 ++ Version [65]int8 ++ Machine [65]int8 ++ Domainname [65]int8 ++} ++ ++type Ustat_t struct { ++ Tfree int32 ++ Pad_cgo_0 [4]byte ++ Tinode uint64 ++ Fname [6]int8 ++ Fpack [6]int8 ++ Pad_cgo_1 [4]byte ++} ++ ++type EpollEvent struct { ++ Events uint32 ++ Fd int32 ++ Pad int32 ++} ++ ++const ( ++ AT_FDCWD = -0x64 ++ AT_REMOVEDIR = 0x200 ++ AT_SYMLINK_FOLLOW = 0x400 ++ AT_SYMLINK_NOFOLLOW = 0x100 ++) ++ ++type PollFd struct { ++ Fd int32 ++ Events int16 ++ Revents int16 ++} ++ ++const ( ++ POLLIN = 0x1 ++ POLLPRI = 0x2 ++ POLLOUT = 0x4 ++ POLLRDHUP = 0x2000 ++ POLLERR = 0x8 ++ POLLHUP = 0x10 ++ POLLNVAL = 0x20 ++) ++ ++type Sigset_t struct { ++ X__val [16]uint64 ++} ++ ++type Termios struct { ++ Iflag uint32 ++ Oflag uint32 ++ Cflag uint32 ++ Lflag uint32 ++ Line uint8 ++ Cc [19]uint8 ++ Ispeed uint32 ++ Ospeed uint32 ++} +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +new file mode 100644 +index 0000000..4bfba2a +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +@@ -0,0 +1,642 @@ ++// +build arm,linux ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs types_linux.go | go run mkpost.go ++ ++package unix ++ ++const ( ++ sizeofPtr = 0x4 ++ sizeofShort = 0x2 ++ sizeofInt = 0x4 ++ sizeofLong = 0x4 ++ sizeofLongLong = 0x8 ++ PathMax = 0x1000 ++) ++ ++type ( ++ _C_short int16 ++ _C_int int32 ++ _C_long int32 ++ _C_long_long int64 ++) ++ ++type Timespec struct { ++ Sec int32 ++ Nsec int32 ++} ++ ++type Timeval struct { ++ Sec int32 ++ Usec int32 ++} ++ ++type Timex struct { ++ Modes uint32 ++ Offset int32 ++ Freq int32 ++ Maxerror int32 ++ Esterror int32 ++ Status int32 ++ Constant int32 ++ Precision int32 ++ Tolerance int32 ++ Time Timeval ++ Tick int32 ++ Ppsfreq int32 ++ Jitter int32 ++ Shift int32 ++ Stabil int32 ++ Jitcnt int32 ++ Calcnt int32 ++ Errcnt int32 ++ Stbcnt int32 ++ Tai int32 ++ Pad_cgo_0 [44]byte ++} ++ ++type Time_t int32 ++ ++type Tms struct { ++ Utime int32 ++ Stime int32 ++ Cutime int32 ++ Cstime int32 ++} ++ ++type Utimbuf struct { ++ Actime int32 ++ Modtime int32 ++} ++ ++type Rusage struct { ++ Utime Timeval ++ Stime Timeval ++ Maxrss int32 ++ Ixrss int32 ++ Idrss int32 ++ Isrss int32 ++ Minflt int32 ++ Majflt int32 ++ Nswap int32 ++ Inblock int32 ++ Oublock int32 ++ Msgsnd int32 ++ Msgrcv int32 ++ Nsignals int32 ++ Nvcsw int32 ++ Nivcsw int32 ++} ++ ++type Rlimit struct { ++ Cur uint64 ++ Max uint64 ++} ++ ++type _Gid_t uint32 ++ ++type Stat_t struct { ++ Dev uint64 ++ X__pad1 uint16 ++ Pad_cgo_0 [2]byte ++ X__st_ino uint32 ++ Mode uint32 ++ Nlink uint32 ++ Uid uint32 ++ Gid uint32 ++ Rdev uint64 ++ X__pad2 uint16 ++ Pad_cgo_1 [6]byte ++ Size int64 ++ Blksize int32 ++ Pad_cgo_2 [4]byte ++ Blocks int64 ++ Atim Timespec ++ Mtim Timespec ++ Ctim Timespec ++ Ino uint64 ++} ++ ++type Statfs_t struct { ++ Type int32 ++ Bsize int32 ++ Blocks uint64 ++ Bfree uint64 ++ Bavail uint64 ++ Files uint64 ++ Ffree uint64 ++ Fsid Fsid ++ Namelen int32 ++ Frsize int32 ++ Flags int32 ++ Spare [4]int32 ++ Pad_cgo_0 [4]byte ++} ++ ++type Dirent struct { ++ Ino uint64 ++ Off int64 ++ Reclen uint16 ++ Type uint8 ++ Name [256]uint8 ++ Pad_cgo_0 [5]byte ++} ++ ++type Fsid struct { ++ X__val [2]int32 ++} ++ ++type Flock_t struct { ++ Type int16 ++ Whence int16 ++ Pad_cgo_0 [4]byte ++ Start int64 ++ Len int64 ++ Pid int32 ++ Pad_cgo_1 [4]byte ++} ++ ++const ( ++ FADV_NORMAL = 0x0 ++ FADV_RANDOM = 0x1 ++ FADV_SEQUENTIAL = 0x2 ++ FADV_WILLNEED = 0x3 ++ FADV_DONTNEED = 0x4 ++ FADV_NOREUSE = 0x5 ++) ++ ++type RawSockaddrInet4 struct { ++ Family uint16 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]uint8 ++} ++ ++type RawSockaddrInet6 struct { ++ Family uint16 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++} ++ ++type RawSockaddrUnix struct { ++ Family uint16 ++ Path [108]int8 ++} ++ ++type RawSockaddrLinklayer struct { ++ Family uint16 ++ Protocol uint16 ++ Ifindex int32 ++ Hatype uint16 ++ Pkttype uint8 ++ Halen uint8 ++ Addr [8]uint8 ++} ++ ++type RawSockaddrNetlink struct { ++ Family uint16 ++ Pad uint16 ++ Pid uint32 ++ Groups uint32 ++} ++ ++type RawSockaddrHCI struct { ++ Family uint16 ++ Dev uint16 ++ Channel uint16 ++} ++ ++type RawSockaddrCAN struct { ++ Family uint16 ++ Pad_cgo_0 [2]byte ++ Ifindex int32 ++ Addr [8]byte ++} ++ ++type RawSockaddrALG struct { ++ Family uint16 ++ Type [14]uint8 ++ Feat uint32 ++ Mask uint32 ++ Name [64]uint8 ++} ++ ++type RawSockaddrVM struct { ++ Family uint16 ++ Reserved1 uint16 ++ Port uint32 ++ Cid uint32 ++ Zero [4]uint8 ++} ++ ++type RawSockaddr struct { ++ Family uint16 ++ Data [14]uint8 ++} ++ ++type RawSockaddrAny struct { ++ Addr RawSockaddr ++ Pad [96]uint8 ++} ++ ++type _Socklen uint32 ++ ++type Linger struct { ++ Onoff int32 ++ Linger int32 ++} ++ ++type Iovec struct { ++ Base *byte ++ Len uint32 ++} ++ ++type IPMreq struct { ++ Multiaddr [4]byte /* in_addr */ ++ Interface [4]byte /* in_addr */ ++} ++ ++type IPMreqn struct { ++ Multiaddr [4]byte /* in_addr */ ++ Address [4]byte /* in_addr */ ++ Ifindex int32 ++} ++ ++type IPv6Mreq struct { ++ Multiaddr [16]byte /* in6_addr */ ++ Interface uint32 ++} ++ ++type Msghdr struct { ++ Name *byte ++ Namelen uint32 ++ Iov *Iovec ++ Iovlen uint32 ++ Control *byte ++ Controllen uint32 ++ Flags int32 ++} ++ ++type Cmsghdr struct { ++ Len uint32 ++ Level int32 ++ Type int32 ++ X__cmsg_data [0]uint8 ++} ++ ++type Inet4Pktinfo struct { ++ Ifindex int32 ++ Spec_dst [4]byte /* in_addr */ ++ Addr [4]byte /* in_addr */ ++} ++ ++type Inet6Pktinfo struct { ++ Addr [16]byte /* in6_addr */ ++ Ifindex uint32 ++} ++ ++type IPv6MTUInfo struct { ++ Addr RawSockaddrInet6 ++ Mtu uint32 ++} ++ ++type ICMPv6Filter struct { ++ Data [8]uint32 ++} ++ ++type Ucred struct { ++ Pid int32 ++ Uid uint32 ++ Gid uint32 ++} ++ ++type TCPInfo struct { ++ State uint8 ++ Ca_state uint8 ++ Retransmits uint8 ++ Probes uint8 ++ Backoff uint8 ++ Options uint8 ++ Pad_cgo_0 [2]byte ++ Rto uint32 ++ Ato uint32 ++ Snd_mss uint32 ++ Rcv_mss uint32 ++ Unacked uint32 ++ Sacked uint32 ++ Lost uint32 ++ Retrans uint32 ++ Fackets uint32 ++ Last_data_sent uint32 ++ Last_ack_sent uint32 ++ Last_data_recv uint32 ++ Last_ack_recv uint32 ++ Pmtu uint32 ++ Rcv_ssthresh uint32 ++ Rtt uint32 ++ Rttvar uint32 ++ Snd_ssthresh uint32 ++ Snd_cwnd uint32 ++ Advmss uint32 ++ Reordering uint32 ++ Rcv_rtt uint32 ++ Rcv_space uint32 ++ Total_retrans uint32 ++} ++ ++const ( ++ SizeofSockaddrInet4 = 0x10 ++ SizeofSockaddrInet6 = 0x1c ++ SizeofSockaddrAny = 0x70 ++ SizeofSockaddrUnix = 0x6e ++ SizeofSockaddrLinklayer = 0x14 ++ SizeofSockaddrNetlink = 0xc ++ SizeofSockaddrHCI = 0x6 ++ SizeofSockaddrCAN = 0x10 ++ SizeofSockaddrALG = 0x58 ++ SizeofSockaddrVM = 0x10 ++ SizeofLinger = 0x8 ++ SizeofIPMreq = 0x8 ++ SizeofIPMreqn = 0xc ++ SizeofIPv6Mreq = 0x14 ++ SizeofMsghdr = 0x1c ++ SizeofCmsghdr = 0xc ++ SizeofInet4Pktinfo = 0xc ++ SizeofInet6Pktinfo = 0x14 ++ SizeofIPv6MTUInfo = 0x20 ++ SizeofICMPv6Filter = 0x20 ++ SizeofUcred = 0xc ++ SizeofTCPInfo = 0x68 ++) ++ ++const ( ++ IFA_UNSPEC = 0x0 ++ IFA_ADDRESS = 0x1 ++ IFA_LOCAL = 0x2 ++ IFA_LABEL = 0x3 ++ IFA_BROADCAST = 0x4 ++ IFA_ANYCAST = 0x5 ++ IFA_CACHEINFO = 0x6 ++ IFA_MULTICAST = 0x7 ++ IFLA_UNSPEC = 0x0 ++ IFLA_ADDRESS = 0x1 ++ IFLA_BROADCAST = 0x2 ++ IFLA_IFNAME = 0x3 ++ IFLA_MTU = 0x4 ++ IFLA_LINK = 0x5 ++ IFLA_QDISC = 0x6 ++ IFLA_STATS = 0x7 ++ IFLA_COST = 0x8 ++ IFLA_PRIORITY = 0x9 ++ IFLA_MASTER = 0xa ++ IFLA_WIRELESS = 0xb ++ IFLA_PROTINFO = 0xc ++ IFLA_TXQLEN = 0xd ++ IFLA_MAP = 0xe ++ IFLA_WEIGHT = 0xf ++ IFLA_OPERSTATE = 0x10 ++ IFLA_LINKMODE = 0x11 ++ IFLA_LINKINFO = 0x12 ++ IFLA_NET_NS_PID = 0x13 ++ IFLA_IFALIAS = 0x14 ++ IFLA_MAX = 0x1d ++ RT_SCOPE_UNIVERSE = 0x0 ++ RT_SCOPE_SITE = 0xc8 ++ RT_SCOPE_LINK = 0xfd ++ RT_SCOPE_HOST = 0xfe ++ RT_SCOPE_NOWHERE = 0xff ++ RT_TABLE_UNSPEC = 0x0 ++ RT_TABLE_COMPAT = 0xfc ++ RT_TABLE_DEFAULT = 0xfd ++ RT_TABLE_MAIN = 0xfe ++ RT_TABLE_LOCAL = 0xff ++ RT_TABLE_MAX = 0xffffffff ++ RTA_UNSPEC = 0x0 ++ RTA_DST = 0x1 ++ RTA_SRC = 0x2 ++ RTA_IIF = 0x3 ++ RTA_OIF = 0x4 ++ RTA_GATEWAY = 0x5 ++ RTA_PRIORITY = 0x6 ++ RTA_PREFSRC = 0x7 ++ RTA_METRICS = 0x8 ++ RTA_MULTIPATH = 0x9 ++ RTA_FLOW = 0xb ++ RTA_CACHEINFO = 0xc ++ RTA_TABLE = 0xf ++ RTN_UNSPEC = 0x0 ++ RTN_UNICAST = 0x1 ++ RTN_LOCAL = 0x2 ++ RTN_BROADCAST = 0x3 ++ RTN_ANYCAST = 0x4 ++ RTN_MULTICAST = 0x5 ++ RTN_BLACKHOLE = 0x6 ++ RTN_UNREACHABLE = 0x7 ++ RTN_PROHIBIT = 0x8 ++ RTN_THROW = 0x9 ++ RTN_NAT = 0xa ++ RTN_XRESOLVE = 0xb ++ RTNLGRP_NONE = 0x0 ++ RTNLGRP_LINK = 0x1 ++ RTNLGRP_NOTIFY = 0x2 ++ RTNLGRP_NEIGH = 0x3 ++ RTNLGRP_TC = 0x4 ++ RTNLGRP_IPV4_IFADDR = 0x5 ++ RTNLGRP_IPV4_MROUTE = 0x6 ++ RTNLGRP_IPV4_ROUTE = 0x7 ++ RTNLGRP_IPV4_RULE = 0x8 ++ RTNLGRP_IPV6_IFADDR = 0x9 ++ RTNLGRP_IPV6_MROUTE = 0xa ++ RTNLGRP_IPV6_ROUTE = 0xb ++ RTNLGRP_IPV6_IFINFO = 0xc ++ RTNLGRP_IPV6_PREFIX = 0x12 ++ RTNLGRP_IPV6_RULE = 0x13 ++ RTNLGRP_ND_USEROPT = 0x14 ++ SizeofNlMsghdr = 0x10 ++ SizeofNlMsgerr = 0x14 ++ SizeofRtGenmsg = 0x1 ++ SizeofNlAttr = 0x4 ++ SizeofRtAttr = 0x4 ++ SizeofIfInfomsg = 0x10 ++ SizeofIfAddrmsg = 0x8 ++ SizeofRtMsg = 0xc ++ SizeofRtNexthop = 0x8 ++) ++ ++type NlMsghdr struct { ++ Len uint32 ++ Type uint16 ++ Flags uint16 ++ Seq uint32 ++ Pid uint32 ++} ++ ++type NlMsgerr struct { ++ Error int32 ++ Msg NlMsghdr ++} ++ ++type RtGenmsg struct { ++ Family uint8 ++} ++ ++type NlAttr struct { ++ Len uint16 ++ Type uint16 ++} ++ ++type RtAttr struct { ++ Len uint16 ++ Type uint16 ++} ++ ++type IfInfomsg struct { ++ Family uint8 ++ X__ifi_pad uint8 ++ Type uint16 ++ Index int32 ++ Flags uint32 ++ Change uint32 ++} ++ ++type IfAddrmsg struct { ++ Family uint8 ++ Prefixlen uint8 ++ Flags uint8 ++ Scope uint8 ++ Index uint32 ++} ++ ++type RtMsg struct { ++ Family uint8 ++ Dst_len uint8 ++ Src_len uint8 ++ Tos uint8 ++ Table uint8 ++ Protocol uint8 ++ Scope uint8 ++ Type uint8 ++ Flags uint32 ++} ++ ++type RtNexthop struct { ++ Len uint16 ++ Flags uint8 ++ Hops uint8 ++ Ifindex int32 ++} ++ ++const ( ++ SizeofSockFilter = 0x8 ++ SizeofSockFprog = 0x8 ++) ++ ++type SockFilter struct { ++ Code uint16 ++ Jt uint8 ++ Jf uint8 ++ K uint32 ++} ++ ++type SockFprog struct { ++ Len uint16 ++ Pad_cgo_0 [2]byte ++ Filter *SockFilter ++} ++ ++type InotifyEvent struct { ++ Wd int32 ++ Mask uint32 ++ Cookie uint32 ++ Len uint32 ++ Name [0]uint8 ++} ++ ++const SizeofInotifyEvent = 0x10 ++ ++type PtraceRegs struct { ++ Uregs [18]uint32 ++} ++ ++type FdSet struct { ++ Bits [32]int32 ++} ++ ++type Sysinfo_t struct { ++ Uptime int32 ++ Loads [3]uint32 ++ Totalram uint32 ++ Freeram uint32 ++ Sharedram uint32 ++ Bufferram uint32 ++ Totalswap uint32 ++ Freeswap uint32 ++ Procs uint16 ++ Pad uint16 ++ Totalhigh uint32 ++ Freehigh uint32 ++ Unit uint32 ++ X_f [8]uint8 ++} ++ ++type Utsname struct { ++ Sysname [65]uint8 ++ Nodename [65]uint8 ++ Release [65]uint8 ++ Version [65]uint8 ++ Machine [65]uint8 ++ Domainname [65]uint8 ++} ++ ++type Ustat_t struct { ++ Tfree int32 ++ Tinode uint32 ++ Fname [6]uint8 ++ Fpack [6]uint8 ++} ++ ++type EpollEvent struct { ++ Events uint32 ++ PadFd int32 ++ Fd int32 ++ Pad int32 ++} ++ ++const ( ++ AT_FDCWD = -0x64 ++ AT_REMOVEDIR = 0x200 ++ AT_SYMLINK_FOLLOW = 0x400 ++ AT_SYMLINK_NOFOLLOW = 0x100 ++) ++ ++type PollFd struct { ++ Fd int32 ++ Events int16 ++ Revents int16 ++} ++ ++const ( ++ POLLIN = 0x1 ++ POLLPRI = 0x2 ++ POLLOUT = 0x4 ++ POLLRDHUP = 0x2000 ++ POLLERR = 0x8 ++ POLLHUP = 0x10 ++ POLLNVAL = 0x20 ++) ++ ++type Sigset_t struct { ++ X__val [16]uint64 ++} ++ ++type Termios struct { ++ Iflag uint32 ++ Oflag uint32 ++ Cflag uint32 ++ Lflag uint32 ++ Line uint8 ++ Cc [19]uint8 ++ Ispeed uint32 ++ Ospeed uint32 ++} +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +new file mode 100644 +index 0000000..e58c500 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +@@ -0,0 +1,650 @@ ++// +build arm64,linux ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- -fsigned-char types_linux.go ++ ++package unix ++ ++const ( ++ sizeofPtr = 0x8 ++ sizeofShort = 0x2 ++ sizeofInt = 0x4 ++ sizeofLong = 0x8 ++ sizeofLongLong = 0x8 ++ PathMax = 0x1000 ++) ++ ++type ( ++ _C_short int16 ++ _C_int int32 ++ _C_long int64 ++ _C_long_long int64 ++) ++ ++type Timespec struct { ++ Sec int64 ++ Nsec int64 ++} ++ ++type Timeval struct { ++ Sec int64 ++ Usec int64 ++} ++ ++type Timex struct { ++ Modes uint32 ++ Pad_cgo_0 [4]byte ++ Offset int64 ++ Freq int64 ++ Maxerror int64 ++ Esterror int64 ++ Status int32 ++ Pad_cgo_1 [4]byte ++ Constant int64 ++ Precision int64 ++ Tolerance int64 ++ Time Timeval ++ Tick int64 ++ Ppsfreq int64 ++ Jitter int64 ++ Shift int32 ++ Pad_cgo_2 [4]byte ++ Stabil int64 ++ Jitcnt int64 ++ Calcnt int64 ++ Errcnt int64 ++ Stbcnt int64 ++ Tai int32 ++ Pad_cgo_3 [44]byte ++} ++ ++type Time_t int64 ++ ++type Tms struct { ++ Utime int64 ++ Stime int64 ++ Cutime int64 ++ Cstime int64 ++} ++ ++type Utimbuf struct { ++ Actime int64 ++ Modtime int64 ++} ++ ++type Rusage struct { ++ Utime Timeval ++ Stime Timeval ++ Maxrss int64 ++ Ixrss int64 ++ Idrss int64 ++ Isrss int64 ++ Minflt int64 ++ Majflt int64 ++ Nswap int64 ++ Inblock int64 ++ Oublock int64 ++ Msgsnd int64 ++ Msgrcv int64 ++ Nsignals int64 ++ Nvcsw int64 ++ Nivcsw int64 ++} ++ ++type Rlimit struct { ++ Cur uint64 ++ Max uint64 ++} ++ ++type _Gid_t uint32 ++ ++type Stat_t struct { ++ Dev uint64 ++ Ino uint64 ++ Mode uint32 ++ Nlink uint32 ++ Uid uint32 ++ Gid uint32 ++ Rdev uint64 ++ X__pad1 uint64 ++ Size int64 ++ Blksize int32 ++ X__pad2 int32 ++ Blocks int64 ++ Atim Timespec ++ Mtim Timespec ++ Ctim Timespec ++ X__glibc_reserved [2]int32 ++} ++ ++type Statfs_t struct { ++ Type int64 ++ Bsize int64 ++ Blocks uint64 ++ Bfree uint64 ++ Bavail uint64 ++ Files uint64 ++ Ffree uint64 ++ Fsid Fsid ++ Namelen int64 ++ Frsize int64 ++ Flags int64 ++ Spare [4]int64 ++} ++ ++type Dirent struct { ++ Ino uint64 ++ Off int64 ++ Reclen uint16 ++ Type uint8 ++ Name [256]int8 ++ Pad_cgo_0 [5]byte ++} ++ ++type Fsid struct { ++ X__val [2]int32 ++} ++ ++type Flock_t struct { ++ Type int16 ++ Whence int16 ++ Pad_cgo_0 [4]byte ++ Start int64 ++ Len int64 ++ Pid int32 ++ Pad_cgo_1 [4]byte ++} ++ ++const ( ++ FADV_NORMAL = 0x0 ++ FADV_RANDOM = 0x1 ++ FADV_SEQUENTIAL = 0x2 ++ FADV_WILLNEED = 0x3 ++ FADV_DONTNEED = 0x4 ++ FADV_NOREUSE = 0x5 ++) ++ ++type RawSockaddrInet4 struct { ++ Family uint16 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]uint8 ++} ++ ++type RawSockaddrInet6 struct { ++ Family uint16 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++} ++ ++type RawSockaddrUnix struct { ++ Family uint16 ++ Path [108]int8 ++} ++ ++type RawSockaddrLinklayer struct { ++ Family uint16 ++ Protocol uint16 ++ Ifindex int32 ++ Hatype uint16 ++ Pkttype uint8 ++ Halen uint8 ++ Addr [8]uint8 ++} ++ ++type RawSockaddrNetlink struct { ++ Family uint16 ++ Pad uint16 ++ Pid uint32 ++ Groups uint32 ++} ++ ++type RawSockaddrHCI struct { ++ Family uint16 ++ Dev uint16 ++ Channel uint16 ++} ++ ++type RawSockaddrCAN struct { ++ Family uint16 ++ Pad_cgo_0 [2]byte ++ Ifindex int32 ++ Addr [8]byte ++} ++ ++type RawSockaddrALG struct { ++ Family uint16 ++ Type [14]uint8 ++ Feat uint32 ++ Mask uint32 ++ Name [64]uint8 ++} ++ ++type RawSockaddrVM struct { ++ Family uint16 ++ Reserved1 uint16 ++ Port uint32 ++ Cid uint32 ++ Zero [4]uint8 ++} ++ ++type RawSockaddr struct { ++ Family uint16 ++ Data [14]int8 ++} ++ ++type RawSockaddrAny struct { ++ Addr RawSockaddr ++ Pad [96]int8 ++} ++ ++type _Socklen uint32 ++ ++type Linger struct { ++ Onoff int32 ++ Linger int32 ++} ++ ++type Iovec struct { ++ Base *byte ++ Len uint64 ++} ++ ++type IPMreq struct { ++ Multiaddr [4]byte /* in_addr */ ++ Interface [4]byte /* in_addr */ ++} ++ ++type IPMreqn struct { ++ Multiaddr [4]byte /* in_addr */ ++ Address [4]byte /* in_addr */ ++ Ifindex int32 ++} ++ ++type IPv6Mreq struct { ++ Multiaddr [16]byte /* in6_addr */ ++ Interface uint32 ++} ++ ++type Msghdr struct { ++ Name *byte ++ Namelen uint32 ++ Pad_cgo_0 [4]byte ++ Iov *Iovec ++ Iovlen uint64 ++ Control *byte ++ Controllen uint64 ++ Flags int32 ++ Pad_cgo_1 [4]byte ++} ++ ++type Cmsghdr struct { ++ Len uint64 ++ Level int32 ++ Type int32 ++ X__cmsg_data [0]uint8 ++} ++ ++type Inet4Pktinfo struct { ++ Ifindex int32 ++ Spec_dst [4]byte /* in_addr */ ++ Addr [4]byte /* in_addr */ ++} ++ ++type Inet6Pktinfo struct { ++ Addr [16]byte /* in6_addr */ ++ Ifindex uint32 ++} ++ ++type IPv6MTUInfo struct { ++ Addr RawSockaddrInet6 ++ Mtu uint32 ++} ++ ++type ICMPv6Filter struct { ++ Data [8]uint32 ++} ++ ++type Ucred struct { ++ Pid int32 ++ Uid uint32 ++ Gid uint32 ++} ++ ++type TCPInfo struct { ++ State uint8 ++ Ca_state uint8 ++ Retransmits uint8 ++ Probes uint8 ++ Backoff uint8 ++ Options uint8 ++ Pad_cgo_0 [2]byte ++ Rto uint32 ++ Ato uint32 ++ Snd_mss uint32 ++ Rcv_mss uint32 ++ Unacked uint32 ++ Sacked uint32 ++ Lost uint32 ++ Retrans uint32 ++ Fackets uint32 ++ Last_data_sent uint32 ++ Last_ack_sent uint32 ++ Last_data_recv uint32 ++ Last_ack_recv uint32 ++ Pmtu uint32 ++ Rcv_ssthresh uint32 ++ Rtt uint32 ++ Rttvar uint32 ++ Snd_ssthresh uint32 ++ Snd_cwnd uint32 ++ Advmss uint32 ++ Reordering uint32 ++ Rcv_rtt uint32 ++ Rcv_space uint32 ++ Total_retrans uint32 ++} ++ ++const ( ++ SizeofSockaddrInet4 = 0x10 ++ SizeofSockaddrInet6 = 0x1c ++ SizeofSockaddrAny = 0x70 ++ SizeofSockaddrUnix = 0x6e ++ SizeofSockaddrLinklayer = 0x14 ++ SizeofSockaddrNetlink = 0xc ++ SizeofSockaddrHCI = 0x6 ++ SizeofSockaddrCAN = 0x10 ++ SizeofSockaddrALG = 0x58 ++ SizeofSockaddrVM = 0x10 ++ SizeofLinger = 0x8 ++ SizeofIPMreq = 0x8 ++ SizeofIPMreqn = 0xc ++ SizeofIPv6Mreq = 0x14 ++ SizeofMsghdr = 0x38 ++ SizeofCmsghdr = 0x10 ++ SizeofInet4Pktinfo = 0xc ++ SizeofInet6Pktinfo = 0x14 ++ SizeofIPv6MTUInfo = 0x20 ++ SizeofICMPv6Filter = 0x20 ++ SizeofUcred = 0xc ++ SizeofTCPInfo = 0x68 ++) ++ ++const ( ++ IFA_UNSPEC = 0x0 ++ IFA_ADDRESS = 0x1 ++ IFA_LOCAL = 0x2 ++ IFA_LABEL = 0x3 ++ IFA_BROADCAST = 0x4 ++ IFA_ANYCAST = 0x5 ++ IFA_CACHEINFO = 0x6 ++ IFA_MULTICAST = 0x7 ++ IFLA_UNSPEC = 0x0 ++ IFLA_ADDRESS = 0x1 ++ IFLA_BROADCAST = 0x2 ++ IFLA_IFNAME = 0x3 ++ IFLA_MTU = 0x4 ++ IFLA_LINK = 0x5 ++ IFLA_QDISC = 0x6 ++ IFLA_STATS = 0x7 ++ IFLA_COST = 0x8 ++ IFLA_PRIORITY = 0x9 ++ IFLA_MASTER = 0xa ++ IFLA_WIRELESS = 0xb ++ IFLA_PROTINFO = 0xc ++ IFLA_TXQLEN = 0xd ++ IFLA_MAP = 0xe ++ IFLA_WEIGHT = 0xf ++ IFLA_OPERSTATE = 0x10 ++ IFLA_LINKMODE = 0x11 ++ IFLA_LINKINFO = 0x12 ++ IFLA_NET_NS_PID = 0x13 ++ IFLA_IFALIAS = 0x14 ++ IFLA_MAX = 0x22 ++ RT_SCOPE_UNIVERSE = 0x0 ++ RT_SCOPE_SITE = 0xc8 ++ RT_SCOPE_LINK = 0xfd ++ RT_SCOPE_HOST = 0xfe ++ RT_SCOPE_NOWHERE = 0xff ++ RT_TABLE_UNSPEC = 0x0 ++ RT_TABLE_COMPAT = 0xfc ++ RT_TABLE_DEFAULT = 0xfd ++ RT_TABLE_MAIN = 0xfe ++ RT_TABLE_LOCAL = 0xff ++ RT_TABLE_MAX = 0xffffffff ++ RTA_UNSPEC = 0x0 ++ RTA_DST = 0x1 ++ RTA_SRC = 0x2 ++ RTA_IIF = 0x3 ++ RTA_OIF = 0x4 ++ RTA_GATEWAY = 0x5 ++ RTA_PRIORITY = 0x6 ++ RTA_PREFSRC = 0x7 ++ RTA_METRICS = 0x8 ++ RTA_MULTIPATH = 0x9 ++ RTA_FLOW = 0xb ++ RTA_CACHEINFO = 0xc ++ RTA_TABLE = 0xf ++ RTN_UNSPEC = 0x0 ++ RTN_UNICAST = 0x1 ++ RTN_LOCAL = 0x2 ++ RTN_BROADCAST = 0x3 ++ RTN_ANYCAST = 0x4 ++ RTN_MULTICAST = 0x5 ++ RTN_BLACKHOLE = 0x6 ++ RTN_UNREACHABLE = 0x7 ++ RTN_PROHIBIT = 0x8 ++ RTN_THROW = 0x9 ++ RTN_NAT = 0xa ++ RTN_XRESOLVE = 0xb ++ RTNLGRP_NONE = 0x0 ++ RTNLGRP_LINK = 0x1 ++ RTNLGRP_NOTIFY = 0x2 ++ RTNLGRP_NEIGH = 0x3 ++ RTNLGRP_TC = 0x4 ++ RTNLGRP_IPV4_IFADDR = 0x5 ++ RTNLGRP_IPV4_MROUTE = 0x6 ++ RTNLGRP_IPV4_ROUTE = 0x7 ++ RTNLGRP_IPV4_RULE = 0x8 ++ RTNLGRP_IPV6_IFADDR = 0x9 ++ RTNLGRP_IPV6_MROUTE = 0xa ++ RTNLGRP_IPV6_ROUTE = 0xb ++ RTNLGRP_IPV6_IFINFO = 0xc ++ RTNLGRP_IPV6_PREFIX = 0x12 ++ RTNLGRP_IPV6_RULE = 0x13 ++ RTNLGRP_ND_USEROPT = 0x14 ++ SizeofNlMsghdr = 0x10 ++ SizeofNlMsgerr = 0x14 ++ SizeofRtGenmsg = 0x1 ++ SizeofNlAttr = 0x4 ++ SizeofRtAttr = 0x4 ++ SizeofIfInfomsg = 0x10 ++ SizeofIfAddrmsg = 0x8 ++ SizeofRtMsg = 0xc ++ SizeofRtNexthop = 0x8 ++) ++ ++type NlMsghdr struct { ++ Len uint32 ++ Type uint16 ++ Flags uint16 ++ Seq uint32 ++ Pid uint32 ++} ++ ++type NlMsgerr struct { ++ Error int32 ++ Msg NlMsghdr ++} ++ ++type RtGenmsg struct { ++ Family uint8 ++} ++ ++type NlAttr struct { ++ Len uint16 ++ Type uint16 ++} ++ ++type RtAttr struct { ++ Len uint16 ++ Type uint16 ++} ++ ++type IfInfomsg struct { ++ Family uint8 ++ X__ifi_pad uint8 ++ Type uint16 ++ Index int32 ++ Flags uint32 ++ Change uint32 ++} ++ ++type IfAddrmsg struct { ++ Family uint8 ++ Prefixlen uint8 ++ Flags uint8 ++ Scope uint8 ++ Index uint32 ++} ++ ++type RtMsg struct { ++ Family uint8 ++ Dst_len uint8 ++ Src_len uint8 ++ Tos uint8 ++ Table uint8 ++ Protocol uint8 ++ Scope uint8 ++ Type uint8 ++ Flags uint32 ++} ++ ++type RtNexthop struct { ++ Len uint16 ++ Flags uint8 ++ Hops uint8 ++ Ifindex int32 ++} ++ ++const ( ++ SizeofSockFilter = 0x8 ++ SizeofSockFprog = 0x10 ++) ++ ++type SockFilter struct { ++ Code uint16 ++ Jt uint8 ++ Jf uint8 ++ K uint32 ++} ++ ++type SockFprog struct { ++ Len uint16 ++ Pad_cgo_0 [6]byte ++ Filter *SockFilter ++} ++ ++type InotifyEvent struct { ++ Wd int32 ++ Mask uint32 ++ Cookie uint32 ++ Len uint32 ++ Name [0]int8 ++} ++ ++const SizeofInotifyEvent = 0x10 ++ ++type PtraceRegs struct { ++ Regs [31]uint64 ++ Sp uint64 ++ Pc uint64 ++ Pstate uint64 ++} ++ ++type FdSet struct { ++ Bits [16]int64 ++} ++ ++type Sysinfo_t struct { ++ Uptime int64 ++ Loads [3]uint64 ++ Totalram uint64 ++ Freeram uint64 ++ Sharedram uint64 ++ Bufferram uint64 ++ Totalswap uint64 ++ Freeswap uint64 ++ Procs uint16 ++ Pad uint16 ++ Pad_cgo_0 [4]byte ++ Totalhigh uint64 ++ Freehigh uint64 ++ Unit uint32 ++ X_f [0]int8 ++ Pad_cgo_1 [4]byte ++} ++ ++type Utsname struct { ++ Sysname [65]int8 ++ Nodename [65]int8 ++ Release [65]int8 ++ Version [65]int8 ++ Machine [65]int8 ++ Domainname [65]int8 ++} ++ ++type Ustat_t struct { ++ Tfree int32 ++ Pad_cgo_0 [4]byte ++ Tinode uint64 ++ Fname [6]int8 ++ Fpack [6]int8 ++ Pad_cgo_1 [4]byte ++} ++ ++type EpollEvent struct { ++ Events uint32 ++ PadFd int32 ++ Fd int32 ++ Pad int32 ++} ++ ++const ( ++ AT_FDCWD = -0x64 ++ AT_REMOVEDIR = 0x200 ++ AT_SYMLINK_FOLLOW = 0x400 ++ AT_SYMLINK_NOFOLLOW = 0x100 ++) ++ ++type PollFd struct { ++ Fd int32 ++ Events int16 ++ Revents int16 ++} ++ ++const ( ++ POLLIN = 0x1 ++ POLLPRI = 0x2 ++ POLLOUT = 0x4 ++ POLLRDHUP = 0x2000 ++ POLLERR = 0x8 ++ POLLHUP = 0x10 ++ POLLNVAL = 0x20 ++) ++ ++type Sigset_t struct { ++ X__val [16]uint64 ++} ++ ++type Termios struct { ++ Iflag uint32 ++ Oflag uint32 ++ Cflag uint32 ++ Lflag uint32 ++ Line uint8 ++ Cc [19]uint8 ++ Ispeed uint32 ++ Ospeed uint32 ++} +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go +new file mode 100644 +index 0000000..a960085 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go +@@ -0,0 +1,660 @@ ++// +build mips,linux ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs types_linux.go | go run mkpost.go ++ ++package unix ++ ++const ( ++ sizeofPtr = 0x4 ++ sizeofShort = 0x2 ++ sizeofInt = 0x4 ++ sizeofLong = 0x4 ++ sizeofLongLong = 0x8 ++ PathMax = 0x1000 ++) ++ ++type ( ++ _C_short int16 ++ _C_int int32 ++ _C_long int32 ++ _C_long_long int64 ++) ++ ++type Timespec struct { ++ Sec int32 ++ Nsec int32 ++} ++ ++type Timeval struct { ++ Sec int32 ++ Usec int32 ++} ++ ++type Timex struct { ++ Modes uint32 ++ Offset int32 ++ Freq int32 ++ Maxerror int32 ++ Esterror int32 ++ Status int32 ++ Constant int32 ++ Precision int32 ++ Tolerance int32 ++ Time Timeval ++ Tick int32 ++ Ppsfreq int32 ++ Jitter int32 ++ Shift int32 ++ Stabil int32 ++ Jitcnt int32 ++ Calcnt int32 ++ Errcnt int32 ++ Stbcnt int32 ++ Tai int32 ++ Pad_cgo_0 [44]byte ++} ++ ++type Time_t int32 ++ ++type Tms struct { ++ Utime int32 ++ Stime int32 ++ Cutime int32 ++ Cstime int32 ++} ++ ++type Utimbuf struct { ++ Actime int32 ++ Modtime int32 ++} ++ ++type Rusage struct { ++ Utime Timeval ++ Stime Timeval ++ Maxrss int32 ++ Ixrss int32 ++ Idrss int32 ++ Isrss int32 ++ Minflt int32 ++ Majflt int32 ++ Nswap int32 ++ Inblock int32 ++ Oublock int32 ++ Msgsnd int32 ++ Msgrcv int32 ++ Nsignals int32 ++ Nvcsw int32 ++ Nivcsw int32 ++} ++ ++type Rlimit struct { ++ Cur uint64 ++ Max uint64 ++} ++ ++type _Gid_t uint32 ++ ++type Stat_t struct { ++ Dev uint32 ++ Pad1 [3]int32 ++ Ino uint64 ++ Mode uint32 ++ Nlink uint32 ++ Uid uint32 ++ Gid uint32 ++ Rdev uint32 ++ Pad2 [3]int32 ++ Size int64 ++ Atim Timespec ++ Mtim Timespec ++ Ctim Timespec ++ Blksize int32 ++ Pad4 int32 ++ Blocks int64 ++ Pad5 [14]int32 ++} ++ ++type Statfs_t struct { ++ Type int32 ++ Bsize int32 ++ Frsize int32 ++ Pad_cgo_0 [4]byte ++ Blocks uint64 ++ Bfree uint64 ++ Files uint64 ++ Ffree uint64 ++ Bavail uint64 ++ Fsid Fsid ++ Namelen int32 ++ Flags int32 ++ Spare [5]int32 ++ Pad_cgo_1 [4]byte ++} ++ ++type Dirent struct { ++ Ino uint64 ++ Off int64 ++ Reclen uint16 ++ Type uint8 ++ Name [256]int8 ++ Pad_cgo_0 [5]byte ++} ++ ++type Fsid struct { ++ X__val [2]int32 ++} ++ ++type Flock_t struct { ++ Type int16 ++ Whence int16 ++ Pad_cgo_0 [4]byte ++ Start int64 ++ Len int64 ++ Pid int32 ++ Pad_cgo_1 [4]byte ++} ++ ++const ( ++ FADV_NORMAL = 0x0 ++ FADV_RANDOM = 0x1 ++ FADV_SEQUENTIAL = 0x2 ++ FADV_WILLNEED = 0x3 ++ FADV_DONTNEED = 0x4 ++ FADV_NOREUSE = 0x5 ++) ++ ++type RawSockaddrInet4 struct { ++ Family uint16 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]uint8 ++} ++ ++type RawSockaddrInet6 struct { ++ Family uint16 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++} ++ ++type RawSockaddrUnix struct { ++ Family uint16 ++ Path [108]int8 ++} ++ ++type RawSockaddrLinklayer struct { ++ Family uint16 ++ Protocol uint16 ++ Ifindex int32 ++ Hatype uint16 ++ Pkttype uint8 ++ Halen uint8 ++ Addr [8]uint8 ++} ++ ++type RawSockaddrNetlink struct { ++ Family uint16 ++ Pad uint16 ++ Pid uint32 ++ Groups uint32 ++} ++ ++type RawSockaddrHCI struct { ++ Family uint16 ++ Dev uint16 ++ Channel uint16 ++} ++ ++type RawSockaddrCAN struct { ++ Family uint16 ++ Pad_cgo_0 [2]byte ++ Ifindex int32 ++ Addr [8]byte ++} ++ ++type RawSockaddrALG struct { ++ Family uint16 ++ Type [14]uint8 ++ Feat uint32 ++ Mask uint32 ++ Name [64]uint8 ++} ++ ++type RawSockaddrVM struct { ++ Family uint16 ++ Reserved1 uint16 ++ Port uint32 ++ Cid uint32 ++ Zero [4]uint8 ++} ++ ++type RawSockaddr struct { ++ Family uint16 ++ Data [14]int8 ++} ++ ++type RawSockaddrAny struct { ++ Addr RawSockaddr ++ Pad [96]int8 ++} ++ ++type _Socklen uint32 ++ ++type Linger struct { ++ Onoff int32 ++ Linger int32 ++} ++ ++type Iovec struct { ++ Base *byte ++ Len uint32 ++} ++ ++type IPMreq struct { ++ Multiaddr [4]byte /* in_addr */ ++ Interface [4]byte /* in_addr */ ++} ++ ++type IPMreqn struct { ++ Multiaddr [4]byte /* in_addr */ ++ Address [4]byte /* in_addr */ ++ Ifindex int32 ++} ++ ++type IPv6Mreq struct { ++ Multiaddr [16]byte /* in6_addr */ ++ Interface uint32 ++} ++ ++type Msghdr struct { ++ Name *byte ++ Namelen uint32 ++ Iov *Iovec ++ Iovlen uint32 ++ Control *byte ++ Controllen uint32 ++ Flags int32 ++} ++ ++type Cmsghdr struct { ++ Len uint32 ++ Level int32 ++ Type int32 ++} ++ ++type Inet4Pktinfo struct { ++ Ifindex int32 ++ Spec_dst [4]byte /* in_addr */ ++ Addr [4]byte /* in_addr */ ++} ++ ++type Inet6Pktinfo struct { ++ Addr [16]byte /* in6_addr */ ++ Ifindex uint32 ++} ++ ++type IPv6MTUInfo struct { ++ Addr RawSockaddrInet6 ++ Mtu uint32 ++} ++ ++type ICMPv6Filter struct { ++ Data [8]uint32 ++} ++ ++type Ucred struct { ++ Pid int32 ++ Uid uint32 ++ Gid uint32 ++} ++ ++type TCPInfo struct { ++ State uint8 ++ Ca_state uint8 ++ Retransmits uint8 ++ Probes uint8 ++ Backoff uint8 ++ Options uint8 ++ Pad_cgo_0 [2]byte ++ Rto uint32 ++ Ato uint32 ++ Snd_mss uint32 ++ Rcv_mss uint32 ++ Unacked uint32 ++ Sacked uint32 ++ Lost uint32 ++ Retrans uint32 ++ Fackets uint32 ++ Last_data_sent uint32 ++ Last_ack_sent uint32 ++ Last_data_recv uint32 ++ Last_ack_recv uint32 ++ Pmtu uint32 ++ Rcv_ssthresh uint32 ++ Rtt uint32 ++ Rttvar uint32 ++ Snd_ssthresh uint32 ++ Snd_cwnd uint32 ++ Advmss uint32 ++ Reordering uint32 ++ Rcv_rtt uint32 ++ Rcv_space uint32 ++ Total_retrans uint32 ++} ++ ++const ( ++ SizeofSockaddrInet4 = 0x10 ++ SizeofSockaddrInet6 = 0x1c ++ SizeofSockaddrAny = 0x70 ++ SizeofSockaddrUnix = 0x6e ++ SizeofSockaddrLinklayer = 0x14 ++ SizeofSockaddrNetlink = 0xc ++ SizeofSockaddrHCI = 0x6 ++ SizeofSockaddrCAN = 0x10 ++ SizeofSockaddrALG = 0x58 ++ SizeofSockaddrVM = 0x10 ++ SizeofLinger = 0x8 ++ SizeofIPMreq = 0x8 ++ SizeofIPMreqn = 0xc ++ SizeofIPv6Mreq = 0x14 ++ SizeofMsghdr = 0x1c ++ SizeofCmsghdr = 0xc ++ SizeofInet4Pktinfo = 0xc ++ SizeofInet6Pktinfo = 0x14 ++ SizeofIPv6MTUInfo = 0x20 ++ SizeofICMPv6Filter = 0x20 ++ SizeofUcred = 0xc ++ SizeofTCPInfo = 0x68 ++) ++ ++const ( ++ IFA_UNSPEC = 0x0 ++ IFA_ADDRESS = 0x1 ++ IFA_LOCAL = 0x2 ++ IFA_LABEL = 0x3 ++ IFA_BROADCAST = 0x4 ++ IFA_ANYCAST = 0x5 ++ IFA_CACHEINFO = 0x6 ++ IFA_MULTICAST = 0x7 ++ IFLA_UNSPEC = 0x0 ++ IFLA_ADDRESS = 0x1 ++ IFLA_BROADCAST = 0x2 ++ IFLA_IFNAME = 0x3 ++ IFLA_MTU = 0x4 ++ IFLA_LINK = 0x5 ++ IFLA_QDISC = 0x6 ++ IFLA_STATS = 0x7 ++ IFLA_COST = 0x8 ++ IFLA_PRIORITY = 0x9 ++ IFLA_MASTER = 0xa ++ IFLA_WIRELESS = 0xb ++ IFLA_PROTINFO = 0xc ++ IFLA_TXQLEN = 0xd ++ IFLA_MAP = 0xe ++ IFLA_WEIGHT = 0xf ++ IFLA_OPERSTATE = 0x10 ++ IFLA_LINKMODE = 0x11 ++ IFLA_LINKINFO = 0x12 ++ IFLA_NET_NS_PID = 0x13 ++ IFLA_IFALIAS = 0x14 ++ IFLA_MAX = 0x1d ++ RT_SCOPE_UNIVERSE = 0x0 ++ RT_SCOPE_SITE = 0xc8 ++ RT_SCOPE_LINK = 0xfd ++ RT_SCOPE_HOST = 0xfe ++ RT_SCOPE_NOWHERE = 0xff ++ RT_TABLE_UNSPEC = 0x0 ++ RT_TABLE_COMPAT = 0xfc ++ RT_TABLE_DEFAULT = 0xfd ++ RT_TABLE_MAIN = 0xfe ++ RT_TABLE_LOCAL = 0xff ++ RT_TABLE_MAX = 0xffffffff ++ RTA_UNSPEC = 0x0 ++ RTA_DST = 0x1 ++ RTA_SRC = 0x2 ++ RTA_IIF = 0x3 ++ RTA_OIF = 0x4 ++ RTA_GATEWAY = 0x5 ++ RTA_PRIORITY = 0x6 ++ RTA_PREFSRC = 0x7 ++ RTA_METRICS = 0x8 ++ RTA_MULTIPATH = 0x9 ++ RTA_FLOW = 0xb ++ RTA_CACHEINFO = 0xc ++ RTA_TABLE = 0xf ++ RTN_UNSPEC = 0x0 ++ RTN_UNICAST = 0x1 ++ RTN_LOCAL = 0x2 ++ RTN_BROADCAST = 0x3 ++ RTN_ANYCAST = 0x4 ++ RTN_MULTICAST = 0x5 ++ RTN_BLACKHOLE = 0x6 ++ RTN_UNREACHABLE = 0x7 ++ RTN_PROHIBIT = 0x8 ++ RTN_THROW = 0x9 ++ RTN_NAT = 0xa ++ RTN_XRESOLVE = 0xb ++ RTNLGRP_NONE = 0x0 ++ RTNLGRP_LINK = 0x1 ++ RTNLGRP_NOTIFY = 0x2 ++ RTNLGRP_NEIGH = 0x3 ++ RTNLGRP_TC = 0x4 ++ RTNLGRP_IPV4_IFADDR = 0x5 ++ RTNLGRP_IPV4_MROUTE = 0x6 ++ RTNLGRP_IPV4_ROUTE = 0x7 ++ RTNLGRP_IPV4_RULE = 0x8 ++ RTNLGRP_IPV6_IFADDR = 0x9 ++ RTNLGRP_IPV6_MROUTE = 0xa ++ RTNLGRP_IPV6_ROUTE = 0xb ++ RTNLGRP_IPV6_IFINFO = 0xc ++ RTNLGRP_IPV6_PREFIX = 0x12 ++ RTNLGRP_IPV6_RULE = 0x13 ++ RTNLGRP_ND_USEROPT = 0x14 ++ SizeofNlMsghdr = 0x10 ++ SizeofNlMsgerr = 0x14 ++ SizeofRtGenmsg = 0x1 ++ SizeofNlAttr = 0x4 ++ SizeofRtAttr = 0x4 ++ SizeofIfInfomsg = 0x10 ++ SizeofIfAddrmsg = 0x8 ++ SizeofRtMsg = 0xc ++ SizeofRtNexthop = 0x8 ++) ++ ++type NlMsghdr struct { ++ Len uint32 ++ Type uint16 ++ Flags uint16 ++ Seq uint32 ++ Pid uint32 ++} ++ ++type NlMsgerr struct { ++ Error int32 ++ Msg NlMsghdr ++} ++ ++type RtGenmsg struct { ++ Family uint8 ++} ++ ++type NlAttr struct { ++ Len uint16 ++ Type uint16 ++} ++ ++type RtAttr struct { ++ Len uint16 ++ Type uint16 ++} ++ ++type IfInfomsg struct { ++ Family uint8 ++ X__ifi_pad uint8 ++ Type uint16 ++ Index int32 ++ Flags uint32 ++ Change uint32 ++} ++ ++type IfAddrmsg struct { ++ Family uint8 ++ Prefixlen uint8 ++ Flags uint8 ++ Scope uint8 ++ Index uint32 ++} ++ ++type RtMsg struct { ++ Family uint8 ++ Dst_len uint8 ++ Src_len uint8 ++ Tos uint8 ++ Table uint8 ++ Protocol uint8 ++ Scope uint8 ++ Type uint8 ++ Flags uint32 ++} ++ ++type RtNexthop struct { ++ Len uint16 ++ Flags uint8 ++ Hops uint8 ++ Ifindex int32 ++} ++ ++const ( ++ SizeofSockFilter = 0x8 ++ SizeofSockFprog = 0x8 ++) ++ ++type SockFilter struct { ++ Code uint16 ++ Jt uint8 ++ Jf uint8 ++ K uint32 ++} ++ ++type SockFprog struct { ++ Len uint16 ++ Pad_cgo_0 [2]byte ++ Filter *SockFilter ++} ++ ++type InotifyEvent struct { ++ Wd int32 ++ Mask uint32 ++ Cookie uint32 ++ Len uint32 ++} ++ ++const SizeofInotifyEvent = 0x10 ++ ++type PtraceRegs struct { ++ Regs [109]uint32 ++ U_tsize uint32 ++ U_dsize uint32 ++ U_ssize uint32 ++ Start_code uint32 ++ Start_data uint32 ++ Start_stack uint32 ++ Signal int32 ++ U_ar0 *byte ++ Magic uint32 ++ U_comm [32]int8 ++} ++ ++type ptracePsw struct { ++} ++ ++type ptraceFpregs struct { ++} ++ ++type ptracePer struct { ++} ++ ++type FdSet struct { ++ Bits [32]int32 ++} ++ ++type Sysinfo_t struct { ++ Uptime int32 ++ Loads [3]uint32 ++ Totalram uint32 ++ Freeram uint32 ++ Sharedram uint32 ++ Bufferram uint32 ++ Totalswap uint32 ++ Freeswap uint32 ++ Procs uint16 ++ Pad uint16 ++ Totalhigh uint32 ++ Freehigh uint32 ++ Unit uint32 ++ X_f [8]int8 ++} ++ ++type Utsname struct { ++ Sysname [65]int8 ++ Nodename [65]int8 ++ Release [65]int8 ++ Version [65]int8 ++ Machine [65]int8 ++ Domainname [65]int8 ++} ++ ++type Ustat_t struct { ++ Tfree int32 ++ Tinode uint32 ++ Fname [6]int8 ++ Fpack [6]int8 ++} ++ ++type EpollEvent struct { ++ Events uint32 ++ PadFd int32 ++ Fd int32 ++ Pad int32 ++} ++ ++const ( ++ AT_FDCWD = -0x64 ++ AT_REMOVEDIR = 0x200 ++ AT_SYMLINK_FOLLOW = 0x400 ++ AT_SYMLINK_NOFOLLOW = 0x100 ++) ++ ++type PollFd struct { ++ Fd int32 ++ Events int16 ++ Revents int16 ++} ++ ++const ( ++ POLLIN = 0x1 ++ POLLPRI = 0x2 ++ POLLOUT = 0x4 ++ POLLRDHUP = 0x2000 ++ POLLERR = 0x8 ++ POLLHUP = 0x10 ++ POLLNVAL = 0x20 ++) ++ ++type Sigset_t struct { ++ X__val [32]uint32 ++} ++ ++const _SC_PAGESIZE = 0x1e ++ ++type Termios struct { ++ Iflag uint32 ++ Oflag uint32 ++ Cflag uint32 ++ Lflag uint32 ++ Line uint8 ++ Cc [23]uint8 ++ Ispeed uint32 ++ Ospeed uint32 ++} +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +new file mode 100644 +index 0000000..9d46a62 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +@@ -0,0 +1,653 @@ ++// +build mips64,linux ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs types_linux.go ++ ++package unix ++ ++const ( ++ sizeofPtr = 0x8 ++ sizeofShort = 0x2 ++ sizeofInt = 0x4 ++ sizeofLong = 0x8 ++ sizeofLongLong = 0x8 ++ PathMax = 0x1000 ++) ++ ++type ( ++ _C_short int16 ++ _C_int int32 ++ _C_long int64 ++ _C_long_long int64 ++) ++ ++type Timespec struct { ++ Sec int64 ++ Nsec int64 ++} ++ ++type Timeval struct { ++ Sec int64 ++ Usec int64 ++} ++ ++type Timex struct { ++ Modes uint32 ++ Pad_cgo_0 [4]byte ++ Offset int64 ++ Freq int64 ++ Maxerror int64 ++ Esterror int64 ++ Status int32 ++ Pad_cgo_1 [4]byte ++ Constant int64 ++ Precision int64 ++ Tolerance int64 ++ Time Timeval ++ Tick int64 ++ Ppsfreq int64 ++ Jitter int64 ++ Shift int32 ++ Pad_cgo_2 [4]byte ++ Stabil int64 ++ Jitcnt int64 ++ Calcnt int64 ++ Errcnt int64 ++ Stbcnt int64 ++ Tai int32 ++ Pad_cgo_3 [44]byte ++} ++ ++type Time_t int64 ++ ++type Tms struct { ++ Utime int64 ++ Stime int64 ++ Cutime int64 ++ Cstime int64 ++} ++ ++type Utimbuf struct { ++ Actime int64 ++ Modtime int64 ++} ++ ++type Rusage struct { ++ Utime Timeval ++ Stime Timeval ++ Maxrss int64 ++ Ixrss int64 ++ Idrss int64 ++ Isrss int64 ++ Minflt int64 ++ Majflt int64 ++ Nswap int64 ++ Inblock int64 ++ Oublock int64 ++ Msgsnd int64 ++ Msgrcv int64 ++ Nsignals int64 ++ Nvcsw int64 ++ Nivcsw int64 ++} ++ ++type Rlimit struct { ++ Cur uint64 ++ Max uint64 ++} ++ ++type _Gid_t uint32 ++ ++type Stat_t struct { ++ Dev uint32 ++ Pad1 [3]int32 ++ Ino uint64 ++ Mode uint32 ++ Nlink uint32 ++ Uid uint32 ++ Gid uint32 ++ Rdev uint32 ++ Pad2 [3]uint32 ++ Size int64 ++ Atim Timespec ++ Mtim Timespec ++ Ctim Timespec ++ Blksize uint32 ++ Pad4 uint32 ++ Blocks int64 ++} ++ ++type Statfs_t struct { ++ Type int64 ++ Bsize int64 ++ Frsize int64 ++ Blocks uint64 ++ Bfree uint64 ++ Files uint64 ++ Ffree uint64 ++ Bavail uint64 ++ Fsid Fsid ++ Namelen int64 ++ Flags int64 ++ Spare [5]int64 ++} ++ ++type Dirent struct { ++ Ino uint64 ++ Off int64 ++ Reclen uint16 ++ Type uint8 ++ Name [256]int8 ++ Pad_cgo_0 [5]byte ++} ++ ++type Fsid struct { ++ X__val [2]int32 ++} ++ ++type Flock_t struct { ++ Type int16 ++ Whence int16 ++ Pad_cgo_0 [4]byte ++ Start int64 ++ Len int64 ++ Pid int32 ++ Pad_cgo_1 [4]byte ++} ++ ++const ( ++ FADV_NORMAL = 0x0 ++ FADV_RANDOM = 0x1 ++ FADV_SEQUENTIAL = 0x2 ++ FADV_WILLNEED = 0x3 ++ FADV_DONTNEED = 0x4 ++ FADV_NOREUSE = 0x5 ++) ++ ++type RawSockaddrInet4 struct { ++ Family uint16 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]uint8 ++} ++ ++type RawSockaddrInet6 struct { ++ Family uint16 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++} ++ ++type RawSockaddrUnix struct { ++ Family uint16 ++ Path [108]int8 ++} ++ ++type RawSockaddrLinklayer struct { ++ Family uint16 ++ Protocol uint16 ++ Ifindex int32 ++ Hatype uint16 ++ Pkttype uint8 ++ Halen uint8 ++ Addr [8]uint8 ++} ++ ++type RawSockaddrNetlink struct { ++ Family uint16 ++ Pad uint16 ++ Pid uint32 ++ Groups uint32 ++} ++ ++type RawSockaddrHCI struct { ++ Family uint16 ++ Dev uint16 ++ Channel uint16 ++} ++ ++type RawSockaddrCAN struct { ++ Family uint16 ++ Pad_cgo_0 [2]byte ++ Ifindex int32 ++ Addr [8]byte ++} ++ ++type RawSockaddrALG struct { ++ Family uint16 ++ Type [14]uint8 ++ Feat uint32 ++ Mask uint32 ++ Name [64]uint8 ++} ++ ++type RawSockaddrVM struct { ++ Family uint16 ++ Reserved1 uint16 ++ Port uint32 ++ Cid uint32 ++ Zero [4]uint8 ++} ++ ++type RawSockaddr struct { ++ Family uint16 ++ Data [14]int8 ++} ++ ++type RawSockaddrAny struct { ++ Addr RawSockaddr ++ Pad [96]int8 ++} ++ ++type _Socklen uint32 ++ ++type Linger struct { ++ Onoff int32 ++ Linger int32 ++} ++ ++type Iovec struct { ++ Base *byte ++ Len uint64 ++} ++ ++type IPMreq struct { ++ Multiaddr [4]byte /* in_addr */ ++ Interface [4]byte /* in_addr */ ++} ++ ++type IPMreqn struct { ++ Multiaddr [4]byte /* in_addr */ ++ Address [4]byte /* in_addr */ ++ Ifindex int32 ++} ++ ++type IPv6Mreq struct { ++ Multiaddr [16]byte /* in6_addr */ ++ Interface uint32 ++} ++ ++type Msghdr struct { ++ Name *byte ++ Namelen uint32 ++ Pad_cgo_0 [4]byte ++ Iov *Iovec ++ Iovlen uint64 ++ Control *byte ++ Controllen uint64 ++ Flags int32 ++ Pad_cgo_1 [4]byte ++} ++ ++type Cmsghdr struct { ++ Len uint64 ++ Level int32 ++ Type int32 ++} ++ ++type Inet4Pktinfo struct { ++ Ifindex int32 ++ Spec_dst [4]byte /* in_addr */ ++ Addr [4]byte /* in_addr */ ++} ++ ++type Inet6Pktinfo struct { ++ Addr [16]byte /* in6_addr */ ++ Ifindex uint32 ++} ++ ++type IPv6MTUInfo struct { ++ Addr RawSockaddrInet6 ++ Mtu uint32 ++} ++ ++type ICMPv6Filter struct { ++ Data [8]uint32 ++} ++ ++type Ucred struct { ++ Pid int32 ++ Uid uint32 ++ Gid uint32 ++} ++ ++type TCPInfo struct { ++ State uint8 ++ Ca_state uint8 ++ Retransmits uint8 ++ Probes uint8 ++ Backoff uint8 ++ Options uint8 ++ Pad_cgo_0 [2]byte ++ Rto uint32 ++ Ato uint32 ++ Snd_mss uint32 ++ Rcv_mss uint32 ++ Unacked uint32 ++ Sacked uint32 ++ Lost uint32 ++ Retrans uint32 ++ Fackets uint32 ++ Last_data_sent uint32 ++ Last_ack_sent uint32 ++ Last_data_recv uint32 ++ Last_ack_recv uint32 ++ Pmtu uint32 ++ Rcv_ssthresh uint32 ++ Rtt uint32 ++ Rttvar uint32 ++ Snd_ssthresh uint32 ++ Snd_cwnd uint32 ++ Advmss uint32 ++ Reordering uint32 ++ Rcv_rtt uint32 ++ Rcv_space uint32 ++ Total_retrans uint32 ++} ++ ++const ( ++ SizeofSockaddrInet4 = 0x10 ++ SizeofSockaddrInet6 = 0x1c ++ SizeofSockaddrAny = 0x70 ++ SizeofSockaddrUnix = 0x6e ++ SizeofSockaddrLinklayer = 0x14 ++ SizeofSockaddrNetlink = 0xc ++ SizeofSockaddrHCI = 0x6 ++ SizeofSockaddrCAN = 0x10 ++ SizeofSockaddrALG = 0x58 ++ SizeofSockaddrVM = 0x10 ++ SizeofLinger = 0x8 ++ SizeofIPMreq = 0x8 ++ SizeofIPMreqn = 0xc ++ SizeofIPv6Mreq = 0x14 ++ SizeofMsghdr = 0x38 ++ SizeofCmsghdr = 0x10 ++ SizeofInet4Pktinfo = 0xc ++ SizeofInet6Pktinfo = 0x14 ++ SizeofIPv6MTUInfo = 0x20 ++ SizeofICMPv6Filter = 0x20 ++ SizeofUcred = 0xc ++ SizeofTCPInfo = 0x68 ++) ++ ++const ( ++ IFA_UNSPEC = 0x0 ++ IFA_ADDRESS = 0x1 ++ IFA_LOCAL = 0x2 ++ IFA_LABEL = 0x3 ++ IFA_BROADCAST = 0x4 ++ IFA_ANYCAST = 0x5 ++ IFA_CACHEINFO = 0x6 ++ IFA_MULTICAST = 0x7 ++ IFLA_UNSPEC = 0x0 ++ IFLA_ADDRESS = 0x1 ++ IFLA_BROADCAST = 0x2 ++ IFLA_IFNAME = 0x3 ++ IFLA_MTU = 0x4 ++ IFLA_LINK = 0x5 ++ IFLA_QDISC = 0x6 ++ IFLA_STATS = 0x7 ++ IFLA_COST = 0x8 ++ IFLA_PRIORITY = 0x9 ++ IFLA_MASTER = 0xa ++ IFLA_WIRELESS = 0xb ++ IFLA_PROTINFO = 0xc ++ IFLA_TXQLEN = 0xd ++ IFLA_MAP = 0xe ++ IFLA_WEIGHT = 0xf ++ IFLA_OPERSTATE = 0x10 ++ IFLA_LINKMODE = 0x11 ++ IFLA_LINKINFO = 0x12 ++ IFLA_NET_NS_PID = 0x13 ++ IFLA_IFALIAS = 0x14 ++ IFLA_MAX = 0x27 ++ RT_SCOPE_UNIVERSE = 0x0 ++ RT_SCOPE_SITE = 0xc8 ++ RT_SCOPE_LINK = 0xfd ++ RT_SCOPE_HOST = 0xfe ++ RT_SCOPE_NOWHERE = 0xff ++ RT_TABLE_UNSPEC = 0x0 ++ RT_TABLE_COMPAT = 0xfc ++ RT_TABLE_DEFAULT = 0xfd ++ RT_TABLE_MAIN = 0xfe ++ RT_TABLE_LOCAL = 0xff ++ RT_TABLE_MAX = 0xffffffff ++ RTA_UNSPEC = 0x0 ++ RTA_DST = 0x1 ++ RTA_SRC = 0x2 ++ RTA_IIF = 0x3 ++ RTA_OIF = 0x4 ++ RTA_GATEWAY = 0x5 ++ RTA_PRIORITY = 0x6 ++ RTA_PREFSRC = 0x7 ++ RTA_METRICS = 0x8 ++ RTA_MULTIPATH = 0x9 ++ RTA_FLOW = 0xb ++ RTA_CACHEINFO = 0xc ++ RTA_TABLE = 0xf ++ RTN_UNSPEC = 0x0 ++ RTN_UNICAST = 0x1 ++ RTN_LOCAL = 0x2 ++ RTN_BROADCAST = 0x3 ++ RTN_ANYCAST = 0x4 ++ RTN_MULTICAST = 0x5 ++ RTN_BLACKHOLE = 0x6 ++ RTN_UNREACHABLE = 0x7 ++ RTN_PROHIBIT = 0x8 ++ RTN_THROW = 0x9 ++ RTN_NAT = 0xa ++ RTN_XRESOLVE = 0xb ++ RTNLGRP_NONE = 0x0 ++ RTNLGRP_LINK = 0x1 ++ RTNLGRP_NOTIFY = 0x2 ++ RTNLGRP_NEIGH = 0x3 ++ RTNLGRP_TC = 0x4 ++ RTNLGRP_IPV4_IFADDR = 0x5 ++ RTNLGRP_IPV4_MROUTE = 0x6 ++ RTNLGRP_IPV4_ROUTE = 0x7 ++ RTNLGRP_IPV4_RULE = 0x8 ++ RTNLGRP_IPV6_IFADDR = 0x9 ++ RTNLGRP_IPV6_MROUTE = 0xa ++ RTNLGRP_IPV6_ROUTE = 0xb ++ RTNLGRP_IPV6_IFINFO = 0xc ++ RTNLGRP_IPV6_PREFIX = 0x12 ++ RTNLGRP_IPV6_RULE = 0x13 ++ RTNLGRP_ND_USEROPT = 0x14 ++ SizeofNlMsghdr = 0x10 ++ SizeofNlMsgerr = 0x14 ++ SizeofRtGenmsg = 0x1 ++ SizeofNlAttr = 0x4 ++ SizeofRtAttr = 0x4 ++ SizeofIfInfomsg = 0x10 ++ SizeofIfAddrmsg = 0x8 ++ SizeofRtMsg = 0xc ++ SizeofRtNexthop = 0x8 ++) ++ ++type NlMsghdr struct { ++ Len uint32 ++ Type uint16 ++ Flags uint16 ++ Seq uint32 ++ Pid uint32 ++} ++ ++type NlMsgerr struct { ++ Error int32 ++ Msg NlMsghdr ++} ++ ++type RtGenmsg struct { ++ Family uint8 ++} ++ ++type NlAttr struct { ++ Len uint16 ++ Type uint16 ++} ++ ++type RtAttr struct { ++ Len uint16 ++ Type uint16 ++} ++ ++type IfInfomsg struct { ++ Family uint8 ++ X__ifi_pad uint8 ++ Type uint16 ++ Index int32 ++ Flags uint32 ++ Change uint32 ++} ++ ++type IfAddrmsg struct { ++ Family uint8 ++ Prefixlen uint8 ++ Flags uint8 ++ Scope uint8 ++ Index uint32 ++} ++ ++type RtMsg struct { ++ Family uint8 ++ Dst_len uint8 ++ Src_len uint8 ++ Tos uint8 ++ Table uint8 ++ Protocol uint8 ++ Scope uint8 ++ Type uint8 ++ Flags uint32 ++} ++ ++type RtNexthop struct { ++ Len uint16 ++ Flags uint8 ++ Hops uint8 ++ Ifindex int32 ++} ++ ++const ( ++ SizeofSockFilter = 0x8 ++ SizeofSockFprog = 0x10 ++) ++ ++type SockFilter struct { ++ Code uint16 ++ Jt uint8 ++ Jf uint8 ++ K uint32 ++} ++ ++type SockFprog struct { ++ Len uint16 ++ Pad_cgo_0 [6]byte ++ Filter *SockFilter ++} ++ ++type InotifyEvent struct { ++ Wd int32 ++ Mask uint32 ++ Cookie uint32 ++ Len uint32 ++} ++ ++const SizeofInotifyEvent = 0x10 ++ ++type PtraceRegs struct { ++ Regs [102]uint64 ++ U_tsize uint64 ++ U_dsize uint64 ++ U_ssize uint64 ++ Start_code uint64 ++ Start_data uint64 ++ Start_stack uint64 ++ Signal int64 ++ U_ar0 uint64 ++ Magic uint64 ++ U_comm [32]int8 ++} ++ ++type FdSet struct { ++ Bits [16]int64 ++} ++ ++type Sysinfo_t struct { ++ Uptime int64 ++ Loads [3]uint64 ++ Totalram uint64 ++ Freeram uint64 ++ Sharedram uint64 ++ Bufferram uint64 ++ Totalswap uint64 ++ Freeswap uint64 ++ Procs uint16 ++ Pad uint16 ++ Pad_cgo_0 [4]byte ++ Totalhigh uint64 ++ Freehigh uint64 ++ Unit uint32 ++ X_f [0]int8 ++ Pad_cgo_1 [4]byte ++} ++ ++type Utsname struct { ++ Sysname [65]int8 ++ Nodename [65]int8 ++ Release [65]int8 ++ Version [65]int8 ++ Machine [65]int8 ++ Domainname [65]int8 ++} ++ ++type Ustat_t struct { ++ Tfree int32 ++ Pad_cgo_0 [4]byte ++ Tinode uint64 ++ Fname [6]int8 ++ Fpack [6]int8 ++ Pad_cgo_1 [4]byte ++} ++ ++type EpollEvent struct { ++ Events uint32 ++ Fd int32 ++ Pad int32 ++} ++ ++const ( ++ AT_FDCWD = -0x64 ++ AT_REMOVEDIR = 0x200 ++ AT_SYMLINK_FOLLOW = 0x400 ++ AT_SYMLINK_NOFOLLOW = 0x100 ++) ++ ++type PollFd struct { ++ Fd int32 ++ Events int16 ++ Revents int16 ++} ++ ++const ( ++ POLLIN = 0x1 ++ POLLPRI = 0x2 ++ POLLOUT = 0x4 ++ POLLRDHUP = 0x2000 ++ POLLERR = 0x8 ++ POLLHUP = 0x10 ++ POLLNVAL = 0x20 ++) ++ ++type Sigset_t struct { ++ X__val [16]uint64 ++} ++ ++type Termios struct { ++ Iflag uint32 ++ Oflag uint32 ++ Cflag uint32 ++ Lflag uint32 ++ Line uint8 ++ Cc [32]uint8 ++ Pad_cgo_0 [3]byte ++} +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +new file mode 100644 +index 0000000..267bfe9 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +@@ -0,0 +1,653 @@ ++// +build mips64le,linux ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs types_linux.go ++ ++package unix ++ ++const ( ++ sizeofPtr = 0x8 ++ sizeofShort = 0x2 ++ sizeofInt = 0x4 ++ sizeofLong = 0x8 ++ sizeofLongLong = 0x8 ++ PathMax = 0x1000 ++) ++ ++type ( ++ _C_short int16 ++ _C_int int32 ++ _C_long int64 ++ _C_long_long int64 ++) ++ ++type Timespec struct { ++ Sec int64 ++ Nsec int64 ++} ++ ++type Timeval struct { ++ Sec int64 ++ Usec int64 ++} ++ ++type Timex struct { ++ Modes uint32 ++ Pad_cgo_0 [4]byte ++ Offset int64 ++ Freq int64 ++ Maxerror int64 ++ Esterror int64 ++ Status int32 ++ Pad_cgo_1 [4]byte ++ Constant int64 ++ Precision int64 ++ Tolerance int64 ++ Time Timeval ++ Tick int64 ++ Ppsfreq int64 ++ Jitter int64 ++ Shift int32 ++ Pad_cgo_2 [4]byte ++ Stabil int64 ++ Jitcnt int64 ++ Calcnt int64 ++ Errcnt int64 ++ Stbcnt int64 ++ Tai int32 ++ Pad_cgo_3 [44]byte ++} ++ ++type Time_t int64 ++ ++type Tms struct { ++ Utime int64 ++ Stime int64 ++ Cutime int64 ++ Cstime int64 ++} ++ ++type Utimbuf struct { ++ Actime int64 ++ Modtime int64 ++} ++ ++type Rusage struct { ++ Utime Timeval ++ Stime Timeval ++ Maxrss int64 ++ Ixrss int64 ++ Idrss int64 ++ Isrss int64 ++ Minflt int64 ++ Majflt int64 ++ Nswap int64 ++ Inblock int64 ++ Oublock int64 ++ Msgsnd int64 ++ Msgrcv int64 ++ Nsignals int64 ++ Nvcsw int64 ++ Nivcsw int64 ++} ++ ++type Rlimit struct { ++ Cur uint64 ++ Max uint64 ++} ++ ++type _Gid_t uint32 ++ ++type Stat_t struct { ++ Dev uint32 ++ Pad1 [3]int32 ++ Ino uint64 ++ Mode uint32 ++ Nlink uint32 ++ Uid uint32 ++ Gid uint32 ++ Rdev uint32 ++ Pad2 [3]uint32 ++ Size int64 ++ Atim Timespec ++ Mtim Timespec ++ Ctim Timespec ++ Blksize uint32 ++ Pad4 uint32 ++ Blocks int64 ++} ++ ++type Statfs_t struct { ++ Type int64 ++ Bsize int64 ++ Frsize int64 ++ Blocks uint64 ++ Bfree uint64 ++ Files uint64 ++ Ffree uint64 ++ Bavail uint64 ++ Fsid Fsid ++ Namelen int64 ++ Flags int64 ++ Spare [5]int64 ++} ++ ++type Dirent struct { ++ Ino uint64 ++ Off int64 ++ Reclen uint16 ++ Type uint8 ++ Name [256]int8 ++ Pad_cgo_0 [5]byte ++} ++ ++type Fsid struct { ++ X__val [2]int32 ++} ++ ++type Flock_t struct { ++ Type int16 ++ Whence int16 ++ Pad_cgo_0 [4]byte ++ Start int64 ++ Len int64 ++ Pid int32 ++ Pad_cgo_1 [4]byte ++} ++ ++const ( ++ FADV_NORMAL = 0x0 ++ FADV_RANDOM = 0x1 ++ FADV_SEQUENTIAL = 0x2 ++ FADV_WILLNEED = 0x3 ++ FADV_DONTNEED = 0x4 ++ FADV_NOREUSE = 0x5 ++) ++ ++type RawSockaddrInet4 struct { ++ Family uint16 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]uint8 ++} ++ ++type RawSockaddrInet6 struct { ++ Family uint16 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++} ++ ++type RawSockaddrUnix struct { ++ Family uint16 ++ Path [108]int8 ++} ++ ++type RawSockaddrLinklayer struct { ++ Family uint16 ++ Protocol uint16 ++ Ifindex int32 ++ Hatype uint16 ++ Pkttype uint8 ++ Halen uint8 ++ Addr [8]uint8 ++} ++ ++type RawSockaddrNetlink struct { ++ Family uint16 ++ Pad uint16 ++ Pid uint32 ++ Groups uint32 ++} ++ ++type RawSockaddrHCI struct { ++ Family uint16 ++ Dev uint16 ++ Channel uint16 ++} ++ ++type RawSockaddrCAN struct { ++ Family uint16 ++ Pad_cgo_0 [2]byte ++ Ifindex int32 ++ Addr [8]byte ++} ++ ++type RawSockaddrALG struct { ++ Family uint16 ++ Type [14]uint8 ++ Feat uint32 ++ Mask uint32 ++ Name [64]uint8 ++} ++ ++type RawSockaddrVM struct { ++ Family uint16 ++ Reserved1 uint16 ++ Port uint32 ++ Cid uint32 ++ Zero [4]uint8 ++} ++ ++type RawSockaddr struct { ++ Family uint16 ++ Data [14]int8 ++} ++ ++type RawSockaddrAny struct { ++ Addr RawSockaddr ++ Pad [96]int8 ++} ++ ++type _Socklen uint32 ++ ++type Linger struct { ++ Onoff int32 ++ Linger int32 ++} ++ ++type Iovec struct { ++ Base *byte ++ Len uint64 ++} ++ ++type IPMreq struct { ++ Multiaddr [4]byte /* in_addr */ ++ Interface [4]byte /* in_addr */ ++} ++ ++type IPMreqn struct { ++ Multiaddr [4]byte /* in_addr */ ++ Address [4]byte /* in_addr */ ++ Ifindex int32 ++} ++ ++type IPv6Mreq struct { ++ Multiaddr [16]byte /* in6_addr */ ++ Interface uint32 ++} ++ ++type Msghdr struct { ++ Name *byte ++ Namelen uint32 ++ Pad_cgo_0 [4]byte ++ Iov *Iovec ++ Iovlen uint64 ++ Control *byte ++ Controllen uint64 ++ Flags int32 ++ Pad_cgo_1 [4]byte ++} ++ ++type Cmsghdr struct { ++ Len uint64 ++ Level int32 ++ Type int32 ++} ++ ++type Inet4Pktinfo struct { ++ Ifindex int32 ++ Spec_dst [4]byte /* in_addr */ ++ Addr [4]byte /* in_addr */ ++} ++ ++type Inet6Pktinfo struct { ++ Addr [16]byte /* in6_addr */ ++ Ifindex uint32 ++} ++ ++type IPv6MTUInfo struct { ++ Addr RawSockaddrInet6 ++ Mtu uint32 ++} ++ ++type ICMPv6Filter struct { ++ Data [8]uint32 ++} ++ ++type Ucred struct { ++ Pid int32 ++ Uid uint32 ++ Gid uint32 ++} ++ ++type TCPInfo struct { ++ State uint8 ++ Ca_state uint8 ++ Retransmits uint8 ++ Probes uint8 ++ Backoff uint8 ++ Options uint8 ++ Pad_cgo_0 [2]byte ++ Rto uint32 ++ Ato uint32 ++ Snd_mss uint32 ++ Rcv_mss uint32 ++ Unacked uint32 ++ Sacked uint32 ++ Lost uint32 ++ Retrans uint32 ++ Fackets uint32 ++ Last_data_sent uint32 ++ Last_ack_sent uint32 ++ Last_data_recv uint32 ++ Last_ack_recv uint32 ++ Pmtu uint32 ++ Rcv_ssthresh uint32 ++ Rtt uint32 ++ Rttvar uint32 ++ Snd_ssthresh uint32 ++ Snd_cwnd uint32 ++ Advmss uint32 ++ Reordering uint32 ++ Rcv_rtt uint32 ++ Rcv_space uint32 ++ Total_retrans uint32 ++} ++ ++const ( ++ SizeofSockaddrInet4 = 0x10 ++ SizeofSockaddrInet6 = 0x1c ++ SizeofSockaddrAny = 0x70 ++ SizeofSockaddrUnix = 0x6e ++ SizeofSockaddrLinklayer = 0x14 ++ SizeofSockaddrNetlink = 0xc ++ SizeofSockaddrHCI = 0x6 ++ SizeofSockaddrCAN = 0x10 ++ SizeofSockaddrALG = 0x58 ++ SizeofSockaddrVM = 0x10 ++ SizeofLinger = 0x8 ++ SizeofIPMreq = 0x8 ++ SizeofIPMreqn = 0xc ++ SizeofIPv6Mreq = 0x14 ++ SizeofMsghdr = 0x38 ++ SizeofCmsghdr = 0x10 ++ SizeofInet4Pktinfo = 0xc ++ SizeofInet6Pktinfo = 0x14 ++ SizeofIPv6MTUInfo = 0x20 ++ SizeofICMPv6Filter = 0x20 ++ SizeofUcred = 0xc ++ SizeofTCPInfo = 0x68 ++) ++ ++const ( ++ IFA_UNSPEC = 0x0 ++ IFA_ADDRESS = 0x1 ++ IFA_LOCAL = 0x2 ++ IFA_LABEL = 0x3 ++ IFA_BROADCAST = 0x4 ++ IFA_ANYCAST = 0x5 ++ IFA_CACHEINFO = 0x6 ++ IFA_MULTICAST = 0x7 ++ IFLA_UNSPEC = 0x0 ++ IFLA_ADDRESS = 0x1 ++ IFLA_BROADCAST = 0x2 ++ IFLA_IFNAME = 0x3 ++ IFLA_MTU = 0x4 ++ IFLA_LINK = 0x5 ++ IFLA_QDISC = 0x6 ++ IFLA_STATS = 0x7 ++ IFLA_COST = 0x8 ++ IFLA_PRIORITY = 0x9 ++ IFLA_MASTER = 0xa ++ IFLA_WIRELESS = 0xb ++ IFLA_PROTINFO = 0xc ++ IFLA_TXQLEN = 0xd ++ IFLA_MAP = 0xe ++ IFLA_WEIGHT = 0xf ++ IFLA_OPERSTATE = 0x10 ++ IFLA_LINKMODE = 0x11 ++ IFLA_LINKINFO = 0x12 ++ IFLA_NET_NS_PID = 0x13 ++ IFLA_IFALIAS = 0x14 ++ IFLA_MAX = 0x27 ++ RT_SCOPE_UNIVERSE = 0x0 ++ RT_SCOPE_SITE = 0xc8 ++ RT_SCOPE_LINK = 0xfd ++ RT_SCOPE_HOST = 0xfe ++ RT_SCOPE_NOWHERE = 0xff ++ RT_TABLE_UNSPEC = 0x0 ++ RT_TABLE_COMPAT = 0xfc ++ RT_TABLE_DEFAULT = 0xfd ++ RT_TABLE_MAIN = 0xfe ++ RT_TABLE_LOCAL = 0xff ++ RT_TABLE_MAX = 0xffffffff ++ RTA_UNSPEC = 0x0 ++ RTA_DST = 0x1 ++ RTA_SRC = 0x2 ++ RTA_IIF = 0x3 ++ RTA_OIF = 0x4 ++ RTA_GATEWAY = 0x5 ++ RTA_PRIORITY = 0x6 ++ RTA_PREFSRC = 0x7 ++ RTA_METRICS = 0x8 ++ RTA_MULTIPATH = 0x9 ++ RTA_FLOW = 0xb ++ RTA_CACHEINFO = 0xc ++ RTA_TABLE = 0xf ++ RTN_UNSPEC = 0x0 ++ RTN_UNICAST = 0x1 ++ RTN_LOCAL = 0x2 ++ RTN_BROADCAST = 0x3 ++ RTN_ANYCAST = 0x4 ++ RTN_MULTICAST = 0x5 ++ RTN_BLACKHOLE = 0x6 ++ RTN_UNREACHABLE = 0x7 ++ RTN_PROHIBIT = 0x8 ++ RTN_THROW = 0x9 ++ RTN_NAT = 0xa ++ RTN_XRESOLVE = 0xb ++ RTNLGRP_NONE = 0x0 ++ RTNLGRP_LINK = 0x1 ++ RTNLGRP_NOTIFY = 0x2 ++ RTNLGRP_NEIGH = 0x3 ++ RTNLGRP_TC = 0x4 ++ RTNLGRP_IPV4_IFADDR = 0x5 ++ RTNLGRP_IPV4_MROUTE = 0x6 ++ RTNLGRP_IPV4_ROUTE = 0x7 ++ RTNLGRP_IPV4_RULE = 0x8 ++ RTNLGRP_IPV6_IFADDR = 0x9 ++ RTNLGRP_IPV6_MROUTE = 0xa ++ RTNLGRP_IPV6_ROUTE = 0xb ++ RTNLGRP_IPV6_IFINFO = 0xc ++ RTNLGRP_IPV6_PREFIX = 0x12 ++ RTNLGRP_IPV6_RULE = 0x13 ++ RTNLGRP_ND_USEROPT = 0x14 ++ SizeofNlMsghdr = 0x10 ++ SizeofNlMsgerr = 0x14 ++ SizeofRtGenmsg = 0x1 ++ SizeofNlAttr = 0x4 ++ SizeofRtAttr = 0x4 ++ SizeofIfInfomsg = 0x10 ++ SizeofIfAddrmsg = 0x8 ++ SizeofRtMsg = 0xc ++ SizeofRtNexthop = 0x8 ++) ++ ++type NlMsghdr struct { ++ Len uint32 ++ Type uint16 ++ Flags uint16 ++ Seq uint32 ++ Pid uint32 ++} ++ ++type NlMsgerr struct { ++ Error int32 ++ Msg NlMsghdr ++} ++ ++type RtGenmsg struct { ++ Family uint8 ++} ++ ++type NlAttr struct { ++ Len uint16 ++ Type uint16 ++} ++ ++type RtAttr struct { ++ Len uint16 ++ Type uint16 ++} ++ ++type IfInfomsg struct { ++ Family uint8 ++ X__ifi_pad uint8 ++ Type uint16 ++ Index int32 ++ Flags uint32 ++ Change uint32 ++} ++ ++type IfAddrmsg struct { ++ Family uint8 ++ Prefixlen uint8 ++ Flags uint8 ++ Scope uint8 ++ Index uint32 ++} ++ ++type RtMsg struct { ++ Family uint8 ++ Dst_len uint8 ++ Src_len uint8 ++ Tos uint8 ++ Table uint8 ++ Protocol uint8 ++ Scope uint8 ++ Type uint8 ++ Flags uint32 ++} ++ ++type RtNexthop struct { ++ Len uint16 ++ Flags uint8 ++ Hops uint8 ++ Ifindex int32 ++} ++ ++const ( ++ SizeofSockFilter = 0x8 ++ SizeofSockFprog = 0x10 ++) ++ ++type SockFilter struct { ++ Code uint16 ++ Jt uint8 ++ Jf uint8 ++ K uint32 ++} ++ ++type SockFprog struct { ++ Len uint16 ++ Pad_cgo_0 [6]byte ++ Filter *SockFilter ++} ++ ++type InotifyEvent struct { ++ Wd int32 ++ Mask uint32 ++ Cookie uint32 ++ Len uint32 ++} ++ ++const SizeofInotifyEvent = 0x10 ++ ++type PtraceRegs struct { ++ Regs [102]uint64 ++ U_tsize uint64 ++ U_dsize uint64 ++ U_ssize uint64 ++ Start_code uint64 ++ Start_data uint64 ++ Start_stack uint64 ++ Signal int64 ++ U_ar0 uint64 ++ Magic uint64 ++ U_comm [32]int8 ++} ++ ++type FdSet struct { ++ Bits [16]int64 ++} ++ ++type Sysinfo_t struct { ++ Uptime int64 ++ Loads [3]uint64 ++ Totalram uint64 ++ Freeram uint64 ++ Sharedram uint64 ++ Bufferram uint64 ++ Totalswap uint64 ++ Freeswap uint64 ++ Procs uint16 ++ Pad uint16 ++ Pad_cgo_0 [4]byte ++ Totalhigh uint64 ++ Freehigh uint64 ++ Unit uint32 ++ X_f [0]int8 ++ Pad_cgo_1 [4]byte ++} ++ ++type Utsname struct { ++ Sysname [65]int8 ++ Nodename [65]int8 ++ Release [65]int8 ++ Version [65]int8 ++ Machine [65]int8 ++ Domainname [65]int8 ++} ++ ++type Ustat_t struct { ++ Tfree int32 ++ Pad_cgo_0 [4]byte ++ Tinode uint64 ++ Fname [6]int8 ++ Fpack [6]int8 ++ Pad_cgo_1 [4]byte ++} ++ ++type EpollEvent struct { ++ Events uint32 ++ Fd int32 ++ Pad int32 ++} ++ ++const ( ++ AT_FDCWD = -0x64 ++ AT_REMOVEDIR = 0x200 ++ AT_SYMLINK_FOLLOW = 0x400 ++ AT_SYMLINK_NOFOLLOW = 0x100 ++) ++ ++type PollFd struct { ++ Fd int32 ++ Events int16 ++ Revents int16 ++} ++ ++const ( ++ POLLIN = 0x1 ++ POLLPRI = 0x2 ++ POLLOUT = 0x4 ++ POLLRDHUP = 0x2000 ++ POLLERR = 0x8 ++ POLLHUP = 0x10 ++ POLLNVAL = 0x20 ++) ++ ++type Sigset_t struct { ++ X__val [16]uint64 ++} ++ ++type Termios struct { ++ Iflag uint32 ++ Oflag uint32 ++ Cflag uint32 ++ Lflag uint32 ++ Line uint8 ++ Cc [32]uint8 ++ Pad_cgo_0 [3]byte ++} +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +new file mode 100644 +index 0000000..950515a +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +@@ -0,0 +1,660 @@ ++// +build mipsle,linux ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs types_linux.go | go run mkpost.go ++ ++package unix ++ ++const ( ++ sizeofPtr = 0x4 ++ sizeofShort = 0x2 ++ sizeofInt = 0x4 ++ sizeofLong = 0x4 ++ sizeofLongLong = 0x8 ++ PathMax = 0x1000 ++) ++ ++type ( ++ _C_short int16 ++ _C_int int32 ++ _C_long int32 ++ _C_long_long int64 ++) ++ ++type Timespec struct { ++ Sec int32 ++ Nsec int32 ++} ++ ++type Timeval struct { ++ Sec int32 ++ Usec int32 ++} ++ ++type Timex struct { ++ Modes uint32 ++ Offset int32 ++ Freq int32 ++ Maxerror int32 ++ Esterror int32 ++ Status int32 ++ Constant int32 ++ Precision int32 ++ Tolerance int32 ++ Time Timeval ++ Tick int32 ++ Ppsfreq int32 ++ Jitter int32 ++ Shift int32 ++ Stabil int32 ++ Jitcnt int32 ++ Calcnt int32 ++ Errcnt int32 ++ Stbcnt int32 ++ Tai int32 ++ Pad_cgo_0 [44]byte ++} ++ ++type Time_t int32 ++ ++type Tms struct { ++ Utime int32 ++ Stime int32 ++ Cutime int32 ++ Cstime int32 ++} ++ ++type Utimbuf struct { ++ Actime int32 ++ Modtime int32 ++} ++ ++type Rusage struct { ++ Utime Timeval ++ Stime Timeval ++ Maxrss int32 ++ Ixrss int32 ++ Idrss int32 ++ Isrss int32 ++ Minflt int32 ++ Majflt int32 ++ Nswap int32 ++ Inblock int32 ++ Oublock int32 ++ Msgsnd int32 ++ Msgrcv int32 ++ Nsignals int32 ++ Nvcsw int32 ++ Nivcsw int32 ++} ++ ++type Rlimit struct { ++ Cur uint64 ++ Max uint64 ++} ++ ++type _Gid_t uint32 ++ ++type Stat_t struct { ++ Dev uint32 ++ Pad1 [3]int32 ++ Ino uint64 ++ Mode uint32 ++ Nlink uint32 ++ Uid uint32 ++ Gid uint32 ++ Rdev uint32 ++ Pad2 [3]int32 ++ Size int64 ++ Atim Timespec ++ Mtim Timespec ++ Ctim Timespec ++ Blksize int32 ++ Pad4 int32 ++ Blocks int64 ++ Pad5 [14]int32 ++} ++ ++type Statfs_t struct { ++ Type int32 ++ Bsize int32 ++ Frsize int32 ++ Pad_cgo_0 [4]byte ++ Blocks uint64 ++ Bfree uint64 ++ Files uint64 ++ Ffree uint64 ++ Bavail uint64 ++ Fsid Fsid ++ Namelen int32 ++ Flags int32 ++ Spare [5]int32 ++ Pad_cgo_1 [4]byte ++} ++ ++type Dirent struct { ++ Ino uint64 ++ Off int64 ++ Reclen uint16 ++ Type uint8 ++ Name [256]int8 ++ Pad_cgo_0 [5]byte ++} ++ ++type Fsid struct { ++ X__val [2]int32 ++} ++ ++type Flock_t struct { ++ Type int16 ++ Whence int16 ++ Pad_cgo_0 [4]byte ++ Start int64 ++ Len int64 ++ Pid int32 ++ Pad_cgo_1 [4]byte ++} ++ ++const ( ++ FADV_NORMAL = 0x0 ++ FADV_RANDOM = 0x1 ++ FADV_SEQUENTIAL = 0x2 ++ FADV_WILLNEED = 0x3 ++ FADV_DONTNEED = 0x4 ++ FADV_NOREUSE = 0x5 ++) ++ ++type RawSockaddrInet4 struct { ++ Family uint16 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]uint8 ++} ++ ++type RawSockaddrInet6 struct { ++ Family uint16 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++} ++ ++type RawSockaddrUnix struct { ++ Family uint16 ++ Path [108]int8 ++} ++ ++type RawSockaddrLinklayer struct { ++ Family uint16 ++ Protocol uint16 ++ Ifindex int32 ++ Hatype uint16 ++ Pkttype uint8 ++ Halen uint8 ++ Addr [8]uint8 ++} ++ ++type RawSockaddrNetlink struct { ++ Family uint16 ++ Pad uint16 ++ Pid uint32 ++ Groups uint32 ++} ++ ++type RawSockaddrHCI struct { ++ Family uint16 ++ Dev uint16 ++ Channel uint16 ++} ++ ++type RawSockaddrCAN struct { ++ Family uint16 ++ Pad_cgo_0 [2]byte ++ Ifindex int32 ++ Addr [8]byte ++} ++ ++type RawSockaddrALG struct { ++ Family uint16 ++ Type [14]uint8 ++ Feat uint32 ++ Mask uint32 ++ Name [64]uint8 ++} ++ ++type RawSockaddrVM struct { ++ Family uint16 ++ Reserved1 uint16 ++ Port uint32 ++ Cid uint32 ++ Zero [4]uint8 ++} ++ ++type RawSockaddr struct { ++ Family uint16 ++ Data [14]int8 ++} ++ ++type RawSockaddrAny struct { ++ Addr RawSockaddr ++ Pad [96]int8 ++} ++ ++type _Socklen uint32 ++ ++type Linger struct { ++ Onoff int32 ++ Linger int32 ++} ++ ++type Iovec struct { ++ Base *byte ++ Len uint32 ++} ++ ++type IPMreq struct { ++ Multiaddr [4]byte /* in_addr */ ++ Interface [4]byte /* in_addr */ ++} ++ ++type IPMreqn struct { ++ Multiaddr [4]byte /* in_addr */ ++ Address [4]byte /* in_addr */ ++ Ifindex int32 ++} ++ ++type IPv6Mreq struct { ++ Multiaddr [16]byte /* in6_addr */ ++ Interface uint32 ++} ++ ++type Msghdr struct { ++ Name *byte ++ Namelen uint32 ++ Iov *Iovec ++ Iovlen uint32 ++ Control *byte ++ Controllen uint32 ++ Flags int32 ++} ++ ++type Cmsghdr struct { ++ Len uint32 ++ Level int32 ++ Type int32 ++} ++ ++type Inet4Pktinfo struct { ++ Ifindex int32 ++ Spec_dst [4]byte /* in_addr */ ++ Addr [4]byte /* in_addr */ ++} ++ ++type Inet6Pktinfo struct { ++ Addr [16]byte /* in6_addr */ ++ Ifindex uint32 ++} ++ ++type IPv6MTUInfo struct { ++ Addr RawSockaddrInet6 ++ Mtu uint32 ++} ++ ++type ICMPv6Filter struct { ++ Data [8]uint32 ++} ++ ++type Ucred struct { ++ Pid int32 ++ Uid uint32 ++ Gid uint32 ++} ++ ++type TCPInfo struct { ++ State uint8 ++ Ca_state uint8 ++ Retransmits uint8 ++ Probes uint8 ++ Backoff uint8 ++ Options uint8 ++ Pad_cgo_0 [2]byte ++ Rto uint32 ++ Ato uint32 ++ Snd_mss uint32 ++ Rcv_mss uint32 ++ Unacked uint32 ++ Sacked uint32 ++ Lost uint32 ++ Retrans uint32 ++ Fackets uint32 ++ Last_data_sent uint32 ++ Last_ack_sent uint32 ++ Last_data_recv uint32 ++ Last_ack_recv uint32 ++ Pmtu uint32 ++ Rcv_ssthresh uint32 ++ Rtt uint32 ++ Rttvar uint32 ++ Snd_ssthresh uint32 ++ Snd_cwnd uint32 ++ Advmss uint32 ++ Reordering uint32 ++ Rcv_rtt uint32 ++ Rcv_space uint32 ++ Total_retrans uint32 ++} ++ ++const ( ++ SizeofSockaddrInet4 = 0x10 ++ SizeofSockaddrInet6 = 0x1c ++ SizeofSockaddrAny = 0x70 ++ SizeofSockaddrUnix = 0x6e ++ SizeofSockaddrLinklayer = 0x14 ++ SizeofSockaddrNetlink = 0xc ++ SizeofSockaddrHCI = 0x6 ++ SizeofSockaddrCAN = 0x10 ++ SizeofSockaddrALG = 0x58 ++ SizeofSockaddrVM = 0x10 ++ SizeofLinger = 0x8 ++ SizeofIPMreq = 0x8 ++ SizeofIPMreqn = 0xc ++ SizeofIPv6Mreq = 0x14 ++ SizeofMsghdr = 0x1c ++ SizeofCmsghdr = 0xc ++ SizeofInet4Pktinfo = 0xc ++ SizeofInet6Pktinfo = 0x14 ++ SizeofIPv6MTUInfo = 0x20 ++ SizeofICMPv6Filter = 0x20 ++ SizeofUcred = 0xc ++ SizeofTCPInfo = 0x68 ++) ++ ++const ( ++ IFA_UNSPEC = 0x0 ++ IFA_ADDRESS = 0x1 ++ IFA_LOCAL = 0x2 ++ IFA_LABEL = 0x3 ++ IFA_BROADCAST = 0x4 ++ IFA_ANYCAST = 0x5 ++ IFA_CACHEINFO = 0x6 ++ IFA_MULTICAST = 0x7 ++ IFLA_UNSPEC = 0x0 ++ IFLA_ADDRESS = 0x1 ++ IFLA_BROADCAST = 0x2 ++ IFLA_IFNAME = 0x3 ++ IFLA_MTU = 0x4 ++ IFLA_LINK = 0x5 ++ IFLA_QDISC = 0x6 ++ IFLA_STATS = 0x7 ++ IFLA_COST = 0x8 ++ IFLA_PRIORITY = 0x9 ++ IFLA_MASTER = 0xa ++ IFLA_WIRELESS = 0xb ++ IFLA_PROTINFO = 0xc ++ IFLA_TXQLEN = 0xd ++ IFLA_MAP = 0xe ++ IFLA_WEIGHT = 0xf ++ IFLA_OPERSTATE = 0x10 ++ IFLA_LINKMODE = 0x11 ++ IFLA_LINKINFO = 0x12 ++ IFLA_NET_NS_PID = 0x13 ++ IFLA_IFALIAS = 0x14 ++ IFLA_MAX = 0x2a ++ RT_SCOPE_UNIVERSE = 0x0 ++ RT_SCOPE_SITE = 0xc8 ++ RT_SCOPE_LINK = 0xfd ++ RT_SCOPE_HOST = 0xfe ++ RT_SCOPE_NOWHERE = 0xff ++ RT_TABLE_UNSPEC = 0x0 ++ RT_TABLE_COMPAT = 0xfc ++ RT_TABLE_DEFAULT = 0xfd ++ RT_TABLE_MAIN = 0xfe ++ RT_TABLE_LOCAL = 0xff ++ RT_TABLE_MAX = 0xffffffff ++ RTA_UNSPEC = 0x0 ++ RTA_DST = 0x1 ++ RTA_SRC = 0x2 ++ RTA_IIF = 0x3 ++ RTA_OIF = 0x4 ++ RTA_GATEWAY = 0x5 ++ RTA_PRIORITY = 0x6 ++ RTA_PREFSRC = 0x7 ++ RTA_METRICS = 0x8 ++ RTA_MULTIPATH = 0x9 ++ RTA_FLOW = 0xb ++ RTA_CACHEINFO = 0xc ++ RTA_TABLE = 0xf ++ RTN_UNSPEC = 0x0 ++ RTN_UNICAST = 0x1 ++ RTN_LOCAL = 0x2 ++ RTN_BROADCAST = 0x3 ++ RTN_ANYCAST = 0x4 ++ RTN_MULTICAST = 0x5 ++ RTN_BLACKHOLE = 0x6 ++ RTN_UNREACHABLE = 0x7 ++ RTN_PROHIBIT = 0x8 ++ RTN_THROW = 0x9 ++ RTN_NAT = 0xa ++ RTN_XRESOLVE = 0xb ++ RTNLGRP_NONE = 0x0 ++ RTNLGRP_LINK = 0x1 ++ RTNLGRP_NOTIFY = 0x2 ++ RTNLGRP_NEIGH = 0x3 ++ RTNLGRP_TC = 0x4 ++ RTNLGRP_IPV4_IFADDR = 0x5 ++ RTNLGRP_IPV4_MROUTE = 0x6 ++ RTNLGRP_IPV4_ROUTE = 0x7 ++ RTNLGRP_IPV4_RULE = 0x8 ++ RTNLGRP_IPV6_IFADDR = 0x9 ++ RTNLGRP_IPV6_MROUTE = 0xa ++ RTNLGRP_IPV6_ROUTE = 0xb ++ RTNLGRP_IPV6_IFINFO = 0xc ++ RTNLGRP_IPV6_PREFIX = 0x12 ++ RTNLGRP_IPV6_RULE = 0x13 ++ RTNLGRP_ND_USEROPT = 0x14 ++ SizeofNlMsghdr = 0x10 ++ SizeofNlMsgerr = 0x14 ++ SizeofRtGenmsg = 0x1 ++ SizeofNlAttr = 0x4 ++ SizeofRtAttr = 0x4 ++ SizeofIfInfomsg = 0x10 ++ SizeofIfAddrmsg = 0x8 ++ SizeofRtMsg = 0xc ++ SizeofRtNexthop = 0x8 ++) ++ ++type NlMsghdr struct { ++ Len uint32 ++ Type uint16 ++ Flags uint16 ++ Seq uint32 ++ Pid uint32 ++} ++ ++type NlMsgerr struct { ++ Error int32 ++ Msg NlMsghdr ++} ++ ++type RtGenmsg struct { ++ Family uint8 ++} ++ ++type NlAttr struct { ++ Len uint16 ++ Type uint16 ++} ++ ++type RtAttr struct { ++ Len uint16 ++ Type uint16 ++} ++ ++type IfInfomsg struct { ++ Family uint8 ++ X__ifi_pad uint8 ++ Type uint16 ++ Index int32 ++ Flags uint32 ++ Change uint32 ++} ++ ++type IfAddrmsg struct { ++ Family uint8 ++ Prefixlen uint8 ++ Flags uint8 ++ Scope uint8 ++ Index uint32 ++} ++ ++type RtMsg struct { ++ Family uint8 ++ Dst_len uint8 ++ Src_len uint8 ++ Tos uint8 ++ Table uint8 ++ Protocol uint8 ++ Scope uint8 ++ Type uint8 ++ Flags uint32 ++} ++ ++type RtNexthop struct { ++ Len uint16 ++ Flags uint8 ++ Hops uint8 ++ Ifindex int32 ++} ++ ++const ( ++ SizeofSockFilter = 0x8 ++ SizeofSockFprog = 0x8 ++) ++ ++type SockFilter struct { ++ Code uint16 ++ Jt uint8 ++ Jf uint8 ++ K uint32 ++} ++ ++type SockFprog struct { ++ Len uint16 ++ Pad_cgo_0 [2]byte ++ Filter *SockFilter ++} ++ ++type InotifyEvent struct { ++ Wd int32 ++ Mask uint32 ++ Cookie uint32 ++ Len uint32 ++} ++ ++const SizeofInotifyEvent = 0x10 ++ ++type PtraceRegs struct { ++ Regs [109]uint32 ++ U_tsize uint32 ++ U_dsize uint32 ++ U_ssize uint32 ++ Start_code uint32 ++ Start_data uint32 ++ Start_stack uint32 ++ Signal int32 ++ U_ar0 *byte ++ Magic uint32 ++ U_comm [32]int8 ++} ++ ++type ptracePsw struct { ++} ++ ++type ptraceFpregs struct { ++} ++ ++type ptracePer struct { ++} ++ ++type FdSet struct { ++ Bits [32]int32 ++} ++ ++type Sysinfo_t struct { ++ Uptime int32 ++ Loads [3]uint32 ++ Totalram uint32 ++ Freeram uint32 ++ Sharedram uint32 ++ Bufferram uint32 ++ Totalswap uint32 ++ Freeswap uint32 ++ Procs uint16 ++ Pad uint16 ++ Totalhigh uint32 ++ Freehigh uint32 ++ Unit uint32 ++ X_f [8]int8 ++} ++ ++type Utsname struct { ++ Sysname [65]int8 ++ Nodename [65]int8 ++ Release [65]int8 ++ Version [65]int8 ++ Machine [65]int8 ++ Domainname [65]int8 ++} ++ ++type Ustat_t struct { ++ Tfree int32 ++ Tinode uint32 ++ Fname [6]int8 ++ Fpack [6]int8 ++} ++ ++type EpollEvent struct { ++ Events uint32 ++ PadFd int32 ++ Fd int32 ++ Pad int32 ++} ++ ++const ( ++ AT_FDCWD = -0x64 ++ AT_REMOVEDIR = 0x200 ++ AT_SYMLINK_FOLLOW = 0x400 ++ AT_SYMLINK_NOFOLLOW = 0x100 ++) ++ ++type PollFd struct { ++ Fd int32 ++ Events int16 ++ Revents int16 ++} ++ ++const ( ++ POLLIN = 0x1 ++ POLLPRI = 0x2 ++ POLLOUT = 0x4 ++ POLLRDHUP = 0x2000 ++ POLLERR = 0x8 ++ POLLHUP = 0x10 ++ POLLNVAL = 0x20 ++) ++ ++type Sigset_t struct { ++ X__val [32]uint32 ++} ++ ++const _SC_PAGESIZE = 0x1e ++ ++type Termios struct { ++ Iflag uint32 ++ Oflag uint32 ++ Cflag uint32 ++ Lflag uint32 ++ Line uint8 ++ Cc [23]uint8 ++ Ispeed uint32 ++ Ospeed uint32 ++} +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +new file mode 100644 +index 0000000..88538cb +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +@@ -0,0 +1,660 @@ ++// +build ppc64,linux ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs types_linux.go ++ ++package unix ++ ++const ( ++ sizeofPtr = 0x8 ++ sizeofShort = 0x2 ++ sizeofInt = 0x4 ++ sizeofLong = 0x8 ++ sizeofLongLong = 0x8 ++ PathMax = 0x1000 ++) ++ ++type ( ++ _C_short int16 ++ _C_int int32 ++ _C_long int64 ++ _C_long_long int64 ++) ++ ++type Timespec struct { ++ Sec int64 ++ Nsec int64 ++} ++ ++type Timeval struct { ++ Sec int64 ++ Usec int64 ++} ++ ++type Timex struct { ++ Modes uint32 ++ Pad_cgo_0 [4]byte ++ Offset int64 ++ Freq int64 ++ Maxerror int64 ++ Esterror int64 ++ Status int32 ++ Pad_cgo_1 [4]byte ++ Constant int64 ++ Precision int64 ++ Tolerance int64 ++ Time Timeval ++ Tick int64 ++ Ppsfreq int64 ++ Jitter int64 ++ Shift int32 ++ Pad_cgo_2 [4]byte ++ Stabil int64 ++ Jitcnt int64 ++ Calcnt int64 ++ Errcnt int64 ++ Stbcnt int64 ++ Tai int32 ++ Pad_cgo_3 [44]byte ++} ++ ++type Time_t int64 ++ ++type Tms struct { ++ Utime int64 ++ Stime int64 ++ Cutime int64 ++ Cstime int64 ++} ++ ++type Utimbuf struct { ++ Actime int64 ++ Modtime int64 ++} ++ ++type Rusage struct { ++ Utime Timeval ++ Stime Timeval ++ Maxrss int64 ++ Ixrss int64 ++ Idrss int64 ++ Isrss int64 ++ Minflt int64 ++ Majflt int64 ++ Nswap int64 ++ Inblock int64 ++ Oublock int64 ++ Msgsnd int64 ++ Msgrcv int64 ++ Nsignals int64 ++ Nvcsw int64 ++ Nivcsw int64 ++} ++ ++type Rlimit struct { ++ Cur uint64 ++ Max uint64 ++} ++ ++type _Gid_t uint32 ++ ++type Stat_t struct { ++ Dev uint64 ++ Ino uint64 ++ Nlink uint64 ++ Mode uint32 ++ Uid uint32 ++ Gid uint32 ++ X__pad2 int32 ++ Rdev uint64 ++ Size int64 ++ Blksize int64 ++ Blocks int64 ++ Atim Timespec ++ Mtim Timespec ++ Ctim Timespec ++ X__glibc_reserved4 uint64 ++ X__glibc_reserved5 uint64 ++ X__glibc_reserved6 uint64 ++} ++ ++type Statfs_t struct { ++ Type int64 ++ Bsize int64 ++ Blocks uint64 ++ Bfree uint64 ++ Bavail uint64 ++ Files uint64 ++ Ffree uint64 ++ Fsid Fsid ++ Namelen int64 ++ Frsize int64 ++ Flags int64 ++ Spare [4]int64 ++} ++ ++type Dirent struct { ++ Ino uint64 ++ Off int64 ++ Reclen uint16 ++ Type uint8 ++ Name [256]uint8 ++ Pad_cgo_0 [5]byte ++} ++ ++type Fsid struct { ++ X__val [2]int32 ++} ++ ++type Flock_t struct { ++ Type int16 ++ Whence int16 ++ Pad_cgo_0 [4]byte ++ Start int64 ++ Len int64 ++ Pid int32 ++ Pad_cgo_1 [4]byte ++} ++ ++const ( ++ FADV_NORMAL = 0x0 ++ FADV_RANDOM = 0x1 ++ FADV_SEQUENTIAL = 0x2 ++ FADV_WILLNEED = 0x3 ++ FADV_DONTNEED = 0x4 ++ FADV_NOREUSE = 0x5 ++) ++ ++type RawSockaddrInet4 struct { ++ Family uint16 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]uint8 ++} ++ ++type RawSockaddrInet6 struct { ++ Family uint16 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++} ++ ++type RawSockaddrUnix struct { ++ Family uint16 ++ Path [108]int8 ++} ++ ++type RawSockaddrLinklayer struct { ++ Family uint16 ++ Protocol uint16 ++ Ifindex int32 ++ Hatype uint16 ++ Pkttype uint8 ++ Halen uint8 ++ Addr [8]uint8 ++} ++ ++type RawSockaddrNetlink struct { ++ Family uint16 ++ Pad uint16 ++ Pid uint32 ++ Groups uint32 ++} ++ ++type RawSockaddrHCI struct { ++ Family uint16 ++ Dev uint16 ++ Channel uint16 ++} ++ ++type RawSockaddrCAN struct { ++ Family uint16 ++ Pad_cgo_0 [2]byte ++ Ifindex int32 ++ Addr [8]byte ++} ++ ++type RawSockaddrALG struct { ++ Family uint16 ++ Type [14]uint8 ++ Feat uint32 ++ Mask uint32 ++ Name [64]uint8 ++} ++ ++type RawSockaddrVM struct { ++ Family uint16 ++ Reserved1 uint16 ++ Port uint32 ++ Cid uint32 ++ Zero [4]uint8 ++} ++ ++type RawSockaddr struct { ++ Family uint16 ++ Data [14]uint8 ++} ++ ++type RawSockaddrAny struct { ++ Addr RawSockaddr ++ Pad [96]uint8 ++} ++ ++type _Socklen uint32 ++ ++type Linger struct { ++ Onoff int32 ++ Linger int32 ++} ++ ++type Iovec struct { ++ Base *byte ++ Len uint64 ++} ++ ++type IPMreq struct { ++ Multiaddr [4]byte /* in_addr */ ++ Interface [4]byte /* in_addr */ ++} ++ ++type IPMreqn struct { ++ Multiaddr [4]byte /* in_addr */ ++ Address [4]byte /* in_addr */ ++ Ifindex int32 ++} ++ ++type IPv6Mreq struct { ++ Multiaddr [16]byte /* in6_addr */ ++ Interface uint32 ++} ++ ++type Msghdr struct { ++ Name *byte ++ Namelen uint32 ++ Pad_cgo_0 [4]byte ++ Iov *Iovec ++ Iovlen uint64 ++ Control *byte ++ Controllen uint64 ++ Flags int32 ++ Pad_cgo_1 [4]byte ++} ++ ++type Cmsghdr struct { ++ Len uint64 ++ Level int32 ++ Type int32 ++ X__cmsg_data [0]uint8 ++} ++ ++type Inet4Pktinfo struct { ++ Ifindex int32 ++ Spec_dst [4]byte /* in_addr */ ++ Addr [4]byte /* in_addr */ ++} ++ ++type Inet6Pktinfo struct { ++ Addr [16]byte /* in6_addr */ ++ Ifindex uint32 ++} ++ ++type IPv6MTUInfo struct { ++ Addr RawSockaddrInet6 ++ Mtu uint32 ++} ++ ++type ICMPv6Filter struct { ++ Data [8]uint32 ++} ++ ++type Ucred struct { ++ Pid int32 ++ Uid uint32 ++ Gid uint32 ++} ++ ++type TCPInfo struct { ++ State uint8 ++ Ca_state uint8 ++ Retransmits uint8 ++ Probes uint8 ++ Backoff uint8 ++ Options uint8 ++ Pad_cgo_0 [2]byte ++ Rto uint32 ++ Ato uint32 ++ Snd_mss uint32 ++ Rcv_mss uint32 ++ Unacked uint32 ++ Sacked uint32 ++ Lost uint32 ++ Retrans uint32 ++ Fackets uint32 ++ Last_data_sent uint32 ++ Last_ack_sent uint32 ++ Last_data_recv uint32 ++ Last_ack_recv uint32 ++ Pmtu uint32 ++ Rcv_ssthresh uint32 ++ Rtt uint32 ++ Rttvar uint32 ++ Snd_ssthresh uint32 ++ Snd_cwnd uint32 ++ Advmss uint32 ++ Reordering uint32 ++ Rcv_rtt uint32 ++ Rcv_space uint32 ++ Total_retrans uint32 ++} ++ ++const ( ++ SizeofSockaddrInet4 = 0x10 ++ SizeofSockaddrInet6 = 0x1c ++ SizeofSockaddrAny = 0x70 ++ SizeofSockaddrUnix = 0x6e ++ SizeofSockaddrLinklayer = 0x14 ++ SizeofSockaddrNetlink = 0xc ++ SizeofSockaddrHCI = 0x6 ++ SizeofSockaddrCAN = 0x10 ++ SizeofSockaddrALG = 0x58 ++ SizeofSockaddrVM = 0x10 ++ SizeofLinger = 0x8 ++ SizeofIPMreq = 0x8 ++ SizeofIPMreqn = 0xc ++ SizeofIPv6Mreq = 0x14 ++ SizeofMsghdr = 0x38 ++ SizeofCmsghdr = 0x10 ++ SizeofInet4Pktinfo = 0xc ++ SizeofInet6Pktinfo = 0x14 ++ SizeofIPv6MTUInfo = 0x20 ++ SizeofICMPv6Filter = 0x20 ++ SizeofUcred = 0xc ++ SizeofTCPInfo = 0x68 ++) ++ ++const ( ++ IFA_UNSPEC = 0x0 ++ IFA_ADDRESS = 0x1 ++ IFA_LOCAL = 0x2 ++ IFA_LABEL = 0x3 ++ IFA_BROADCAST = 0x4 ++ IFA_ANYCAST = 0x5 ++ IFA_CACHEINFO = 0x6 ++ IFA_MULTICAST = 0x7 ++ IFLA_UNSPEC = 0x0 ++ IFLA_ADDRESS = 0x1 ++ IFLA_BROADCAST = 0x2 ++ IFLA_IFNAME = 0x3 ++ IFLA_MTU = 0x4 ++ IFLA_LINK = 0x5 ++ IFLA_QDISC = 0x6 ++ IFLA_STATS = 0x7 ++ IFLA_COST = 0x8 ++ IFLA_PRIORITY = 0x9 ++ IFLA_MASTER = 0xa ++ IFLA_WIRELESS = 0xb ++ IFLA_PROTINFO = 0xc ++ IFLA_TXQLEN = 0xd ++ IFLA_MAP = 0xe ++ IFLA_WEIGHT = 0xf ++ IFLA_OPERSTATE = 0x10 ++ IFLA_LINKMODE = 0x11 ++ IFLA_LINKINFO = 0x12 ++ IFLA_NET_NS_PID = 0x13 ++ IFLA_IFALIAS = 0x14 ++ IFLA_MAX = 0x23 ++ RT_SCOPE_UNIVERSE = 0x0 ++ RT_SCOPE_SITE = 0xc8 ++ RT_SCOPE_LINK = 0xfd ++ RT_SCOPE_HOST = 0xfe ++ RT_SCOPE_NOWHERE = 0xff ++ RT_TABLE_UNSPEC = 0x0 ++ RT_TABLE_COMPAT = 0xfc ++ RT_TABLE_DEFAULT = 0xfd ++ RT_TABLE_MAIN = 0xfe ++ RT_TABLE_LOCAL = 0xff ++ RT_TABLE_MAX = 0xffffffff ++ RTA_UNSPEC = 0x0 ++ RTA_DST = 0x1 ++ RTA_SRC = 0x2 ++ RTA_IIF = 0x3 ++ RTA_OIF = 0x4 ++ RTA_GATEWAY = 0x5 ++ RTA_PRIORITY = 0x6 ++ RTA_PREFSRC = 0x7 ++ RTA_METRICS = 0x8 ++ RTA_MULTIPATH = 0x9 ++ RTA_FLOW = 0xb ++ RTA_CACHEINFO = 0xc ++ RTA_TABLE = 0xf ++ RTN_UNSPEC = 0x0 ++ RTN_UNICAST = 0x1 ++ RTN_LOCAL = 0x2 ++ RTN_BROADCAST = 0x3 ++ RTN_ANYCAST = 0x4 ++ RTN_MULTICAST = 0x5 ++ RTN_BLACKHOLE = 0x6 ++ RTN_UNREACHABLE = 0x7 ++ RTN_PROHIBIT = 0x8 ++ RTN_THROW = 0x9 ++ RTN_NAT = 0xa ++ RTN_XRESOLVE = 0xb ++ RTNLGRP_NONE = 0x0 ++ RTNLGRP_LINK = 0x1 ++ RTNLGRP_NOTIFY = 0x2 ++ RTNLGRP_NEIGH = 0x3 ++ RTNLGRP_TC = 0x4 ++ RTNLGRP_IPV4_IFADDR = 0x5 ++ RTNLGRP_IPV4_MROUTE = 0x6 ++ RTNLGRP_IPV4_ROUTE = 0x7 ++ RTNLGRP_IPV4_RULE = 0x8 ++ RTNLGRP_IPV6_IFADDR = 0x9 ++ RTNLGRP_IPV6_MROUTE = 0xa ++ RTNLGRP_IPV6_ROUTE = 0xb ++ RTNLGRP_IPV6_IFINFO = 0xc ++ RTNLGRP_IPV6_PREFIX = 0x12 ++ RTNLGRP_IPV6_RULE = 0x13 ++ RTNLGRP_ND_USEROPT = 0x14 ++ SizeofNlMsghdr = 0x10 ++ SizeofNlMsgerr = 0x14 ++ SizeofRtGenmsg = 0x1 ++ SizeofNlAttr = 0x4 ++ SizeofRtAttr = 0x4 ++ SizeofIfInfomsg = 0x10 ++ SizeofIfAddrmsg = 0x8 ++ SizeofRtMsg = 0xc ++ SizeofRtNexthop = 0x8 ++) ++ ++type NlMsghdr struct { ++ Len uint32 ++ Type uint16 ++ Flags uint16 ++ Seq uint32 ++ Pid uint32 ++} ++ ++type NlMsgerr struct { ++ Error int32 ++ Msg NlMsghdr ++} ++ ++type RtGenmsg struct { ++ Family uint8 ++} ++ ++type NlAttr struct { ++ Len uint16 ++ Type uint16 ++} ++ ++type RtAttr struct { ++ Len uint16 ++ Type uint16 ++} ++ ++type IfInfomsg struct { ++ Family uint8 ++ X__ifi_pad uint8 ++ Type uint16 ++ Index int32 ++ Flags uint32 ++ Change uint32 ++} ++ ++type IfAddrmsg struct { ++ Family uint8 ++ Prefixlen uint8 ++ Flags uint8 ++ Scope uint8 ++ Index uint32 ++} ++ ++type RtMsg struct { ++ Family uint8 ++ Dst_len uint8 ++ Src_len uint8 ++ Tos uint8 ++ Table uint8 ++ Protocol uint8 ++ Scope uint8 ++ Type uint8 ++ Flags uint32 ++} ++ ++type RtNexthop struct { ++ Len uint16 ++ Flags uint8 ++ Hops uint8 ++ Ifindex int32 ++} ++ ++const ( ++ SizeofSockFilter = 0x8 ++ SizeofSockFprog = 0x10 ++) ++ ++type SockFilter struct { ++ Code uint16 ++ Jt uint8 ++ Jf uint8 ++ K uint32 ++} ++ ++type SockFprog struct { ++ Len uint16 ++ Pad_cgo_0 [6]byte ++ Filter *SockFilter ++} ++ ++type InotifyEvent struct { ++ Wd int32 ++ Mask uint32 ++ Cookie uint32 ++ Len uint32 ++ Name [0]uint8 ++} ++ ++const SizeofInotifyEvent = 0x10 ++ ++type PtraceRegs struct { ++ Gpr [32]uint64 ++ Nip uint64 ++ Msr uint64 ++ Orig_gpr3 uint64 ++ Ctr uint64 ++ Link uint64 ++ Xer uint64 ++ Ccr uint64 ++ Softe uint64 ++ Trap uint64 ++ Dar uint64 ++ Dsisr uint64 ++ Result uint64 ++} ++ ++type FdSet struct { ++ Bits [16]int64 ++} ++ ++type Sysinfo_t struct { ++ Uptime int64 ++ Loads [3]uint64 ++ Totalram uint64 ++ Freeram uint64 ++ Sharedram uint64 ++ Bufferram uint64 ++ Totalswap uint64 ++ Freeswap uint64 ++ Procs uint16 ++ Pad uint16 ++ Pad_cgo_0 [4]byte ++ Totalhigh uint64 ++ Freehigh uint64 ++ Unit uint32 ++ X_f [0]uint8 ++ Pad_cgo_1 [4]byte ++} ++ ++type Utsname struct { ++ Sysname [65]uint8 ++ Nodename [65]uint8 ++ Release [65]uint8 ++ Version [65]uint8 ++ Machine [65]uint8 ++ Domainname [65]uint8 ++} ++ ++type Ustat_t struct { ++ Tfree int32 ++ Pad_cgo_0 [4]byte ++ Tinode uint64 ++ Fname [6]uint8 ++ Fpack [6]uint8 ++ Pad_cgo_1 [4]byte ++} ++ ++type EpollEvent struct { ++ Events uint32 ++ X_padFd int32 ++ Fd int32 ++ Pad int32 ++} ++ ++const ( ++ AT_FDCWD = -0x64 ++ AT_REMOVEDIR = 0x200 ++ AT_SYMLINK_FOLLOW = 0x400 ++ AT_SYMLINK_NOFOLLOW = 0x100 ++) ++ ++type PollFd struct { ++ Fd int32 ++ Events int16 ++ Revents int16 ++} ++ ++const ( ++ POLLIN = 0x1 ++ POLLPRI = 0x2 ++ POLLOUT = 0x4 ++ POLLRDHUP = 0x2000 ++ POLLERR = 0x8 ++ POLLHUP = 0x10 ++ POLLNVAL = 0x20 ++) ++ ++type Sigset_t struct { ++ X__val [16]uint64 ++} ++ ++type Termios struct { ++ Iflag uint32 ++ Oflag uint32 ++ Cflag uint32 ++ Lflag uint32 ++ Cc [19]uint8 ++ Line uint8 ++ Ispeed uint32 ++ Ospeed uint32 ++} +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +new file mode 100644 +index 0000000..2f63bc0 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +@@ -0,0 +1,660 @@ ++// +build ppc64le,linux ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs types_linux.go ++ ++package unix ++ ++const ( ++ sizeofPtr = 0x8 ++ sizeofShort = 0x2 ++ sizeofInt = 0x4 ++ sizeofLong = 0x8 ++ sizeofLongLong = 0x8 ++ PathMax = 0x1000 ++) ++ ++type ( ++ _C_short int16 ++ _C_int int32 ++ _C_long int64 ++ _C_long_long int64 ++) ++ ++type Timespec struct { ++ Sec int64 ++ Nsec int64 ++} ++ ++type Timeval struct { ++ Sec int64 ++ Usec int64 ++} ++ ++type Timex struct { ++ Modes uint32 ++ Pad_cgo_0 [4]byte ++ Offset int64 ++ Freq int64 ++ Maxerror int64 ++ Esterror int64 ++ Status int32 ++ Pad_cgo_1 [4]byte ++ Constant int64 ++ Precision int64 ++ Tolerance int64 ++ Time Timeval ++ Tick int64 ++ Ppsfreq int64 ++ Jitter int64 ++ Shift int32 ++ Pad_cgo_2 [4]byte ++ Stabil int64 ++ Jitcnt int64 ++ Calcnt int64 ++ Errcnt int64 ++ Stbcnt int64 ++ Tai int32 ++ Pad_cgo_3 [44]byte ++} ++ ++type Time_t int64 ++ ++type Tms struct { ++ Utime int64 ++ Stime int64 ++ Cutime int64 ++ Cstime int64 ++} ++ ++type Utimbuf struct { ++ Actime int64 ++ Modtime int64 ++} ++ ++type Rusage struct { ++ Utime Timeval ++ Stime Timeval ++ Maxrss int64 ++ Ixrss int64 ++ Idrss int64 ++ Isrss int64 ++ Minflt int64 ++ Majflt int64 ++ Nswap int64 ++ Inblock int64 ++ Oublock int64 ++ Msgsnd int64 ++ Msgrcv int64 ++ Nsignals int64 ++ Nvcsw int64 ++ Nivcsw int64 ++} ++ ++type Rlimit struct { ++ Cur uint64 ++ Max uint64 ++} ++ ++type _Gid_t uint32 ++ ++type Stat_t struct { ++ Dev uint64 ++ Ino uint64 ++ Nlink uint64 ++ Mode uint32 ++ Uid uint32 ++ Gid uint32 ++ X__pad2 int32 ++ Rdev uint64 ++ Size int64 ++ Blksize int64 ++ Blocks int64 ++ Atim Timespec ++ Mtim Timespec ++ Ctim Timespec ++ X__glibc_reserved4 uint64 ++ X__glibc_reserved5 uint64 ++ X__glibc_reserved6 uint64 ++} ++ ++type Statfs_t struct { ++ Type int64 ++ Bsize int64 ++ Blocks uint64 ++ Bfree uint64 ++ Bavail uint64 ++ Files uint64 ++ Ffree uint64 ++ Fsid Fsid ++ Namelen int64 ++ Frsize int64 ++ Flags int64 ++ Spare [4]int64 ++} ++ ++type Dirent struct { ++ Ino uint64 ++ Off int64 ++ Reclen uint16 ++ Type uint8 ++ Name [256]uint8 ++ Pad_cgo_0 [5]byte ++} ++ ++type Fsid struct { ++ X__val [2]int32 ++} ++ ++type Flock_t struct { ++ Type int16 ++ Whence int16 ++ Pad_cgo_0 [4]byte ++ Start int64 ++ Len int64 ++ Pid int32 ++ Pad_cgo_1 [4]byte ++} ++ ++const ( ++ FADV_NORMAL = 0x0 ++ FADV_RANDOM = 0x1 ++ FADV_SEQUENTIAL = 0x2 ++ FADV_WILLNEED = 0x3 ++ FADV_DONTNEED = 0x4 ++ FADV_NOREUSE = 0x5 ++) ++ ++type RawSockaddrInet4 struct { ++ Family uint16 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]uint8 ++} ++ ++type RawSockaddrInet6 struct { ++ Family uint16 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++} ++ ++type RawSockaddrUnix struct { ++ Family uint16 ++ Path [108]int8 ++} ++ ++type RawSockaddrLinklayer struct { ++ Family uint16 ++ Protocol uint16 ++ Ifindex int32 ++ Hatype uint16 ++ Pkttype uint8 ++ Halen uint8 ++ Addr [8]uint8 ++} ++ ++type RawSockaddrNetlink struct { ++ Family uint16 ++ Pad uint16 ++ Pid uint32 ++ Groups uint32 ++} ++ ++type RawSockaddrHCI struct { ++ Family uint16 ++ Dev uint16 ++ Channel uint16 ++} ++ ++type RawSockaddrCAN struct { ++ Family uint16 ++ Pad_cgo_0 [2]byte ++ Ifindex int32 ++ Addr [8]byte ++} ++ ++type RawSockaddrALG struct { ++ Family uint16 ++ Type [14]uint8 ++ Feat uint32 ++ Mask uint32 ++ Name [64]uint8 ++} ++ ++type RawSockaddrVM struct { ++ Family uint16 ++ Reserved1 uint16 ++ Port uint32 ++ Cid uint32 ++ Zero [4]uint8 ++} ++ ++type RawSockaddr struct { ++ Family uint16 ++ Data [14]uint8 ++} ++ ++type RawSockaddrAny struct { ++ Addr RawSockaddr ++ Pad [96]uint8 ++} ++ ++type _Socklen uint32 ++ ++type Linger struct { ++ Onoff int32 ++ Linger int32 ++} ++ ++type Iovec struct { ++ Base *byte ++ Len uint64 ++} ++ ++type IPMreq struct { ++ Multiaddr [4]byte /* in_addr */ ++ Interface [4]byte /* in_addr */ ++} ++ ++type IPMreqn struct { ++ Multiaddr [4]byte /* in_addr */ ++ Address [4]byte /* in_addr */ ++ Ifindex int32 ++} ++ ++type IPv6Mreq struct { ++ Multiaddr [16]byte /* in6_addr */ ++ Interface uint32 ++} ++ ++type Msghdr struct { ++ Name *byte ++ Namelen uint32 ++ Pad_cgo_0 [4]byte ++ Iov *Iovec ++ Iovlen uint64 ++ Control *byte ++ Controllen uint64 ++ Flags int32 ++ Pad_cgo_1 [4]byte ++} ++ ++type Cmsghdr struct { ++ Len uint64 ++ Level int32 ++ Type int32 ++ X__cmsg_data [0]uint8 ++} ++ ++type Inet4Pktinfo struct { ++ Ifindex int32 ++ Spec_dst [4]byte /* in_addr */ ++ Addr [4]byte /* in_addr */ ++} ++ ++type Inet6Pktinfo struct { ++ Addr [16]byte /* in6_addr */ ++ Ifindex uint32 ++} ++ ++type IPv6MTUInfo struct { ++ Addr RawSockaddrInet6 ++ Mtu uint32 ++} ++ ++type ICMPv6Filter struct { ++ Data [8]uint32 ++} ++ ++type Ucred struct { ++ Pid int32 ++ Uid uint32 ++ Gid uint32 ++} ++ ++type TCPInfo struct { ++ State uint8 ++ Ca_state uint8 ++ Retransmits uint8 ++ Probes uint8 ++ Backoff uint8 ++ Options uint8 ++ Pad_cgo_0 [2]byte ++ Rto uint32 ++ Ato uint32 ++ Snd_mss uint32 ++ Rcv_mss uint32 ++ Unacked uint32 ++ Sacked uint32 ++ Lost uint32 ++ Retrans uint32 ++ Fackets uint32 ++ Last_data_sent uint32 ++ Last_ack_sent uint32 ++ Last_data_recv uint32 ++ Last_ack_recv uint32 ++ Pmtu uint32 ++ Rcv_ssthresh uint32 ++ Rtt uint32 ++ Rttvar uint32 ++ Snd_ssthresh uint32 ++ Snd_cwnd uint32 ++ Advmss uint32 ++ Reordering uint32 ++ Rcv_rtt uint32 ++ Rcv_space uint32 ++ Total_retrans uint32 ++} ++ ++const ( ++ SizeofSockaddrInet4 = 0x10 ++ SizeofSockaddrInet6 = 0x1c ++ SizeofSockaddrAny = 0x70 ++ SizeofSockaddrUnix = 0x6e ++ SizeofSockaddrLinklayer = 0x14 ++ SizeofSockaddrNetlink = 0xc ++ SizeofSockaddrHCI = 0x6 ++ SizeofSockaddrCAN = 0x10 ++ SizeofSockaddrALG = 0x58 ++ SizeofSockaddrVM = 0x10 ++ SizeofLinger = 0x8 ++ SizeofIPMreq = 0x8 ++ SizeofIPMreqn = 0xc ++ SizeofIPv6Mreq = 0x14 ++ SizeofMsghdr = 0x38 ++ SizeofCmsghdr = 0x10 ++ SizeofInet4Pktinfo = 0xc ++ SizeofInet6Pktinfo = 0x14 ++ SizeofIPv6MTUInfo = 0x20 ++ SizeofICMPv6Filter = 0x20 ++ SizeofUcred = 0xc ++ SizeofTCPInfo = 0x68 ++) ++ ++const ( ++ IFA_UNSPEC = 0x0 ++ IFA_ADDRESS = 0x1 ++ IFA_LOCAL = 0x2 ++ IFA_LABEL = 0x3 ++ IFA_BROADCAST = 0x4 ++ IFA_ANYCAST = 0x5 ++ IFA_CACHEINFO = 0x6 ++ IFA_MULTICAST = 0x7 ++ IFLA_UNSPEC = 0x0 ++ IFLA_ADDRESS = 0x1 ++ IFLA_BROADCAST = 0x2 ++ IFLA_IFNAME = 0x3 ++ IFLA_MTU = 0x4 ++ IFLA_LINK = 0x5 ++ IFLA_QDISC = 0x6 ++ IFLA_STATS = 0x7 ++ IFLA_COST = 0x8 ++ IFLA_PRIORITY = 0x9 ++ IFLA_MASTER = 0xa ++ IFLA_WIRELESS = 0xb ++ IFLA_PROTINFO = 0xc ++ IFLA_TXQLEN = 0xd ++ IFLA_MAP = 0xe ++ IFLA_WEIGHT = 0xf ++ IFLA_OPERSTATE = 0x10 ++ IFLA_LINKMODE = 0x11 ++ IFLA_LINKINFO = 0x12 ++ IFLA_NET_NS_PID = 0x13 ++ IFLA_IFALIAS = 0x14 ++ IFLA_MAX = 0x22 ++ RT_SCOPE_UNIVERSE = 0x0 ++ RT_SCOPE_SITE = 0xc8 ++ RT_SCOPE_LINK = 0xfd ++ RT_SCOPE_HOST = 0xfe ++ RT_SCOPE_NOWHERE = 0xff ++ RT_TABLE_UNSPEC = 0x0 ++ RT_TABLE_COMPAT = 0xfc ++ RT_TABLE_DEFAULT = 0xfd ++ RT_TABLE_MAIN = 0xfe ++ RT_TABLE_LOCAL = 0xff ++ RT_TABLE_MAX = 0xffffffff ++ RTA_UNSPEC = 0x0 ++ RTA_DST = 0x1 ++ RTA_SRC = 0x2 ++ RTA_IIF = 0x3 ++ RTA_OIF = 0x4 ++ RTA_GATEWAY = 0x5 ++ RTA_PRIORITY = 0x6 ++ RTA_PREFSRC = 0x7 ++ RTA_METRICS = 0x8 ++ RTA_MULTIPATH = 0x9 ++ RTA_FLOW = 0xb ++ RTA_CACHEINFO = 0xc ++ RTA_TABLE = 0xf ++ RTN_UNSPEC = 0x0 ++ RTN_UNICAST = 0x1 ++ RTN_LOCAL = 0x2 ++ RTN_BROADCAST = 0x3 ++ RTN_ANYCAST = 0x4 ++ RTN_MULTICAST = 0x5 ++ RTN_BLACKHOLE = 0x6 ++ RTN_UNREACHABLE = 0x7 ++ RTN_PROHIBIT = 0x8 ++ RTN_THROW = 0x9 ++ RTN_NAT = 0xa ++ RTN_XRESOLVE = 0xb ++ RTNLGRP_NONE = 0x0 ++ RTNLGRP_LINK = 0x1 ++ RTNLGRP_NOTIFY = 0x2 ++ RTNLGRP_NEIGH = 0x3 ++ RTNLGRP_TC = 0x4 ++ RTNLGRP_IPV4_IFADDR = 0x5 ++ RTNLGRP_IPV4_MROUTE = 0x6 ++ RTNLGRP_IPV4_ROUTE = 0x7 ++ RTNLGRP_IPV4_RULE = 0x8 ++ RTNLGRP_IPV6_IFADDR = 0x9 ++ RTNLGRP_IPV6_MROUTE = 0xa ++ RTNLGRP_IPV6_ROUTE = 0xb ++ RTNLGRP_IPV6_IFINFO = 0xc ++ RTNLGRP_IPV6_PREFIX = 0x12 ++ RTNLGRP_IPV6_RULE = 0x13 ++ RTNLGRP_ND_USEROPT = 0x14 ++ SizeofNlMsghdr = 0x10 ++ SizeofNlMsgerr = 0x14 ++ SizeofRtGenmsg = 0x1 ++ SizeofNlAttr = 0x4 ++ SizeofRtAttr = 0x4 ++ SizeofIfInfomsg = 0x10 ++ SizeofIfAddrmsg = 0x8 ++ SizeofRtMsg = 0xc ++ SizeofRtNexthop = 0x8 ++) ++ ++type NlMsghdr struct { ++ Len uint32 ++ Type uint16 ++ Flags uint16 ++ Seq uint32 ++ Pid uint32 ++} ++ ++type NlMsgerr struct { ++ Error int32 ++ Msg NlMsghdr ++} ++ ++type RtGenmsg struct { ++ Family uint8 ++} ++ ++type NlAttr struct { ++ Len uint16 ++ Type uint16 ++} ++ ++type RtAttr struct { ++ Len uint16 ++ Type uint16 ++} ++ ++type IfInfomsg struct { ++ Family uint8 ++ X__ifi_pad uint8 ++ Type uint16 ++ Index int32 ++ Flags uint32 ++ Change uint32 ++} ++ ++type IfAddrmsg struct { ++ Family uint8 ++ Prefixlen uint8 ++ Flags uint8 ++ Scope uint8 ++ Index uint32 ++} ++ ++type RtMsg struct { ++ Family uint8 ++ Dst_len uint8 ++ Src_len uint8 ++ Tos uint8 ++ Table uint8 ++ Protocol uint8 ++ Scope uint8 ++ Type uint8 ++ Flags uint32 ++} ++ ++type RtNexthop struct { ++ Len uint16 ++ Flags uint8 ++ Hops uint8 ++ Ifindex int32 ++} ++ ++const ( ++ SizeofSockFilter = 0x8 ++ SizeofSockFprog = 0x10 ++) ++ ++type SockFilter struct { ++ Code uint16 ++ Jt uint8 ++ Jf uint8 ++ K uint32 ++} ++ ++type SockFprog struct { ++ Len uint16 ++ Pad_cgo_0 [6]byte ++ Filter *SockFilter ++} ++ ++type InotifyEvent struct { ++ Wd int32 ++ Mask uint32 ++ Cookie uint32 ++ Len uint32 ++ Name [0]uint8 ++} ++ ++const SizeofInotifyEvent = 0x10 ++ ++type PtraceRegs struct { ++ Gpr [32]uint64 ++ Nip uint64 ++ Msr uint64 ++ Orig_gpr3 uint64 ++ Ctr uint64 ++ Link uint64 ++ Xer uint64 ++ Ccr uint64 ++ Softe uint64 ++ Trap uint64 ++ Dar uint64 ++ Dsisr uint64 ++ Result uint64 ++} ++ ++type FdSet struct { ++ Bits [16]int64 ++} ++ ++type Sysinfo_t struct { ++ Uptime int64 ++ Loads [3]uint64 ++ Totalram uint64 ++ Freeram uint64 ++ Sharedram uint64 ++ Bufferram uint64 ++ Totalswap uint64 ++ Freeswap uint64 ++ Procs uint16 ++ Pad uint16 ++ Pad_cgo_0 [4]byte ++ Totalhigh uint64 ++ Freehigh uint64 ++ Unit uint32 ++ X_f [0]uint8 ++ Pad_cgo_1 [4]byte ++} ++ ++type Utsname struct { ++ Sysname [65]uint8 ++ Nodename [65]uint8 ++ Release [65]uint8 ++ Version [65]uint8 ++ Machine [65]uint8 ++ Domainname [65]uint8 ++} ++ ++type Ustat_t struct { ++ Tfree int32 ++ Pad_cgo_0 [4]byte ++ Tinode uint64 ++ Fname [6]uint8 ++ Fpack [6]uint8 ++ Pad_cgo_1 [4]byte ++} ++ ++type EpollEvent struct { ++ Events uint32 ++ X_padFd int32 ++ Fd int32 ++ Pad int32 ++} ++ ++const ( ++ AT_FDCWD = -0x64 ++ AT_REMOVEDIR = 0x200 ++ AT_SYMLINK_FOLLOW = 0x400 ++ AT_SYMLINK_NOFOLLOW = 0x100 ++) ++ ++type PollFd struct { ++ Fd int32 ++ Events int16 ++ Revents int16 ++} ++ ++const ( ++ POLLIN = 0x1 ++ POLLPRI = 0x2 ++ POLLOUT = 0x4 ++ POLLRDHUP = 0x2000 ++ POLLERR = 0x8 ++ POLLHUP = 0x10 ++ POLLNVAL = 0x20 ++) ++ ++type Sigset_t struct { ++ X__val [16]uint64 ++} ++ ++type Termios struct { ++ Iflag uint32 ++ Oflag uint32 ++ Cflag uint32 ++ Lflag uint32 ++ Cc [19]uint8 ++ Line uint8 ++ Ispeed uint32 ++ Ospeed uint32 ++} +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +new file mode 100644 +index 0000000..2c5bb05 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +@@ -0,0 +1,675 @@ ++// +build s390x,linux ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs -- -fsigned-char types_linux.go ++ ++package unix ++ ++const ( ++ sizeofPtr = 0x8 ++ sizeofShort = 0x2 ++ sizeofInt = 0x4 ++ sizeofLong = 0x8 ++ sizeofLongLong = 0x8 ++ PathMax = 0x1000 ++) ++ ++type ( ++ _C_short int16 ++ _C_int int32 ++ _C_long int64 ++ _C_long_long int64 ++) ++ ++type Timespec struct { ++ Sec int64 ++ Nsec int64 ++} ++ ++type Timeval struct { ++ Sec int64 ++ Usec int64 ++} ++ ++type Timex struct { ++ Modes uint32 ++ _ [4]byte ++ Offset int64 ++ Freq int64 ++ Maxerror int64 ++ Esterror int64 ++ Status int32 ++ _ [4]byte ++ Constant int64 ++ Precision int64 ++ Tolerance int64 ++ Time Timeval ++ Tick int64 ++ Ppsfreq int64 ++ Jitter int64 ++ Shift int32 ++ _ [4]byte ++ Stabil int64 ++ Jitcnt int64 ++ Calcnt int64 ++ Errcnt int64 ++ Stbcnt int64 ++ Tai int32 ++ _ [44]byte ++} ++ ++type Time_t int64 ++ ++type Tms struct { ++ Utime int64 ++ Stime int64 ++ Cutime int64 ++ Cstime int64 ++} ++ ++type Utimbuf struct { ++ Actime int64 ++ Modtime int64 ++} ++ ++type Rusage struct { ++ Utime Timeval ++ Stime Timeval ++ Maxrss int64 ++ Ixrss int64 ++ Idrss int64 ++ Isrss int64 ++ Minflt int64 ++ Majflt int64 ++ Nswap int64 ++ Inblock int64 ++ Oublock int64 ++ Msgsnd int64 ++ Msgrcv int64 ++ Nsignals int64 ++ Nvcsw int64 ++ Nivcsw int64 ++} ++ ++type Rlimit struct { ++ Cur uint64 ++ Max uint64 ++} ++ ++type _Gid_t uint32 ++ ++type Stat_t struct { ++ Dev uint64 ++ Ino uint64 ++ Nlink uint64 ++ Mode uint32 ++ Uid uint32 ++ Gid uint32 ++ _ int32 ++ Rdev uint64 ++ Size int64 ++ Atim Timespec ++ Mtim Timespec ++ Ctim Timespec ++ Blksize int64 ++ Blocks int64 ++ _ [3]int64 ++} ++ ++type Statfs_t struct { ++ Type uint32 ++ Bsize uint32 ++ Blocks uint64 ++ Bfree uint64 ++ Bavail uint64 ++ Files uint64 ++ Ffree uint64 ++ Fsid Fsid ++ Namelen uint32 ++ Frsize uint32 ++ Flags uint32 ++ Spare [4]uint32 ++ _ [4]byte ++} ++ ++type Dirent struct { ++ Ino uint64 ++ Off int64 ++ Reclen uint16 ++ Type uint8 ++ Name [256]int8 ++ _ [5]byte ++} ++ ++type Fsid struct { ++ _ [2]int32 ++} ++ ++type Flock_t struct { ++ Type int16 ++ Whence int16 ++ _ [4]byte ++ Start int64 ++ Len int64 ++ Pid int32 ++ _ [4]byte ++} ++ ++const ( ++ FADV_NORMAL = 0x0 ++ FADV_RANDOM = 0x1 ++ FADV_SEQUENTIAL = 0x2 ++ FADV_WILLNEED = 0x3 ++ FADV_DONTNEED = 0x6 ++ FADV_NOREUSE = 0x7 ++) ++ ++type RawSockaddrInet4 struct { ++ Family uint16 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]uint8 ++} ++ ++type RawSockaddrInet6 struct { ++ Family uint16 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++} ++ ++type RawSockaddrUnix struct { ++ Family uint16 ++ Path [108]int8 ++} ++ ++type RawSockaddrLinklayer struct { ++ Family uint16 ++ Protocol uint16 ++ Ifindex int32 ++ Hatype uint16 ++ Pkttype uint8 ++ Halen uint8 ++ Addr [8]uint8 ++} ++ ++type RawSockaddrNetlink struct { ++ Family uint16 ++ Pad uint16 ++ Pid uint32 ++ Groups uint32 ++} ++ ++type RawSockaddrHCI struct { ++ Family uint16 ++ Dev uint16 ++ Channel uint16 ++} ++ ++type RawSockaddrCAN struct { ++ Family uint16 ++ Pad_cgo_0 [2]byte ++ Ifindex int32 ++ Addr [8]byte ++} ++ ++type RawSockaddrALG struct { ++ Family uint16 ++ Type [14]uint8 ++ Feat uint32 ++ Mask uint32 ++ Name [64]uint8 ++} ++ ++type RawSockaddrVM struct { ++ Family uint16 ++ Reserved1 uint16 ++ Port uint32 ++ Cid uint32 ++ Zero [4]uint8 ++} ++ ++type RawSockaddr struct { ++ Family uint16 ++ Data [14]int8 ++} ++ ++type RawSockaddrAny struct { ++ Addr RawSockaddr ++ Pad [96]int8 ++} ++ ++type _Socklen uint32 ++ ++type Linger struct { ++ Onoff int32 ++ Linger int32 ++} ++ ++type Iovec struct { ++ Base *byte ++ Len uint64 ++} ++ ++type IPMreq struct { ++ Multiaddr [4]byte /* in_addr */ ++ Interface [4]byte /* in_addr */ ++} ++ ++type IPMreqn struct { ++ Multiaddr [4]byte /* in_addr */ ++ Address [4]byte /* in_addr */ ++ Ifindex int32 ++} ++ ++type IPv6Mreq struct { ++ Multiaddr [16]byte /* in6_addr */ ++ Interface uint32 ++} ++ ++type Msghdr struct { ++ Name *byte ++ Namelen uint32 ++ _ [4]byte ++ Iov *Iovec ++ Iovlen uint64 ++ Control *byte ++ Controllen uint64 ++ Flags int32 ++ _ [4]byte ++} ++ ++type Cmsghdr struct { ++ Len uint64 ++ Level int32 ++ Type int32 ++} ++ ++type Inet4Pktinfo struct { ++ Ifindex int32 ++ Spec_dst [4]byte /* in_addr */ ++ Addr [4]byte /* in_addr */ ++} ++ ++type Inet6Pktinfo struct { ++ Addr [16]byte /* in6_addr */ ++ Ifindex uint32 ++} ++ ++type IPv6MTUInfo struct { ++ Addr RawSockaddrInet6 ++ Mtu uint32 ++} ++ ++type ICMPv6Filter struct { ++ Data [8]uint32 ++} ++ ++type Ucred struct { ++ Pid int32 ++ Uid uint32 ++ Gid uint32 ++} ++ ++type TCPInfo struct { ++ State uint8 ++ Ca_state uint8 ++ Retransmits uint8 ++ Probes uint8 ++ Backoff uint8 ++ Options uint8 ++ _ [2]byte ++ Rto uint32 ++ Ato uint32 ++ Snd_mss uint32 ++ Rcv_mss uint32 ++ Unacked uint32 ++ Sacked uint32 ++ Lost uint32 ++ Retrans uint32 ++ Fackets uint32 ++ Last_data_sent uint32 ++ Last_ack_sent uint32 ++ Last_data_recv uint32 ++ Last_ack_recv uint32 ++ Pmtu uint32 ++ Rcv_ssthresh uint32 ++ Rtt uint32 ++ Rttvar uint32 ++ Snd_ssthresh uint32 ++ Snd_cwnd uint32 ++ Advmss uint32 ++ Reordering uint32 ++ Rcv_rtt uint32 ++ Rcv_space uint32 ++ Total_retrans uint32 ++} ++ ++const ( ++ SizeofSockaddrInet4 = 0x10 ++ SizeofSockaddrInet6 = 0x1c ++ SizeofSockaddrAny = 0x70 ++ SizeofSockaddrUnix = 0x6e ++ SizeofSockaddrLinklayer = 0x14 ++ SizeofSockaddrNetlink = 0xc ++ SizeofSockaddrHCI = 0x6 ++ SizeofSockaddrCAN = 0x10 ++ SizeofSockaddrALG = 0x58 ++ SizeofSockaddrVM = 0x10 ++ SizeofLinger = 0x8 ++ SizeofIPMreq = 0x8 ++ SizeofIPMreqn = 0xc ++ SizeofIPv6Mreq = 0x14 ++ SizeofMsghdr = 0x38 ++ SizeofCmsghdr = 0x10 ++ SizeofInet4Pktinfo = 0xc ++ SizeofInet6Pktinfo = 0x14 ++ SizeofIPv6MTUInfo = 0x20 ++ SizeofICMPv6Filter = 0x20 ++ SizeofUcred = 0xc ++ SizeofTCPInfo = 0x68 ++) ++ ++const ( ++ IFA_UNSPEC = 0x0 ++ IFA_ADDRESS = 0x1 ++ IFA_LOCAL = 0x2 ++ IFA_LABEL = 0x3 ++ IFA_BROADCAST = 0x4 ++ IFA_ANYCAST = 0x5 ++ IFA_CACHEINFO = 0x6 ++ IFA_MULTICAST = 0x7 ++ IFLA_UNSPEC = 0x0 ++ IFLA_ADDRESS = 0x1 ++ IFLA_BROADCAST = 0x2 ++ IFLA_IFNAME = 0x3 ++ IFLA_MTU = 0x4 ++ IFLA_LINK = 0x5 ++ IFLA_QDISC = 0x6 ++ IFLA_STATS = 0x7 ++ IFLA_COST = 0x8 ++ IFLA_PRIORITY = 0x9 ++ IFLA_MASTER = 0xa ++ IFLA_WIRELESS = 0xb ++ IFLA_PROTINFO = 0xc ++ IFLA_TXQLEN = 0xd ++ IFLA_MAP = 0xe ++ IFLA_WEIGHT = 0xf ++ IFLA_OPERSTATE = 0x10 ++ IFLA_LINKMODE = 0x11 ++ IFLA_LINKINFO = 0x12 ++ IFLA_NET_NS_PID = 0x13 ++ IFLA_IFALIAS = 0x14 ++ IFLA_MAX = 0x27 ++ RT_SCOPE_UNIVERSE = 0x0 ++ RT_SCOPE_SITE = 0xc8 ++ RT_SCOPE_LINK = 0xfd ++ RT_SCOPE_HOST = 0xfe ++ RT_SCOPE_NOWHERE = 0xff ++ RT_TABLE_UNSPEC = 0x0 ++ RT_TABLE_COMPAT = 0xfc ++ RT_TABLE_DEFAULT = 0xfd ++ RT_TABLE_MAIN = 0xfe ++ RT_TABLE_LOCAL = 0xff ++ RT_TABLE_MAX = 0xffffffff ++ RTA_UNSPEC = 0x0 ++ RTA_DST = 0x1 ++ RTA_SRC = 0x2 ++ RTA_IIF = 0x3 ++ RTA_OIF = 0x4 ++ RTA_GATEWAY = 0x5 ++ RTA_PRIORITY = 0x6 ++ RTA_PREFSRC = 0x7 ++ RTA_METRICS = 0x8 ++ RTA_MULTIPATH = 0x9 ++ RTA_FLOW = 0xb ++ RTA_CACHEINFO = 0xc ++ RTA_TABLE = 0xf ++ RTN_UNSPEC = 0x0 ++ RTN_UNICAST = 0x1 ++ RTN_LOCAL = 0x2 ++ RTN_BROADCAST = 0x3 ++ RTN_ANYCAST = 0x4 ++ RTN_MULTICAST = 0x5 ++ RTN_BLACKHOLE = 0x6 ++ RTN_UNREACHABLE = 0x7 ++ RTN_PROHIBIT = 0x8 ++ RTN_THROW = 0x9 ++ RTN_NAT = 0xa ++ RTN_XRESOLVE = 0xb ++ RTNLGRP_NONE = 0x0 ++ RTNLGRP_LINK = 0x1 ++ RTNLGRP_NOTIFY = 0x2 ++ RTNLGRP_NEIGH = 0x3 ++ RTNLGRP_TC = 0x4 ++ RTNLGRP_IPV4_IFADDR = 0x5 ++ RTNLGRP_IPV4_MROUTE = 0x6 ++ RTNLGRP_IPV4_ROUTE = 0x7 ++ RTNLGRP_IPV4_RULE = 0x8 ++ RTNLGRP_IPV6_IFADDR = 0x9 ++ RTNLGRP_IPV6_MROUTE = 0xa ++ RTNLGRP_IPV6_ROUTE = 0xb ++ RTNLGRP_IPV6_IFINFO = 0xc ++ RTNLGRP_IPV6_PREFIX = 0x12 ++ RTNLGRP_IPV6_RULE = 0x13 ++ RTNLGRP_ND_USEROPT = 0x14 ++ SizeofNlMsghdr = 0x10 ++ SizeofNlMsgerr = 0x14 ++ SizeofRtGenmsg = 0x1 ++ SizeofNlAttr = 0x4 ++ SizeofRtAttr = 0x4 ++ SizeofIfInfomsg = 0x10 ++ SizeofIfAddrmsg = 0x8 ++ SizeofRtMsg = 0xc ++ SizeofRtNexthop = 0x8 ++) ++ ++type NlMsghdr struct { ++ Len uint32 ++ Type uint16 ++ Flags uint16 ++ Seq uint32 ++ Pid uint32 ++} ++ ++type NlMsgerr struct { ++ Error int32 ++ Msg NlMsghdr ++} ++ ++type RtGenmsg struct { ++ Family uint8 ++} ++ ++type NlAttr struct { ++ Len uint16 ++ Type uint16 ++} ++ ++type RtAttr struct { ++ Len uint16 ++ Type uint16 ++} ++ ++type IfInfomsg struct { ++ Family uint8 ++ _ uint8 ++ Type uint16 ++ Index int32 ++ Flags uint32 ++ Change uint32 ++} ++ ++type IfAddrmsg struct { ++ Family uint8 ++ Prefixlen uint8 ++ Flags uint8 ++ Scope uint8 ++ Index uint32 ++} ++ ++type RtMsg struct { ++ Family uint8 ++ Dst_len uint8 ++ Src_len uint8 ++ Tos uint8 ++ Table uint8 ++ Protocol uint8 ++ Scope uint8 ++ Type uint8 ++ Flags uint32 ++} ++ ++type RtNexthop struct { ++ Len uint16 ++ Flags uint8 ++ Hops uint8 ++ Ifindex int32 ++} ++ ++const ( ++ SizeofSockFilter = 0x8 ++ SizeofSockFprog = 0x10 ++) ++ ++type SockFilter struct { ++ Code uint16 ++ Jt uint8 ++ Jf uint8 ++ K uint32 ++} ++ ++type SockFprog struct { ++ Len uint16 ++ _ [6]byte ++ Filter *SockFilter ++} ++ ++type InotifyEvent struct { ++ Wd int32 ++ Mask uint32 ++ Cookie uint32 ++ Len uint32 ++} ++ ++const SizeofInotifyEvent = 0x10 ++ ++type PtraceRegs struct { ++ Psw PtracePsw ++ Gprs [16]uint64 ++ Acrs [16]uint32 ++ Orig_gpr2 uint64 ++ Fp_regs PtraceFpregs ++ Per_info PtracePer ++ Ieee_instruction_pointer uint64 ++} ++ ++type PtracePsw struct { ++ Mask uint64 ++ Addr uint64 ++} ++ ++type PtraceFpregs struct { ++ Fpc uint32 ++ _ [4]byte ++ Fprs [16]float64 ++} ++ ++type PtracePer struct { ++ _ [0]uint64 ++ _ [24]byte ++ _ [8]byte ++ Starting_addr uint64 ++ Ending_addr uint64 ++ Perc_atmid uint16 ++ _ [6]byte ++ Address uint64 ++ Access_id uint8 ++ _ [7]byte ++} ++ ++type FdSet struct { ++ Bits [16]int64 ++} ++ ++type Sysinfo_t struct { ++ Uptime int64 ++ Loads [3]uint64 ++ Totalram uint64 ++ Freeram uint64 ++ Sharedram uint64 ++ Bufferram uint64 ++ Totalswap uint64 ++ Freeswap uint64 ++ Procs uint16 ++ Pad uint16 ++ _ [4]byte ++ Totalhigh uint64 ++ Freehigh uint64 ++ Unit uint32 ++ _ [0]int8 ++ _ [4]byte ++} ++ ++type Utsname struct { ++ Sysname [65]int8 ++ Nodename [65]int8 ++ Release [65]int8 ++ Version [65]int8 ++ Machine [65]int8 ++ Domainname [65]int8 ++} ++ ++type Ustat_t struct { ++ Tfree int32 ++ _ [4]byte ++ Tinode uint64 ++ Fname [6]int8 ++ Fpack [6]int8 ++ _ [4]byte ++} ++ ++type EpollEvent struct { ++ Events uint32 ++ _ int32 ++ Fd int32 ++ Pad int32 ++} ++ ++const ( ++ AT_FDCWD = -0x64 ++ AT_REMOVEDIR = 0x200 ++ AT_SYMLINK_FOLLOW = 0x400 ++ AT_SYMLINK_NOFOLLOW = 0x100 ++) ++ ++type PollFd struct { ++ Fd int32 ++ Events int16 ++ Revents int16 ++} ++ ++const ( ++ POLLIN = 0x1 ++ POLLPRI = 0x2 ++ POLLOUT = 0x4 ++ POLLRDHUP = 0x2000 ++ POLLERR = 0x8 ++ POLLHUP = 0x10 ++ POLLNVAL = 0x20 ++) ++ ++type Sigset_t struct { ++ X__val [16]uint64 ++} ++ ++type Termios struct { ++ Iflag uint32 ++ Oflag uint32 ++ Cflag uint32 ++ Lflag uint32 ++ Line uint8 ++ Cc [19]uint8 ++ Ispeed uint32 ++ Ospeed uint32 ++} +diff --git a/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +new file mode 100644 +index 0000000..22bdab9 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +@@ -0,0 +1,666 @@ ++// +build sparc64,linux ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs types_linux.go | go run mkpost.go ++ ++package unix ++ ++const ( ++ sizeofPtr = 0x8 ++ sizeofShort = 0x2 ++ sizeofInt = 0x4 ++ sizeofLong = 0x8 ++ sizeofLongLong = 0x8 ++ PathMax = 0x1000 ++) ++ ++type ( ++ _C_short int16 ++ _C_int int32 ++ _C_long int64 ++ _C_long_long int64 ++) ++ ++type Timespec struct { ++ Sec int64 ++ Nsec int64 ++} ++ ++type Timeval struct { ++ Sec int64 ++ Usec int32 ++ Pad_cgo_0 [4]byte ++} ++ ++type Timex struct { ++ Modes uint32 ++ Pad_cgo_0 [4]byte ++ Offset int64 ++ Freq int64 ++ Maxerror int64 ++ Esterror int64 ++ Status int32 ++ Pad_cgo_1 [4]byte ++ Constant int64 ++ Precision int64 ++ Tolerance int64 ++ Time Timeval ++ Tick int64 ++ Ppsfreq int64 ++ Jitter int64 ++ Shift int32 ++ Pad_cgo_2 [4]byte ++ Stabil int64 ++ Jitcnt int64 ++ Calcnt int64 ++ Errcnt int64 ++ Stbcnt int64 ++ Tai int32 ++ Pad_cgo_3 [44]byte ++} ++ ++type Time_t int64 ++ ++type Tms struct { ++ Utime int64 ++ Stime int64 ++ Cutime int64 ++ Cstime int64 ++} ++ ++type Utimbuf struct { ++ Actime int64 ++ Modtime int64 ++} ++ ++type Rusage struct { ++ Utime Timeval ++ Stime Timeval ++ Maxrss int64 ++ Ixrss int64 ++ Idrss int64 ++ Isrss int64 ++ Minflt int64 ++ Majflt int64 ++ Nswap int64 ++ Inblock int64 ++ Oublock int64 ++ Msgsnd int64 ++ Msgrcv int64 ++ Nsignals int64 ++ Nvcsw int64 ++ Nivcsw int64 ++} ++ ++type Rlimit struct { ++ Cur uint64 ++ Max uint64 ++} ++ ++type _Gid_t uint32 ++ ++type Stat_t struct { ++ Dev uint64 ++ X__pad1 uint16 ++ Pad_cgo_0 [6]byte ++ Ino uint64 ++ Mode uint32 ++ Nlink uint32 ++ Uid uint32 ++ Gid uint32 ++ Rdev uint64 ++ X__pad2 uint16 ++ Pad_cgo_1 [6]byte ++ Size int64 ++ Blksize int64 ++ Blocks int64 ++ Atim Timespec ++ Mtim Timespec ++ Ctim Timespec ++ X__glibc_reserved4 uint64 ++ X__glibc_reserved5 uint64 ++} ++ ++type Statfs_t struct { ++ Type int64 ++ Bsize int64 ++ Blocks uint64 ++ Bfree uint64 ++ Bavail uint64 ++ Files uint64 ++ Ffree uint64 ++ Fsid Fsid ++ Namelen int64 ++ Frsize int64 ++ Flags int64 ++ Spare [4]int64 ++} ++ ++type Dirent struct { ++ Ino uint64 ++ Off int64 ++ Reclen uint16 ++ Type uint8 ++ Name [256]int8 ++ Pad_cgo_0 [5]byte ++} ++ ++type Fsid struct { ++ X__val [2]int32 ++} ++ ++type Flock_t struct { ++ Type int16 ++ Whence int16 ++ Pad_cgo_0 [4]byte ++ Start int64 ++ Len int64 ++ Pid int32 ++ X__glibc_reserved int16 ++ Pad_cgo_1 [2]byte ++} ++ ++const ( ++ FADV_NORMAL = 0x0 ++ FADV_RANDOM = 0x1 ++ FADV_SEQUENTIAL = 0x2 ++ FADV_WILLNEED = 0x3 ++ FADV_DONTNEED = 0x4 ++ FADV_NOREUSE = 0x5 ++) ++ ++type RawSockaddrInet4 struct { ++ Family uint16 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]uint8 ++} ++ ++type RawSockaddrInet6 struct { ++ Family uint16 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++} ++ ++type RawSockaddrUnix struct { ++ Family uint16 ++ Path [108]int8 ++} ++ ++type RawSockaddrLinklayer struct { ++ Family uint16 ++ Protocol uint16 ++ Ifindex int32 ++ Hatype uint16 ++ Pkttype uint8 ++ Halen uint8 ++ Addr [8]uint8 ++} ++ ++type RawSockaddrNetlink struct { ++ Family uint16 ++ Pad uint16 ++ Pid uint32 ++ Groups uint32 ++} ++ ++type RawSockaddrHCI struct { ++ Family uint16 ++ Dev uint16 ++ Channel uint16 ++} ++ ++type RawSockaddrCAN struct { ++ Family uint16 ++ Pad_cgo_0 [2]byte ++ Ifindex int32 ++ Addr [8]byte ++} ++ ++type RawSockaddrALG struct { ++ Family uint16 ++ Type [14]uint8 ++ Feat uint32 ++ Mask uint32 ++ Name [64]uint8 ++} ++ ++type RawSockaddrVM struct { ++ Family uint16 ++ Reserved1 uint16 ++ Port uint32 ++ Cid uint32 ++ Zero [4]uint8 ++} ++ ++type RawSockaddr struct { ++ Family uint16 ++ Data [14]int8 ++} ++ ++type RawSockaddrAny struct { ++ Addr RawSockaddr ++ Pad [96]int8 ++} ++ ++type _Socklen uint32 ++ ++type Linger struct { ++ Onoff int32 ++ Linger int32 ++} ++ ++type Iovec struct { ++ Base *byte ++ Len uint64 ++} ++ ++type IPMreq struct { ++ Multiaddr [4]byte /* in_addr */ ++ Interface [4]byte /* in_addr */ ++} ++ ++type IPMreqn struct { ++ Multiaddr [4]byte /* in_addr */ ++ Address [4]byte /* in_addr */ ++ Ifindex int32 ++} ++ ++type IPv6Mreq struct { ++ Multiaddr [16]byte /* in6_addr */ ++ Interface uint32 ++} ++ ++type Msghdr struct { ++ Name *byte ++ Namelen uint32 ++ Pad_cgo_0 [4]byte ++ Iov *Iovec ++ Iovlen uint64 ++ Control *byte ++ Controllen uint64 ++ Flags int32 ++ Pad_cgo_1 [4]byte ++} ++ ++type Cmsghdr struct { ++ Len uint64 ++ Level int32 ++ Type int32 ++} ++ ++type Inet4Pktinfo struct { ++ Ifindex int32 ++ Spec_dst [4]byte /* in_addr */ ++ Addr [4]byte /* in_addr */ ++} ++ ++type Inet6Pktinfo struct { ++ Addr [16]byte /* in6_addr */ ++ Ifindex uint32 ++} ++ ++type IPv6MTUInfo struct { ++ Addr RawSockaddrInet6 ++ Mtu uint32 ++} ++ ++type ICMPv6Filter struct { ++ Data [8]uint32 ++} ++ ++type Ucred struct { ++ Pid int32 ++ Uid uint32 ++ Gid uint32 ++} ++ ++type TCPInfo struct { ++ State uint8 ++ Ca_state uint8 ++ Retransmits uint8 ++ Probes uint8 ++ Backoff uint8 ++ Options uint8 ++ Pad_cgo_0 [2]byte ++ Rto uint32 ++ Ato uint32 ++ Snd_mss uint32 ++ Rcv_mss uint32 ++ Unacked uint32 ++ Sacked uint32 ++ Lost uint32 ++ Retrans uint32 ++ Fackets uint32 ++ Last_data_sent uint32 ++ Last_ack_sent uint32 ++ Last_data_recv uint32 ++ Last_ack_recv uint32 ++ Pmtu uint32 ++ Rcv_ssthresh uint32 ++ Rtt uint32 ++ Rttvar uint32 ++ Snd_ssthresh uint32 ++ Snd_cwnd uint32 ++ Advmss uint32 ++ Reordering uint32 ++ Rcv_rtt uint32 ++ Rcv_space uint32 ++ Total_retrans uint32 ++} ++ ++const ( ++ SizeofSockaddrInet4 = 0x10 ++ SizeofSockaddrInet6 = 0x1c ++ SizeofSockaddrAny = 0x70 ++ SizeofSockaddrUnix = 0x6e ++ SizeofSockaddrLinklayer = 0x14 ++ SizeofSockaddrNetlink = 0xc ++ SizeofSockaddrHCI = 0x6 ++ SizeofSockaddrCAN = 0x10 ++ SizeofSockaddrALG = 0x58 ++ SizeofSockaddrVM = 0x10 ++ SizeofLinger = 0x8 ++ SizeofIPMreq = 0x8 ++ SizeofIPMreqn = 0xc ++ SizeofIPv6Mreq = 0x14 ++ SizeofMsghdr = 0x38 ++ SizeofCmsghdr = 0x10 ++ SizeofInet4Pktinfo = 0xc ++ SizeofInet6Pktinfo = 0x14 ++ SizeofIPv6MTUInfo = 0x20 ++ SizeofICMPv6Filter = 0x20 ++ SizeofUcred = 0xc ++ SizeofTCPInfo = 0x68 ++) ++ ++const ( ++ IFA_UNSPEC = 0x0 ++ IFA_ADDRESS = 0x1 ++ IFA_LOCAL = 0x2 ++ IFA_LABEL = 0x3 ++ IFA_BROADCAST = 0x4 ++ IFA_ANYCAST = 0x5 ++ IFA_CACHEINFO = 0x6 ++ IFA_MULTICAST = 0x7 ++ IFLA_UNSPEC = 0x0 ++ IFLA_ADDRESS = 0x1 ++ IFLA_BROADCAST = 0x2 ++ IFLA_IFNAME = 0x3 ++ IFLA_MTU = 0x4 ++ IFLA_LINK = 0x5 ++ IFLA_QDISC = 0x6 ++ IFLA_STATS = 0x7 ++ IFLA_COST = 0x8 ++ IFLA_PRIORITY = 0x9 ++ IFLA_MASTER = 0xa ++ IFLA_WIRELESS = 0xb ++ IFLA_PROTINFO = 0xc ++ IFLA_TXQLEN = 0xd ++ IFLA_MAP = 0xe ++ IFLA_WEIGHT = 0xf ++ IFLA_OPERSTATE = 0x10 ++ IFLA_LINKMODE = 0x11 ++ IFLA_LINKINFO = 0x12 ++ IFLA_NET_NS_PID = 0x13 ++ IFLA_IFALIAS = 0x14 ++ IFLA_MAX = 0x2a ++ RT_SCOPE_UNIVERSE = 0x0 ++ RT_SCOPE_SITE = 0xc8 ++ RT_SCOPE_LINK = 0xfd ++ RT_SCOPE_HOST = 0xfe ++ RT_SCOPE_NOWHERE = 0xff ++ RT_TABLE_UNSPEC = 0x0 ++ RT_TABLE_COMPAT = 0xfc ++ RT_TABLE_DEFAULT = 0xfd ++ RT_TABLE_MAIN = 0xfe ++ RT_TABLE_LOCAL = 0xff ++ RT_TABLE_MAX = 0xffffffff ++ RTA_UNSPEC = 0x0 ++ RTA_DST = 0x1 ++ RTA_SRC = 0x2 ++ RTA_IIF = 0x3 ++ RTA_OIF = 0x4 ++ RTA_GATEWAY = 0x5 ++ RTA_PRIORITY = 0x6 ++ RTA_PREFSRC = 0x7 ++ RTA_METRICS = 0x8 ++ RTA_MULTIPATH = 0x9 ++ RTA_FLOW = 0xb ++ RTA_CACHEINFO = 0xc ++ RTA_TABLE = 0xf ++ RTN_UNSPEC = 0x0 ++ RTN_UNICAST = 0x1 ++ RTN_LOCAL = 0x2 ++ RTN_BROADCAST = 0x3 ++ RTN_ANYCAST = 0x4 ++ RTN_MULTICAST = 0x5 ++ RTN_BLACKHOLE = 0x6 ++ RTN_UNREACHABLE = 0x7 ++ RTN_PROHIBIT = 0x8 ++ RTN_THROW = 0x9 ++ RTN_NAT = 0xa ++ RTN_XRESOLVE = 0xb ++ RTNLGRP_NONE = 0x0 ++ RTNLGRP_LINK = 0x1 ++ RTNLGRP_NOTIFY = 0x2 ++ RTNLGRP_NEIGH = 0x3 ++ RTNLGRP_TC = 0x4 ++ RTNLGRP_IPV4_IFADDR = 0x5 ++ RTNLGRP_IPV4_MROUTE = 0x6 ++ RTNLGRP_IPV4_ROUTE = 0x7 ++ RTNLGRP_IPV4_RULE = 0x8 ++ RTNLGRP_IPV6_IFADDR = 0x9 ++ RTNLGRP_IPV6_MROUTE = 0xa ++ RTNLGRP_IPV6_ROUTE = 0xb ++ RTNLGRP_IPV6_IFINFO = 0xc ++ RTNLGRP_IPV6_PREFIX = 0x12 ++ RTNLGRP_IPV6_RULE = 0x13 ++ RTNLGRP_ND_USEROPT = 0x14 ++ SizeofNlMsghdr = 0x10 ++ SizeofNlMsgerr = 0x14 ++ SizeofRtGenmsg = 0x1 ++ SizeofNlAttr = 0x4 ++ SizeofRtAttr = 0x4 ++ SizeofIfInfomsg = 0x10 ++ SizeofIfAddrmsg = 0x8 ++ SizeofRtMsg = 0xc ++ SizeofRtNexthop = 0x8 ++) ++ ++type NlMsghdr struct { ++ Len uint32 ++ Type uint16 ++ Flags uint16 ++ Seq uint32 ++ Pid uint32 ++} ++ ++type NlMsgerr struct { ++ Error int32 ++ Msg NlMsghdr ++} ++ ++type RtGenmsg struct { ++ Family uint8 ++} ++ ++type NlAttr struct { ++ Len uint16 ++ Type uint16 ++} ++ ++type RtAttr struct { ++ Len uint16 ++ Type uint16 ++} ++ ++type IfInfomsg struct { ++ Family uint8 ++ X__ifi_pad uint8 ++ Type uint16 ++ Index int32 ++ Flags uint32 ++ Change uint32 ++} ++ ++type IfAddrmsg struct { ++ Family uint8 ++ Prefixlen uint8 ++ Flags uint8 ++ Scope uint8 ++ Index uint32 ++} ++ ++type RtMsg struct { ++ Family uint8 ++ Dst_len uint8 ++ Src_len uint8 ++ Tos uint8 ++ Table uint8 ++ Protocol uint8 ++ Scope uint8 ++ Type uint8 ++ Flags uint32 ++} ++ ++type RtNexthop struct { ++ Len uint16 ++ Flags uint8 ++ Hops uint8 ++ Ifindex int32 ++} ++ ++const ( ++ SizeofSockFilter = 0x8 ++ SizeofSockFprog = 0x10 ++) ++ ++type SockFilter struct { ++ Code uint16 ++ Jt uint8 ++ Jf uint8 ++ K uint32 ++} ++ ++type SockFprog struct { ++ Len uint16 ++ Pad_cgo_0 [6]byte ++ Filter *SockFilter ++} ++ ++type InotifyEvent struct { ++ Wd int32 ++ Mask uint32 ++ Cookie uint32 ++ Len uint32 ++} ++ ++const SizeofInotifyEvent = 0x10 ++ ++type PtraceRegs struct { ++ Regs [16]uint64 ++ Tstate uint64 ++ Tpc uint64 ++ Tnpc uint64 ++ Y uint32 ++ Magic uint32 ++} ++ ++type ptracePsw struct { ++} ++ ++type ptraceFpregs struct { ++} ++ ++type ptracePer struct { ++} ++ ++type FdSet struct { ++ Bits [16]int64 ++} ++ ++type Sysinfo_t struct { ++ Uptime int64 ++ Loads [3]uint64 ++ Totalram uint64 ++ Freeram uint64 ++ Sharedram uint64 ++ Bufferram uint64 ++ Totalswap uint64 ++ Freeswap uint64 ++ Procs uint16 ++ Pad uint16 ++ Pad_cgo_0 [4]byte ++ Totalhigh uint64 ++ Freehigh uint64 ++ Unit uint32 ++ X_f [0]int8 ++ Pad_cgo_1 [4]byte ++} ++ ++type Utsname struct { ++ Sysname [65]int8 ++ Nodename [65]int8 ++ Release [65]int8 ++ Version [65]int8 ++ Machine [65]int8 ++ Domainname [65]int8 ++} ++ ++type Ustat_t struct { ++ Tfree int32 ++ Pad_cgo_0 [4]byte ++ Tinode uint64 ++ Fname [6]int8 ++ Fpack [6]int8 ++ Pad_cgo_1 [4]byte ++} ++ ++type EpollEvent struct { ++ Events uint32 ++ X_padFd int32 ++ Fd int32 ++ Pad int32 ++} ++ ++const ( ++ AT_FDCWD = -0x64 ++ AT_REMOVEDIR = 0x200 ++ AT_SYMLINK_FOLLOW = 0x400 ++ AT_SYMLINK_NOFOLLOW = 0x100 ++) ++ ++type PollFd struct { ++ Fd int32 ++ Events int16 ++ Revents int16 ++} ++ ++const ( ++ POLLIN = 0x1 ++ POLLPRI = 0x2 ++ POLLOUT = 0x4 ++ POLLRDHUP = 0x800 ++ POLLERR = 0x8 ++ POLLHUP = 0x10 ++ POLLNVAL = 0x20 ++) ++ ++type Sigset_t struct { ++ X__val [16]uint64 ++} ++ ++const _SC_PAGESIZE = 0x1e ++ ++type Termios struct { ++ Iflag uint32 ++ Oflag uint32 ++ Cflag uint32 ++ Lflag uint32 ++ Line uint8 ++ Cc [19]uint8 ++ Ispeed uint32 ++ Ospeed uint32 ++} +diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go +new file mode 100644 +index 0000000..caf755f +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go +@@ -0,0 +1,396 @@ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs types_netbsd.go ++ ++// +build 386,netbsd ++ ++package unix ++ ++const ( ++ sizeofPtr = 0x4 ++ sizeofShort = 0x2 ++ sizeofInt = 0x4 ++ sizeofLong = 0x4 ++ sizeofLongLong = 0x8 ++) ++ ++type ( ++ _C_short int16 ++ _C_int int32 ++ _C_long int32 ++ _C_long_long int64 ++) ++ ++type Timespec struct { ++ Sec int64 ++ Nsec int32 ++} ++ ++type Timeval struct { ++ Sec int64 ++ Usec int32 ++} ++ ++type Rusage struct { ++ Utime Timeval ++ Stime Timeval ++ Maxrss int32 ++ Ixrss int32 ++ Idrss int32 ++ Isrss int32 ++ Minflt int32 ++ Majflt int32 ++ Nswap int32 ++ Inblock int32 ++ Oublock int32 ++ Msgsnd int32 ++ Msgrcv int32 ++ Nsignals int32 ++ Nvcsw int32 ++ Nivcsw int32 ++} ++ ++type Rlimit struct { ++ Cur uint64 ++ Max uint64 ++} ++ ++type _Gid_t uint32 ++ ++type Stat_t struct { ++ Dev uint64 ++ Mode uint32 ++ Ino uint64 ++ Nlink uint32 ++ Uid uint32 ++ Gid uint32 ++ Rdev uint64 ++ Atimespec Timespec ++ Mtimespec Timespec ++ Ctimespec Timespec ++ Birthtimespec Timespec ++ Size int64 ++ Blocks int64 ++ Blksize uint32 ++ Flags uint32 ++ Gen uint32 ++ Spare [2]uint32 ++} ++ ++type Statfs_t [0]byte ++ ++type Flock_t struct { ++ Start int64 ++ Len int64 ++ Pid int32 ++ Type int16 ++ Whence int16 ++} ++ ++type Dirent struct { ++ Fileno uint64 ++ Reclen uint16 ++ Namlen uint16 ++ Type uint8 ++ Name [512]int8 ++ Pad_cgo_0 [3]byte ++} ++ ++type Fsid struct { ++ X__fsid_val [2]int32 ++} ++ ++type RawSockaddrInet4 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]int8 ++} ++ ++type RawSockaddrInet6 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++} ++ ++type RawSockaddrUnix struct { ++ Len uint8 ++ Family uint8 ++ Path [104]int8 ++} ++ ++type RawSockaddrDatalink struct { ++ Len uint8 ++ Family uint8 ++ Index uint16 ++ Type uint8 ++ Nlen uint8 ++ Alen uint8 ++ Slen uint8 ++ Data [12]int8 ++} ++ ++type RawSockaddr struct { ++ Len uint8 ++ Family uint8 ++ Data [14]int8 ++} ++ ++type RawSockaddrAny struct { ++ Addr RawSockaddr ++ Pad [92]int8 ++} ++ ++type _Socklen uint32 ++ ++type Linger struct { ++ Onoff int32 ++ Linger int32 ++} ++ ++type Iovec struct { ++ Base *byte ++ Len uint32 ++} ++ ++type IPMreq struct { ++ Multiaddr [4]byte /* in_addr */ ++ Interface [4]byte /* in_addr */ ++} ++ ++type IPv6Mreq struct { ++ Multiaddr [16]byte /* in6_addr */ ++ Interface uint32 ++} ++ ++type Msghdr struct { ++ Name *byte ++ Namelen uint32 ++ Iov *Iovec ++ Iovlen int32 ++ Control *byte ++ Controllen uint32 ++ Flags int32 ++} ++ ++type Cmsghdr struct { ++ Len uint32 ++ Level int32 ++ Type int32 ++} ++ ++type Inet6Pktinfo struct { ++ Addr [16]byte /* in6_addr */ ++ Ifindex uint32 ++} ++ ++type IPv6MTUInfo struct { ++ Addr RawSockaddrInet6 ++ Mtu uint32 ++} ++ ++type ICMPv6Filter struct { ++ Filt [8]uint32 ++} ++ ++const ( ++ SizeofSockaddrInet4 = 0x10 ++ SizeofSockaddrInet6 = 0x1c ++ SizeofSockaddrAny = 0x6c ++ SizeofSockaddrUnix = 0x6a ++ SizeofSockaddrDatalink = 0x14 ++ SizeofLinger = 0x8 ++ SizeofIPMreq = 0x8 ++ SizeofIPv6Mreq = 0x14 ++ SizeofMsghdr = 0x1c ++ SizeofCmsghdr = 0xc ++ SizeofInet6Pktinfo = 0x14 ++ SizeofIPv6MTUInfo = 0x20 ++ SizeofICMPv6Filter = 0x20 ++) ++ ++const ( ++ PTRACE_TRACEME = 0x0 ++ PTRACE_CONT = 0x7 ++ PTRACE_KILL = 0x8 ++) ++ ++type Kevent_t struct { ++ Ident uint32 ++ Filter uint32 ++ Flags uint32 ++ Fflags uint32 ++ Data int64 ++ Udata int32 ++} ++ ++type FdSet struct { ++ Bits [8]uint32 ++} ++ ++const ( ++ SizeofIfMsghdr = 0x98 ++ SizeofIfData = 0x84 ++ SizeofIfaMsghdr = 0x18 ++ SizeofIfAnnounceMsghdr = 0x18 ++ SizeofRtMsghdr = 0x78 ++ SizeofRtMetrics = 0x50 ++) ++ ++type IfMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Data IfData ++ Pad_cgo_1 [4]byte ++} ++ ++type IfData struct { ++ Type uint8 ++ Addrlen uint8 ++ Hdrlen uint8 ++ Pad_cgo_0 [1]byte ++ Link_state int32 ++ Mtu uint64 ++ Metric uint64 ++ Baudrate uint64 ++ Ipackets uint64 ++ Ierrors uint64 ++ Opackets uint64 ++ Oerrors uint64 ++ Collisions uint64 ++ Ibytes uint64 ++ Obytes uint64 ++ Imcasts uint64 ++ Omcasts uint64 ++ Iqdrops uint64 ++ Noproto uint64 ++ Lastchange Timespec ++} ++ ++type IfaMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Metric int32 ++ Index uint16 ++ Pad_cgo_0 [6]byte ++} ++ ++type IfAnnounceMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Index uint16 ++ Name [16]int8 ++ What uint16 ++} ++ ++type RtMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Flags int32 ++ Addrs int32 ++ Pid int32 ++ Seq int32 ++ Errno int32 ++ Use int32 ++ Inits int32 ++ Pad_cgo_1 [4]byte ++ Rmx RtMetrics ++} ++ ++type RtMetrics struct { ++ Locks uint64 ++ Mtu uint64 ++ Hopcount uint64 ++ Recvpipe uint64 ++ Sendpipe uint64 ++ Ssthresh uint64 ++ Rtt uint64 ++ Rttvar uint64 ++ Expire int64 ++ Pksent int64 ++} ++ ++type Mclpool [0]byte ++ ++const ( ++ SizeofBpfVersion = 0x4 ++ SizeofBpfStat = 0x80 ++ SizeofBpfProgram = 0x8 ++ SizeofBpfInsn = 0x8 ++ SizeofBpfHdr = 0x14 ++) ++ ++type BpfVersion struct { ++ Major uint16 ++ Minor uint16 ++} ++ ++type BpfStat struct { ++ Recv uint64 ++ Drop uint64 ++ Capt uint64 ++ Padding [13]uint64 ++} ++ ++type BpfProgram struct { ++ Len uint32 ++ Insns *BpfInsn ++} ++ ++type BpfInsn struct { ++ Code uint16 ++ Jt uint8 ++ Jf uint8 ++ K uint32 ++} ++ ++type BpfHdr struct { ++ Tstamp BpfTimeval ++ Caplen uint32 ++ Datalen uint32 ++ Hdrlen uint16 ++ Pad_cgo_0 [2]byte ++} ++ ++type BpfTimeval struct { ++ Sec int32 ++ Usec int32 ++} ++ ++type Termios struct { ++ Iflag uint32 ++ Oflag uint32 ++ Cflag uint32 ++ Lflag uint32 ++ Cc [20]uint8 ++ Ispeed int32 ++ Ospeed int32 ++} ++ ++type Sysctlnode struct { ++ Flags uint32 ++ Num int32 ++ Name [32]int8 ++ Ver uint32 ++ X__rsvd uint32 ++ Un [16]byte ++ X_sysctl_size [8]byte ++ X_sysctl_func [8]byte ++ X_sysctl_parent [8]byte ++ X_sysctl_desc [8]byte ++} +diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go +new file mode 100644 +index 0000000..91b4a53 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go +@@ -0,0 +1,403 @@ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs types_netbsd.go ++ ++// +build amd64,netbsd ++ ++package unix ++ ++const ( ++ sizeofPtr = 0x8 ++ sizeofShort = 0x2 ++ sizeofInt = 0x4 ++ sizeofLong = 0x8 ++ sizeofLongLong = 0x8 ++) ++ ++type ( ++ _C_short int16 ++ _C_int int32 ++ _C_long int64 ++ _C_long_long int64 ++) ++ ++type Timespec struct { ++ Sec int64 ++ Nsec int64 ++} ++ ++type Timeval struct { ++ Sec int64 ++ Usec int32 ++ Pad_cgo_0 [4]byte ++} ++ ++type Rusage struct { ++ Utime Timeval ++ Stime Timeval ++ Maxrss int64 ++ Ixrss int64 ++ Idrss int64 ++ Isrss int64 ++ Minflt int64 ++ Majflt int64 ++ Nswap int64 ++ Inblock int64 ++ Oublock int64 ++ Msgsnd int64 ++ Msgrcv int64 ++ Nsignals int64 ++ Nvcsw int64 ++ Nivcsw int64 ++} ++ ++type Rlimit struct { ++ Cur uint64 ++ Max uint64 ++} ++ ++type _Gid_t uint32 ++ ++type Stat_t struct { ++ Dev uint64 ++ Mode uint32 ++ Pad_cgo_0 [4]byte ++ Ino uint64 ++ Nlink uint32 ++ Uid uint32 ++ Gid uint32 ++ Pad_cgo_1 [4]byte ++ Rdev uint64 ++ Atimespec Timespec ++ Mtimespec Timespec ++ Ctimespec Timespec ++ Birthtimespec Timespec ++ Size int64 ++ Blocks int64 ++ Blksize uint32 ++ Flags uint32 ++ Gen uint32 ++ Spare [2]uint32 ++ Pad_cgo_2 [4]byte ++} ++ ++type Statfs_t [0]byte ++ ++type Flock_t struct { ++ Start int64 ++ Len int64 ++ Pid int32 ++ Type int16 ++ Whence int16 ++} ++ ++type Dirent struct { ++ Fileno uint64 ++ Reclen uint16 ++ Namlen uint16 ++ Type uint8 ++ Name [512]int8 ++ Pad_cgo_0 [3]byte ++} ++ ++type Fsid struct { ++ X__fsid_val [2]int32 ++} ++ ++type RawSockaddrInet4 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]int8 ++} ++ ++type RawSockaddrInet6 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++} ++ ++type RawSockaddrUnix struct { ++ Len uint8 ++ Family uint8 ++ Path [104]int8 ++} ++ ++type RawSockaddrDatalink struct { ++ Len uint8 ++ Family uint8 ++ Index uint16 ++ Type uint8 ++ Nlen uint8 ++ Alen uint8 ++ Slen uint8 ++ Data [12]int8 ++} ++ ++type RawSockaddr struct { ++ Len uint8 ++ Family uint8 ++ Data [14]int8 ++} ++ ++type RawSockaddrAny struct { ++ Addr RawSockaddr ++ Pad [92]int8 ++} ++ ++type _Socklen uint32 ++ ++type Linger struct { ++ Onoff int32 ++ Linger int32 ++} ++ ++type Iovec struct { ++ Base *byte ++ Len uint64 ++} ++ ++type IPMreq struct { ++ Multiaddr [4]byte /* in_addr */ ++ Interface [4]byte /* in_addr */ ++} ++ ++type IPv6Mreq struct { ++ Multiaddr [16]byte /* in6_addr */ ++ Interface uint32 ++} ++ ++type Msghdr struct { ++ Name *byte ++ Namelen uint32 ++ Pad_cgo_0 [4]byte ++ Iov *Iovec ++ Iovlen int32 ++ Pad_cgo_1 [4]byte ++ Control *byte ++ Controllen uint32 ++ Flags int32 ++} ++ ++type Cmsghdr struct { ++ Len uint32 ++ Level int32 ++ Type int32 ++} ++ ++type Inet6Pktinfo struct { ++ Addr [16]byte /* in6_addr */ ++ Ifindex uint32 ++} ++ ++type IPv6MTUInfo struct { ++ Addr RawSockaddrInet6 ++ Mtu uint32 ++} ++ ++type ICMPv6Filter struct { ++ Filt [8]uint32 ++} ++ ++const ( ++ SizeofSockaddrInet4 = 0x10 ++ SizeofSockaddrInet6 = 0x1c ++ SizeofSockaddrAny = 0x6c ++ SizeofSockaddrUnix = 0x6a ++ SizeofSockaddrDatalink = 0x14 ++ SizeofLinger = 0x8 ++ SizeofIPMreq = 0x8 ++ SizeofIPv6Mreq = 0x14 ++ SizeofMsghdr = 0x30 ++ SizeofCmsghdr = 0xc ++ SizeofInet6Pktinfo = 0x14 ++ SizeofIPv6MTUInfo = 0x20 ++ SizeofICMPv6Filter = 0x20 ++) ++ ++const ( ++ PTRACE_TRACEME = 0x0 ++ PTRACE_CONT = 0x7 ++ PTRACE_KILL = 0x8 ++) ++ ++type Kevent_t struct { ++ Ident uint64 ++ Filter uint32 ++ Flags uint32 ++ Fflags uint32 ++ Pad_cgo_0 [4]byte ++ Data int64 ++ Udata int64 ++} ++ ++type FdSet struct { ++ Bits [8]uint32 ++} ++ ++const ( ++ SizeofIfMsghdr = 0x98 ++ SizeofIfData = 0x88 ++ SizeofIfaMsghdr = 0x18 ++ SizeofIfAnnounceMsghdr = 0x18 ++ SizeofRtMsghdr = 0x78 ++ SizeofRtMetrics = 0x50 ++) ++ ++type IfMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Data IfData ++} ++ ++type IfData struct { ++ Type uint8 ++ Addrlen uint8 ++ Hdrlen uint8 ++ Pad_cgo_0 [1]byte ++ Link_state int32 ++ Mtu uint64 ++ Metric uint64 ++ Baudrate uint64 ++ Ipackets uint64 ++ Ierrors uint64 ++ Opackets uint64 ++ Oerrors uint64 ++ Collisions uint64 ++ Ibytes uint64 ++ Obytes uint64 ++ Imcasts uint64 ++ Omcasts uint64 ++ Iqdrops uint64 ++ Noproto uint64 ++ Lastchange Timespec ++} ++ ++type IfaMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Metric int32 ++ Index uint16 ++ Pad_cgo_0 [6]byte ++} ++ ++type IfAnnounceMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Index uint16 ++ Name [16]int8 ++ What uint16 ++} ++ ++type RtMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Flags int32 ++ Addrs int32 ++ Pid int32 ++ Seq int32 ++ Errno int32 ++ Use int32 ++ Inits int32 ++ Pad_cgo_1 [4]byte ++ Rmx RtMetrics ++} ++ ++type RtMetrics struct { ++ Locks uint64 ++ Mtu uint64 ++ Hopcount uint64 ++ Recvpipe uint64 ++ Sendpipe uint64 ++ Ssthresh uint64 ++ Rtt uint64 ++ Rttvar uint64 ++ Expire int64 ++ Pksent int64 ++} ++ ++type Mclpool [0]byte ++ ++const ( ++ SizeofBpfVersion = 0x4 ++ SizeofBpfStat = 0x80 ++ SizeofBpfProgram = 0x10 ++ SizeofBpfInsn = 0x8 ++ SizeofBpfHdr = 0x20 ++) ++ ++type BpfVersion struct { ++ Major uint16 ++ Minor uint16 ++} ++ ++type BpfStat struct { ++ Recv uint64 ++ Drop uint64 ++ Capt uint64 ++ Padding [13]uint64 ++} ++ ++type BpfProgram struct { ++ Len uint32 ++ Pad_cgo_0 [4]byte ++ Insns *BpfInsn ++} ++ ++type BpfInsn struct { ++ Code uint16 ++ Jt uint8 ++ Jf uint8 ++ K uint32 ++} ++ ++type BpfHdr struct { ++ Tstamp BpfTimeval ++ Caplen uint32 ++ Datalen uint32 ++ Hdrlen uint16 ++ Pad_cgo_0 [6]byte ++} ++ ++type BpfTimeval struct { ++ Sec int64 ++ Usec int64 ++} ++ ++type Termios struct { ++ Iflag uint32 ++ Oflag uint32 ++ Cflag uint32 ++ Lflag uint32 ++ Cc [20]uint8 ++ Ispeed int32 ++ Ospeed int32 ++} ++ ++type Sysctlnode struct { ++ Flags uint32 ++ Num int32 ++ Name [32]int8 ++ Ver uint32 ++ X__rsvd uint32 ++ Un [16]byte ++ X_sysctl_size [8]byte ++ X_sysctl_func [8]byte ++ X_sysctl_parent [8]byte ++ X_sysctl_desc [8]byte ++} +diff --git a/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go +new file mode 100644 +index 0000000..c0758f9 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go +@@ -0,0 +1,401 @@ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs types_netbsd.go ++ ++// +build arm,netbsd ++ ++package unix ++ ++const ( ++ sizeofPtr = 0x4 ++ sizeofShort = 0x2 ++ sizeofInt = 0x4 ++ sizeofLong = 0x4 ++ sizeofLongLong = 0x8 ++) ++ ++type ( ++ _C_short int16 ++ _C_int int32 ++ _C_long int32 ++ _C_long_long int64 ++) ++ ++type Timespec struct { ++ Sec int64 ++ Nsec int32 ++ Pad_cgo_0 [4]byte ++} ++ ++type Timeval struct { ++ Sec int64 ++ Usec int32 ++ Pad_cgo_0 [4]byte ++} ++ ++type Rusage struct { ++ Utime Timeval ++ Stime Timeval ++ Maxrss int32 ++ Ixrss int32 ++ Idrss int32 ++ Isrss int32 ++ Minflt int32 ++ Majflt int32 ++ Nswap int32 ++ Inblock int32 ++ Oublock int32 ++ Msgsnd int32 ++ Msgrcv int32 ++ Nsignals int32 ++ Nvcsw int32 ++ Nivcsw int32 ++} ++ ++type Rlimit struct { ++ Cur uint64 ++ Max uint64 ++} ++ ++type _Gid_t uint32 ++ ++type Stat_t struct { ++ Dev uint64 ++ Mode uint32 ++ Pad_cgo_0 [4]byte ++ Ino uint64 ++ Nlink uint32 ++ Uid uint32 ++ Gid uint32 ++ Pad_cgo_1 [4]byte ++ Rdev uint64 ++ Atimespec Timespec ++ Mtimespec Timespec ++ Ctimespec Timespec ++ Birthtimespec Timespec ++ Size int64 ++ Blocks int64 ++ Blksize uint32 ++ Flags uint32 ++ Gen uint32 ++ Spare [2]uint32 ++ Pad_cgo_2 [4]byte ++} ++ ++type Statfs_t [0]byte ++ ++type Flock_t struct { ++ Start int64 ++ Len int64 ++ Pid int32 ++ Type int16 ++ Whence int16 ++} ++ ++type Dirent struct { ++ Fileno uint64 ++ Reclen uint16 ++ Namlen uint16 ++ Type uint8 ++ Name [512]int8 ++ Pad_cgo_0 [3]byte ++} ++ ++type Fsid struct { ++ X__fsid_val [2]int32 ++} ++ ++type RawSockaddrInet4 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]int8 ++} ++ ++type RawSockaddrInet6 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++} ++ ++type RawSockaddrUnix struct { ++ Len uint8 ++ Family uint8 ++ Path [104]int8 ++} ++ ++type RawSockaddrDatalink struct { ++ Len uint8 ++ Family uint8 ++ Index uint16 ++ Type uint8 ++ Nlen uint8 ++ Alen uint8 ++ Slen uint8 ++ Data [12]int8 ++} ++ ++type RawSockaddr struct { ++ Len uint8 ++ Family uint8 ++ Data [14]int8 ++} ++ ++type RawSockaddrAny struct { ++ Addr RawSockaddr ++ Pad [92]int8 ++} ++ ++type _Socklen uint32 ++ ++type Linger struct { ++ Onoff int32 ++ Linger int32 ++} ++ ++type Iovec struct { ++ Base *byte ++ Len uint32 ++} ++ ++type IPMreq struct { ++ Multiaddr [4]byte /* in_addr */ ++ Interface [4]byte /* in_addr */ ++} ++ ++type IPv6Mreq struct { ++ Multiaddr [16]byte /* in6_addr */ ++ Interface uint32 ++} ++ ++type Msghdr struct { ++ Name *byte ++ Namelen uint32 ++ Iov *Iovec ++ Iovlen int32 ++ Control *byte ++ Controllen uint32 ++ Flags int32 ++} ++ ++type Cmsghdr struct { ++ Len uint32 ++ Level int32 ++ Type int32 ++} ++ ++type Inet6Pktinfo struct { ++ Addr [16]byte /* in6_addr */ ++ Ifindex uint32 ++} ++ ++type IPv6MTUInfo struct { ++ Addr RawSockaddrInet6 ++ Mtu uint32 ++} ++ ++type ICMPv6Filter struct { ++ Filt [8]uint32 ++} ++ ++const ( ++ SizeofSockaddrInet4 = 0x10 ++ SizeofSockaddrInet6 = 0x1c ++ SizeofSockaddrAny = 0x6c ++ SizeofSockaddrUnix = 0x6a ++ SizeofSockaddrDatalink = 0x14 ++ SizeofLinger = 0x8 ++ SizeofIPMreq = 0x8 ++ SizeofIPv6Mreq = 0x14 ++ SizeofMsghdr = 0x1c ++ SizeofCmsghdr = 0xc ++ SizeofInet6Pktinfo = 0x14 ++ SizeofIPv6MTUInfo = 0x20 ++ SizeofICMPv6Filter = 0x20 ++) ++ ++const ( ++ PTRACE_TRACEME = 0x0 ++ PTRACE_CONT = 0x7 ++ PTRACE_KILL = 0x8 ++) ++ ++type Kevent_t struct { ++ Ident uint32 ++ Filter uint32 ++ Flags uint32 ++ Fflags uint32 ++ Data int64 ++ Udata int32 ++ Pad_cgo_0 [4]byte ++} ++ ++type FdSet struct { ++ Bits [8]uint32 ++} ++ ++const ( ++ SizeofIfMsghdr = 0x98 ++ SizeofIfData = 0x88 ++ SizeofIfaMsghdr = 0x18 ++ SizeofIfAnnounceMsghdr = 0x18 ++ SizeofRtMsghdr = 0x78 ++ SizeofRtMetrics = 0x50 ++) ++ ++type IfMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Data IfData ++} ++ ++type IfData struct { ++ Type uint8 ++ Addrlen uint8 ++ Hdrlen uint8 ++ Pad_cgo_0 [1]byte ++ Link_state int32 ++ Mtu uint64 ++ Metric uint64 ++ Baudrate uint64 ++ Ipackets uint64 ++ Ierrors uint64 ++ Opackets uint64 ++ Oerrors uint64 ++ Collisions uint64 ++ Ibytes uint64 ++ Obytes uint64 ++ Imcasts uint64 ++ Omcasts uint64 ++ Iqdrops uint64 ++ Noproto uint64 ++ Lastchange Timespec ++} ++ ++type IfaMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Metric int32 ++ Index uint16 ++ Pad_cgo_0 [6]byte ++} ++ ++type IfAnnounceMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Index uint16 ++ Name [16]int8 ++ What uint16 ++} ++ ++type RtMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Flags int32 ++ Addrs int32 ++ Pid int32 ++ Seq int32 ++ Errno int32 ++ Use int32 ++ Inits int32 ++ Pad_cgo_1 [4]byte ++ Rmx RtMetrics ++} ++ ++type RtMetrics struct { ++ Locks uint64 ++ Mtu uint64 ++ Hopcount uint64 ++ Recvpipe uint64 ++ Sendpipe uint64 ++ Ssthresh uint64 ++ Rtt uint64 ++ Rttvar uint64 ++ Expire int64 ++ Pksent int64 ++} ++ ++type Mclpool [0]byte ++ ++const ( ++ SizeofBpfVersion = 0x4 ++ SizeofBpfStat = 0x80 ++ SizeofBpfProgram = 0x8 ++ SizeofBpfInsn = 0x8 ++ SizeofBpfHdr = 0x14 ++) ++ ++type BpfVersion struct { ++ Major uint16 ++ Minor uint16 ++} ++ ++type BpfStat struct { ++ Recv uint64 ++ Drop uint64 ++ Capt uint64 ++ Padding [13]uint64 ++} ++ ++type BpfProgram struct { ++ Len uint32 ++ Insns *BpfInsn ++} ++ ++type BpfInsn struct { ++ Code uint16 ++ Jt uint8 ++ Jf uint8 ++ K uint32 ++} ++ ++type BpfHdr struct { ++ Tstamp BpfTimeval ++ Caplen uint32 ++ Datalen uint32 ++ Hdrlen uint16 ++ Pad_cgo_0 [2]byte ++} ++ ++type BpfTimeval struct { ++ Sec int32 ++ Usec int32 ++} ++ ++type Termios struct { ++ Iflag uint32 ++ Oflag uint32 ++ Cflag uint32 ++ Lflag uint32 ++ Cc [20]uint8 ++ Ispeed int32 ++ Ospeed int32 ++} ++ ++type Sysctlnode struct { ++ Flags uint32 ++ Num int32 ++ Name [32]int8 ++ Ver uint32 ++ X__rsvd uint32 ++ Un [16]byte ++ X_sysctl_size [8]byte ++ X_sysctl_func [8]byte ++ X_sysctl_parent [8]byte ++ X_sysctl_desc [8]byte ++} +diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go +new file mode 100644 +index 0000000..860a469 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go +@@ -0,0 +1,441 @@ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs types_openbsd.go ++ ++// +build 386,openbsd ++ ++package unix ++ ++const ( ++ sizeofPtr = 0x4 ++ sizeofShort = 0x2 ++ sizeofInt = 0x4 ++ sizeofLong = 0x4 ++ sizeofLongLong = 0x8 ++) ++ ++type ( ++ _C_short int16 ++ _C_int int32 ++ _C_long int32 ++ _C_long_long int64 ++) ++ ++type Timespec struct { ++ Sec int64 ++ Nsec int32 ++} ++ ++type Timeval struct { ++ Sec int64 ++ Usec int32 ++} ++ ++type Rusage struct { ++ Utime Timeval ++ Stime Timeval ++ Maxrss int32 ++ Ixrss int32 ++ Idrss int32 ++ Isrss int32 ++ Minflt int32 ++ Majflt int32 ++ Nswap int32 ++ Inblock int32 ++ Oublock int32 ++ Msgsnd int32 ++ Msgrcv int32 ++ Nsignals int32 ++ Nvcsw int32 ++ Nivcsw int32 ++} ++ ++type Rlimit struct { ++ Cur uint64 ++ Max uint64 ++} ++ ++type _Gid_t uint32 ++ ++const ( ++ S_IFMT = 0xf000 ++ S_IFIFO = 0x1000 ++ S_IFCHR = 0x2000 ++ S_IFDIR = 0x4000 ++ S_IFBLK = 0x6000 ++ S_IFREG = 0x8000 ++ S_IFLNK = 0xa000 ++ S_IFSOCK = 0xc000 ++ S_ISUID = 0x800 ++ S_ISGID = 0x400 ++ S_ISVTX = 0x200 ++ S_IRUSR = 0x100 ++ S_IWUSR = 0x80 ++ S_IXUSR = 0x40 ++) ++ ++type Stat_t struct { ++ Mode uint32 ++ Dev int32 ++ Ino uint64 ++ Nlink uint32 ++ Uid uint32 ++ Gid uint32 ++ Rdev int32 ++ Atim Timespec ++ Mtim Timespec ++ Ctim Timespec ++ Size int64 ++ Blocks int64 ++ Blksize uint32 ++ Flags uint32 ++ Gen uint32 ++ X__st_birthtim Timespec ++} ++ ++type Statfs_t struct { ++ F_flags uint32 ++ F_bsize uint32 ++ F_iosize uint32 ++ F_blocks uint64 ++ F_bfree uint64 ++ F_bavail int64 ++ F_files uint64 ++ F_ffree uint64 ++ F_favail int64 ++ F_syncwrites uint64 ++ F_syncreads uint64 ++ F_asyncwrites uint64 ++ F_asyncreads uint64 ++ F_fsid Fsid ++ F_namemax uint32 ++ F_owner uint32 ++ F_ctime uint64 ++ F_fstypename [16]int8 ++ F_mntonname [90]int8 ++ F_mntfromname [90]int8 ++ F_mntfromspec [90]int8 ++ Pad_cgo_0 [2]byte ++ Mount_info [160]byte ++} ++ ++type Flock_t struct { ++ Start int64 ++ Len int64 ++ Pid int32 ++ Type int16 ++ Whence int16 ++} ++ ++type Dirent struct { ++ Fileno uint64 ++ Off int64 ++ Reclen uint16 ++ Type uint8 ++ Namlen uint8 ++ X__d_padding [4]uint8 ++ Name [256]int8 ++} ++ ++type Fsid struct { ++ Val [2]int32 ++} ++ ++type RawSockaddrInet4 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]int8 ++} ++ ++type RawSockaddrInet6 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++} ++ ++type RawSockaddrUnix struct { ++ Len uint8 ++ Family uint8 ++ Path [104]int8 ++} ++ ++type RawSockaddrDatalink struct { ++ Len uint8 ++ Family uint8 ++ Index uint16 ++ Type uint8 ++ Nlen uint8 ++ Alen uint8 ++ Slen uint8 ++ Data [24]int8 ++} ++ ++type RawSockaddr struct { ++ Len uint8 ++ Family uint8 ++ Data [14]int8 ++} ++ ++type RawSockaddrAny struct { ++ Addr RawSockaddr ++ Pad [92]int8 ++} ++ ++type _Socklen uint32 ++ ++type Linger struct { ++ Onoff int32 ++ Linger int32 ++} ++ ++type Iovec struct { ++ Base *byte ++ Len uint32 ++} ++ ++type IPMreq struct { ++ Multiaddr [4]byte /* in_addr */ ++ Interface [4]byte /* in_addr */ ++} ++ ++type IPv6Mreq struct { ++ Multiaddr [16]byte /* in6_addr */ ++ Interface uint32 ++} ++ ++type Msghdr struct { ++ Name *byte ++ Namelen uint32 ++ Iov *Iovec ++ Iovlen uint32 ++ Control *byte ++ Controllen uint32 ++ Flags int32 ++} ++ ++type Cmsghdr struct { ++ Len uint32 ++ Level int32 ++ Type int32 ++} ++ ++type Inet6Pktinfo struct { ++ Addr [16]byte /* in6_addr */ ++ Ifindex uint32 ++} ++ ++type IPv6MTUInfo struct { ++ Addr RawSockaddrInet6 ++ Mtu uint32 ++} ++ ++type ICMPv6Filter struct { ++ Filt [8]uint32 ++} ++ ++const ( ++ SizeofSockaddrInet4 = 0x10 ++ SizeofSockaddrInet6 = 0x1c ++ SizeofSockaddrAny = 0x6c ++ SizeofSockaddrUnix = 0x6a ++ SizeofSockaddrDatalink = 0x20 ++ SizeofLinger = 0x8 ++ SizeofIPMreq = 0x8 ++ SizeofIPv6Mreq = 0x14 ++ SizeofMsghdr = 0x1c ++ SizeofCmsghdr = 0xc ++ SizeofInet6Pktinfo = 0x14 ++ SizeofIPv6MTUInfo = 0x20 ++ SizeofICMPv6Filter = 0x20 ++) ++ ++const ( ++ PTRACE_TRACEME = 0x0 ++ PTRACE_CONT = 0x7 ++ PTRACE_KILL = 0x8 ++) ++ ++type Kevent_t struct { ++ Ident uint32 ++ Filter int16 ++ Flags uint16 ++ Fflags uint32 ++ Data int64 ++ Udata *byte ++} ++ ++type FdSet struct { ++ Bits [32]uint32 ++} ++ ++const ( ++ SizeofIfMsghdr = 0xec ++ SizeofIfData = 0xd4 ++ SizeofIfaMsghdr = 0x18 ++ SizeofIfAnnounceMsghdr = 0x1a ++ SizeofRtMsghdr = 0x60 ++ SizeofRtMetrics = 0x38 ++) ++ ++type IfMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Hdrlen uint16 ++ Index uint16 ++ Tableid uint16 ++ Pad1 uint8 ++ Pad2 uint8 ++ Addrs int32 ++ Flags int32 ++ Xflags int32 ++ Data IfData ++} ++ ++type IfData struct { ++ Type uint8 ++ Addrlen uint8 ++ Hdrlen uint8 ++ Link_state uint8 ++ Mtu uint32 ++ Metric uint32 ++ Pad uint32 ++ Baudrate uint64 ++ Ipackets uint64 ++ Ierrors uint64 ++ Opackets uint64 ++ Oerrors uint64 ++ Collisions uint64 ++ Ibytes uint64 ++ Obytes uint64 ++ Imcasts uint64 ++ Omcasts uint64 ++ Iqdrops uint64 ++ Noproto uint64 ++ Capabilities uint32 ++ Lastchange Timeval ++ Mclpool [7]Mclpool ++} ++ ++type IfaMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Hdrlen uint16 ++ Index uint16 ++ Tableid uint16 ++ Pad1 uint8 ++ Pad2 uint8 ++ Addrs int32 ++ Flags int32 ++ Metric int32 ++} ++ ++type IfAnnounceMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Hdrlen uint16 ++ Index uint16 ++ What uint16 ++ Name [16]int8 ++} ++ ++type RtMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Hdrlen uint16 ++ Index uint16 ++ Tableid uint16 ++ Priority uint8 ++ Mpls uint8 ++ Addrs int32 ++ Flags int32 ++ Fmask int32 ++ Pid int32 ++ Seq int32 ++ Errno int32 ++ Inits uint32 ++ Rmx RtMetrics ++} ++ ++type RtMetrics struct { ++ Pksent uint64 ++ Expire int64 ++ Locks uint32 ++ Mtu uint32 ++ Refcnt uint32 ++ Hopcount uint32 ++ Recvpipe uint32 ++ Sendpipe uint32 ++ Ssthresh uint32 ++ Rtt uint32 ++ Rttvar uint32 ++ Pad uint32 ++} ++ ++type Mclpool struct { ++ Grown int32 ++ Alive uint16 ++ Hwm uint16 ++ Cwm uint16 ++ Lwm uint16 ++} ++ ++const ( ++ SizeofBpfVersion = 0x4 ++ SizeofBpfStat = 0x8 ++ SizeofBpfProgram = 0x8 ++ SizeofBpfInsn = 0x8 ++ SizeofBpfHdr = 0x14 ++) ++ ++type BpfVersion struct { ++ Major uint16 ++ Minor uint16 ++} ++ ++type BpfStat struct { ++ Recv uint32 ++ Drop uint32 ++} ++ ++type BpfProgram struct { ++ Len uint32 ++ Insns *BpfInsn ++} ++ ++type BpfInsn struct { ++ Code uint16 ++ Jt uint8 ++ Jf uint8 ++ K uint32 ++} ++ ++type BpfHdr struct { ++ Tstamp BpfTimeval ++ Caplen uint32 ++ Datalen uint32 ++ Hdrlen uint16 ++ Pad_cgo_0 [2]byte ++} ++ ++type BpfTimeval struct { ++ Sec uint32 ++ Usec uint32 ++} ++ ++type Termios struct { ++ Iflag uint32 ++ Oflag uint32 ++ Cflag uint32 ++ Lflag uint32 ++ Cc [20]uint8 ++ Ispeed int32 ++ Ospeed int32 ++} +diff --git a/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go +new file mode 100644 +index 0000000..23c5272 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go +@@ -0,0 +1,448 @@ ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs types_openbsd.go ++ ++// +build amd64,openbsd ++ ++package unix ++ ++const ( ++ sizeofPtr = 0x8 ++ sizeofShort = 0x2 ++ sizeofInt = 0x4 ++ sizeofLong = 0x8 ++ sizeofLongLong = 0x8 ++) ++ ++type ( ++ _C_short int16 ++ _C_int int32 ++ _C_long int64 ++ _C_long_long int64 ++) ++ ++type Timespec struct { ++ Sec int64 ++ Nsec int64 ++} ++ ++type Timeval struct { ++ Sec int64 ++ Usec int64 ++} ++ ++type Rusage struct { ++ Utime Timeval ++ Stime Timeval ++ Maxrss int64 ++ Ixrss int64 ++ Idrss int64 ++ Isrss int64 ++ Minflt int64 ++ Majflt int64 ++ Nswap int64 ++ Inblock int64 ++ Oublock int64 ++ Msgsnd int64 ++ Msgrcv int64 ++ Nsignals int64 ++ Nvcsw int64 ++ Nivcsw int64 ++} ++ ++type Rlimit struct { ++ Cur uint64 ++ Max uint64 ++} ++ ++type _Gid_t uint32 ++ ++const ( ++ S_IFMT = 0xf000 ++ S_IFIFO = 0x1000 ++ S_IFCHR = 0x2000 ++ S_IFDIR = 0x4000 ++ S_IFBLK = 0x6000 ++ S_IFREG = 0x8000 ++ S_IFLNK = 0xa000 ++ S_IFSOCK = 0xc000 ++ S_ISUID = 0x800 ++ S_ISGID = 0x400 ++ S_ISVTX = 0x200 ++ S_IRUSR = 0x100 ++ S_IWUSR = 0x80 ++ S_IXUSR = 0x40 ++) ++ ++type Stat_t struct { ++ Mode uint32 ++ Dev int32 ++ Ino uint64 ++ Nlink uint32 ++ Uid uint32 ++ Gid uint32 ++ Rdev int32 ++ Atim Timespec ++ Mtim Timespec ++ Ctim Timespec ++ Size int64 ++ Blocks int64 ++ Blksize uint32 ++ Flags uint32 ++ Gen uint32 ++ Pad_cgo_0 [4]byte ++ X__st_birthtim Timespec ++} ++ ++type Statfs_t struct { ++ F_flags uint32 ++ F_bsize uint32 ++ F_iosize uint32 ++ Pad_cgo_0 [4]byte ++ F_blocks uint64 ++ F_bfree uint64 ++ F_bavail int64 ++ F_files uint64 ++ F_ffree uint64 ++ F_favail int64 ++ F_syncwrites uint64 ++ F_syncreads uint64 ++ F_asyncwrites uint64 ++ F_asyncreads uint64 ++ F_fsid Fsid ++ F_namemax uint32 ++ F_owner uint32 ++ F_ctime uint64 ++ F_fstypename [16]int8 ++ F_mntonname [90]int8 ++ F_mntfromname [90]int8 ++ F_mntfromspec [90]int8 ++ Pad_cgo_1 [2]byte ++ Mount_info [160]byte ++} ++ ++type Flock_t struct { ++ Start int64 ++ Len int64 ++ Pid int32 ++ Type int16 ++ Whence int16 ++} ++ ++type Dirent struct { ++ Fileno uint64 ++ Off int64 ++ Reclen uint16 ++ Type uint8 ++ Namlen uint8 ++ X__d_padding [4]uint8 ++ Name [256]int8 ++} ++ ++type Fsid struct { ++ Val [2]int32 ++} ++ ++type RawSockaddrInet4 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]int8 ++} ++ ++type RawSockaddrInet6 struct { ++ Len uint8 ++ Family uint8 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++} ++ ++type RawSockaddrUnix struct { ++ Len uint8 ++ Family uint8 ++ Path [104]int8 ++} ++ ++type RawSockaddrDatalink struct { ++ Len uint8 ++ Family uint8 ++ Index uint16 ++ Type uint8 ++ Nlen uint8 ++ Alen uint8 ++ Slen uint8 ++ Data [24]int8 ++} ++ ++type RawSockaddr struct { ++ Len uint8 ++ Family uint8 ++ Data [14]int8 ++} ++ ++type RawSockaddrAny struct { ++ Addr RawSockaddr ++ Pad [92]int8 ++} ++ ++type _Socklen uint32 ++ ++type Linger struct { ++ Onoff int32 ++ Linger int32 ++} ++ ++type Iovec struct { ++ Base *byte ++ Len uint64 ++} ++ ++type IPMreq struct { ++ Multiaddr [4]byte /* in_addr */ ++ Interface [4]byte /* in_addr */ ++} ++ ++type IPv6Mreq struct { ++ Multiaddr [16]byte /* in6_addr */ ++ Interface uint32 ++} ++ ++type Msghdr struct { ++ Name *byte ++ Namelen uint32 ++ Pad_cgo_0 [4]byte ++ Iov *Iovec ++ Iovlen uint32 ++ Pad_cgo_1 [4]byte ++ Control *byte ++ Controllen uint32 ++ Flags int32 ++} ++ ++type Cmsghdr struct { ++ Len uint32 ++ Level int32 ++ Type int32 ++} ++ ++type Inet6Pktinfo struct { ++ Addr [16]byte /* in6_addr */ ++ Ifindex uint32 ++} ++ ++type IPv6MTUInfo struct { ++ Addr RawSockaddrInet6 ++ Mtu uint32 ++} ++ ++type ICMPv6Filter struct { ++ Filt [8]uint32 ++} ++ ++const ( ++ SizeofSockaddrInet4 = 0x10 ++ SizeofSockaddrInet6 = 0x1c ++ SizeofSockaddrAny = 0x6c ++ SizeofSockaddrUnix = 0x6a ++ SizeofSockaddrDatalink = 0x20 ++ SizeofLinger = 0x8 ++ SizeofIPMreq = 0x8 ++ SizeofIPv6Mreq = 0x14 ++ SizeofMsghdr = 0x30 ++ SizeofCmsghdr = 0xc ++ SizeofInet6Pktinfo = 0x14 ++ SizeofIPv6MTUInfo = 0x20 ++ SizeofICMPv6Filter = 0x20 ++) ++ ++const ( ++ PTRACE_TRACEME = 0x0 ++ PTRACE_CONT = 0x7 ++ PTRACE_KILL = 0x8 ++) ++ ++type Kevent_t struct { ++ Ident uint64 ++ Filter int16 ++ Flags uint16 ++ Fflags uint32 ++ Data int64 ++ Udata *byte ++} ++ ++type FdSet struct { ++ Bits [32]uint32 ++} ++ ++const ( ++ SizeofIfMsghdr = 0xf8 ++ SizeofIfData = 0xe0 ++ SizeofIfaMsghdr = 0x18 ++ SizeofIfAnnounceMsghdr = 0x1a ++ SizeofRtMsghdr = 0x60 ++ SizeofRtMetrics = 0x38 ++) ++ ++type IfMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Hdrlen uint16 ++ Index uint16 ++ Tableid uint16 ++ Pad1 uint8 ++ Pad2 uint8 ++ Addrs int32 ++ Flags int32 ++ Xflags int32 ++ Data IfData ++} ++ ++type IfData struct { ++ Type uint8 ++ Addrlen uint8 ++ Hdrlen uint8 ++ Link_state uint8 ++ Mtu uint32 ++ Metric uint32 ++ Pad uint32 ++ Baudrate uint64 ++ Ipackets uint64 ++ Ierrors uint64 ++ Opackets uint64 ++ Oerrors uint64 ++ Collisions uint64 ++ Ibytes uint64 ++ Obytes uint64 ++ Imcasts uint64 ++ Omcasts uint64 ++ Iqdrops uint64 ++ Noproto uint64 ++ Capabilities uint32 ++ Pad_cgo_0 [4]byte ++ Lastchange Timeval ++ Mclpool [7]Mclpool ++ Pad_cgo_1 [4]byte ++} ++ ++type IfaMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Hdrlen uint16 ++ Index uint16 ++ Tableid uint16 ++ Pad1 uint8 ++ Pad2 uint8 ++ Addrs int32 ++ Flags int32 ++ Metric int32 ++} ++ ++type IfAnnounceMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Hdrlen uint16 ++ Index uint16 ++ What uint16 ++ Name [16]int8 ++} ++ ++type RtMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Hdrlen uint16 ++ Index uint16 ++ Tableid uint16 ++ Priority uint8 ++ Mpls uint8 ++ Addrs int32 ++ Flags int32 ++ Fmask int32 ++ Pid int32 ++ Seq int32 ++ Errno int32 ++ Inits uint32 ++ Rmx RtMetrics ++} ++ ++type RtMetrics struct { ++ Pksent uint64 ++ Expire int64 ++ Locks uint32 ++ Mtu uint32 ++ Refcnt uint32 ++ Hopcount uint32 ++ Recvpipe uint32 ++ Sendpipe uint32 ++ Ssthresh uint32 ++ Rtt uint32 ++ Rttvar uint32 ++ Pad uint32 ++} ++ ++type Mclpool struct { ++ Grown int32 ++ Alive uint16 ++ Hwm uint16 ++ Cwm uint16 ++ Lwm uint16 ++} ++ ++const ( ++ SizeofBpfVersion = 0x4 ++ SizeofBpfStat = 0x8 ++ SizeofBpfProgram = 0x10 ++ SizeofBpfInsn = 0x8 ++ SizeofBpfHdr = 0x14 ++) ++ ++type BpfVersion struct { ++ Major uint16 ++ Minor uint16 ++} ++ ++type BpfStat struct { ++ Recv uint32 ++ Drop uint32 ++} ++ ++type BpfProgram struct { ++ Len uint32 ++ Pad_cgo_0 [4]byte ++ Insns *BpfInsn ++} ++ ++type BpfInsn struct { ++ Code uint16 ++ Jt uint8 ++ Jf uint8 ++ K uint32 ++} ++ ++type BpfHdr struct { ++ Tstamp BpfTimeval ++ Caplen uint32 ++ Datalen uint32 ++ Hdrlen uint16 ++ Pad_cgo_0 [2]byte ++} ++ ++type BpfTimeval struct { ++ Sec uint32 ++ Usec uint32 ++} ++ ++type Termios struct { ++ Iflag uint32 ++ Oflag uint32 ++ Cflag uint32 ++ Lflag uint32 ++ Cc [20]uint8 ++ Ispeed int32 ++ Ospeed int32 ++} +diff --git a/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go b/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go +new file mode 100644 +index 0000000..02777e4 +--- /dev/null ++++ b/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go +@@ -0,0 +1,423 @@ ++// +build amd64,solaris ++// Created by cgo -godefs - DO NOT EDIT ++// cgo -godefs types_solaris.go | go run mkpost.go ++ ++package unix ++ ++const ( ++ sizeofPtr = 0x8 ++ sizeofShort = 0x2 ++ sizeofInt = 0x4 ++ sizeofLong = 0x8 ++ sizeofLongLong = 0x8 ++ PathMax = 0x400 ++ MaxHostNameLen = 0x100 ++) ++ ++type ( ++ _C_short int16 ++ _C_int int32 ++ _C_long int64 ++ _C_long_long int64 ++) ++ ++type Timespec struct { ++ Sec int64 ++ Nsec int64 ++} ++ ++type Timeval struct { ++ Sec int64 ++ Usec int64 ++} ++ ++type Timeval32 struct { ++ Sec int32 ++ Usec int32 ++} ++ ++type Tms struct { ++ Utime int64 ++ Stime int64 ++ Cutime int64 ++ Cstime int64 ++} ++ ++type Utimbuf struct { ++ Actime int64 ++ Modtime int64 ++} ++ ++type Rusage struct { ++ Utime Timeval ++ Stime Timeval ++ Maxrss int64 ++ Ixrss int64 ++ Idrss int64 ++ Isrss int64 ++ Minflt int64 ++ Majflt int64 ++ Nswap int64 ++ Inblock int64 ++ Oublock int64 ++ Msgsnd int64 ++ Msgrcv int64 ++ Nsignals int64 ++ Nvcsw int64 ++ Nivcsw int64 ++} ++ ++type Rlimit struct { ++ Cur uint64 ++ Max uint64 ++} ++ ++type _Gid_t uint32 ++ ++const ( ++ S_IFMT = 0xf000 ++ S_IFIFO = 0x1000 ++ S_IFCHR = 0x2000 ++ S_IFDIR = 0x4000 ++ S_IFBLK = 0x6000 ++ S_IFREG = 0x8000 ++ S_IFLNK = 0xa000 ++ S_IFSOCK = 0xc000 ++ S_ISUID = 0x800 ++ S_ISGID = 0x400 ++ S_ISVTX = 0x200 ++ S_IRUSR = 0x100 ++ S_IWUSR = 0x80 ++ S_IXUSR = 0x40 ++) ++ ++type Stat_t struct { ++ Dev uint64 ++ Ino uint64 ++ Mode uint32 ++ Nlink uint32 ++ Uid uint32 ++ Gid uint32 ++ Rdev uint64 ++ Size int64 ++ Atim Timespec ++ Mtim Timespec ++ Ctim Timespec ++ Blksize int32 ++ Pad_cgo_0 [4]byte ++ Blocks int64 ++ Fstype [16]int8 ++} ++ ++type Flock_t struct { ++ Type int16 ++ Whence int16 ++ Pad_cgo_0 [4]byte ++ Start int64 ++ Len int64 ++ Sysid int32 ++ Pid int32 ++ Pad [4]int64 ++} ++ ++type Dirent struct { ++ Ino uint64 ++ Off int64 ++ Reclen uint16 ++ Name [1]int8 ++ Pad_cgo_0 [5]byte ++} ++ ++type RawSockaddrInet4 struct { ++ Family uint16 ++ Port uint16 ++ Addr [4]byte /* in_addr */ ++ Zero [8]int8 ++} ++ ++type RawSockaddrInet6 struct { ++ Family uint16 ++ Port uint16 ++ Flowinfo uint32 ++ Addr [16]byte /* in6_addr */ ++ Scope_id uint32 ++ X__sin6_src_id uint32 ++} ++ ++type RawSockaddrUnix struct { ++ Family uint16 ++ Path [108]int8 ++} ++ ++type RawSockaddrDatalink struct { ++ Family uint16 ++ Index uint16 ++ Type uint8 ++ Nlen uint8 ++ Alen uint8 ++ Slen uint8 ++ Data [244]int8 ++} ++ ++type RawSockaddr struct { ++ Family uint16 ++ Data [14]int8 ++} ++ ++type RawSockaddrAny struct { ++ Addr RawSockaddr ++ Pad [236]int8 ++} ++ ++type _Socklen uint32 ++ ++type Linger struct { ++ Onoff int32 ++ Linger int32 ++} ++ ++type Iovec struct { ++ Base *int8 ++ Len uint64 ++} ++ ++type IPMreq struct { ++ Multiaddr [4]byte /* in_addr */ ++ Interface [4]byte /* in_addr */ ++} ++ ++type IPv6Mreq struct { ++ Multiaddr [16]byte /* in6_addr */ ++ Interface uint32 ++} ++ ++type Msghdr struct { ++ Name *byte ++ Namelen uint32 ++ Pad_cgo_0 [4]byte ++ Iov *Iovec ++ Iovlen int32 ++ Pad_cgo_1 [4]byte ++ Accrights *int8 ++ Accrightslen int32 ++ Pad_cgo_2 [4]byte ++} ++ ++type Cmsghdr struct { ++ Len uint32 ++ Level int32 ++ Type int32 ++} ++ ++type Inet6Pktinfo struct { ++ Addr [16]byte /* in6_addr */ ++ Ifindex uint32 ++} ++ ++type IPv6MTUInfo struct { ++ Addr RawSockaddrInet6 ++ Mtu uint32 ++} ++ ++type ICMPv6Filter struct { ++ X__icmp6_filt [8]uint32 ++} ++ ++const ( ++ SizeofSockaddrInet4 = 0x10 ++ SizeofSockaddrInet6 = 0x20 ++ SizeofSockaddrAny = 0xfc ++ SizeofSockaddrUnix = 0x6e ++ SizeofSockaddrDatalink = 0xfc ++ SizeofLinger = 0x8 ++ SizeofIPMreq = 0x8 ++ SizeofIPv6Mreq = 0x14 ++ SizeofMsghdr = 0x30 ++ SizeofCmsghdr = 0xc ++ SizeofInet6Pktinfo = 0x14 ++ SizeofIPv6MTUInfo = 0x24 ++ SizeofICMPv6Filter = 0x20 ++) ++ ++type FdSet struct { ++ Bits [1024]int64 ++} ++ ++type Utsname struct { ++ Sysname [257]int8 ++ Nodename [257]int8 ++ Release [257]int8 ++ Version [257]int8 ++ Machine [257]int8 ++} ++ ++type Ustat_t struct { ++ Tfree int64 ++ Tinode uint64 ++ Fname [6]int8 ++ Fpack [6]int8 ++ Pad_cgo_0 [4]byte ++} ++ ++const ( ++ AT_FDCWD = 0xffd19553 ++ AT_SYMLINK_NOFOLLOW = 0x1000 ++ AT_SYMLINK_FOLLOW = 0x2000 ++ AT_REMOVEDIR = 0x1 ++ AT_EACCESS = 0x4 ++) ++ ++const ( ++ SizeofIfMsghdr = 0x54 ++ SizeofIfData = 0x44 ++ SizeofIfaMsghdr = 0x14 ++ SizeofRtMsghdr = 0x4c ++ SizeofRtMetrics = 0x28 ++) ++ ++type IfMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Data IfData ++} ++ ++type IfData struct { ++ Type uint8 ++ Addrlen uint8 ++ Hdrlen uint8 ++ Pad_cgo_0 [1]byte ++ Mtu uint32 ++ Metric uint32 ++ Baudrate uint32 ++ Ipackets uint32 ++ Ierrors uint32 ++ Opackets uint32 ++ Oerrors uint32 ++ Collisions uint32 ++ Ibytes uint32 ++ Obytes uint32 ++ Imcasts uint32 ++ Omcasts uint32 ++ Iqdrops uint32 ++ Noproto uint32 ++ Lastchange Timeval32 ++} ++ ++type IfaMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Addrs int32 ++ Flags int32 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Metric int32 ++} ++ ++type RtMsghdr struct { ++ Msglen uint16 ++ Version uint8 ++ Type uint8 ++ Index uint16 ++ Pad_cgo_0 [2]byte ++ Flags int32 ++ Addrs int32 ++ Pid int32 ++ Seq int32 ++ Errno int32 ++ Use int32 ++ Inits uint32 ++ Rmx RtMetrics ++} ++ ++type RtMetrics struct { ++ Locks uint32 ++ Mtu uint32 ++ Hopcount uint32 ++ Expire uint32 ++ Recvpipe uint32 ++ Sendpipe uint32 ++ Ssthresh uint32 ++ Rtt uint32 ++ Rttvar uint32 ++ Pksent uint32 ++} ++ ++const ( ++ SizeofBpfVersion = 0x4 ++ SizeofBpfStat = 0x80 ++ SizeofBpfProgram = 0x10 ++ SizeofBpfInsn = 0x8 ++ SizeofBpfHdr = 0x14 ++) ++ ++type BpfVersion struct { ++ Major uint16 ++ Minor uint16 ++} ++ ++type BpfStat struct { ++ Recv uint64 ++ Drop uint64 ++ Capt uint64 ++ Padding [13]uint64 ++} ++ ++type BpfProgram struct { ++ Len uint32 ++ Pad_cgo_0 [4]byte ++ Insns *BpfInsn ++} ++ ++type BpfInsn struct { ++ Code uint16 ++ Jt uint8 ++ Jf uint8 ++ K uint32 ++} ++ ++type BpfTimeval struct { ++ Sec int32 ++ Usec int32 ++} ++ ++type BpfHdr struct { ++ Tstamp BpfTimeval ++ Caplen uint32 ++ Datalen uint32 ++ Hdrlen uint16 ++ Pad_cgo_0 [2]byte ++} ++ ++const _SC_PAGESIZE = 0xb ++ ++type Termios struct { ++ Iflag uint32 ++ Oflag uint32 ++ Cflag uint32 ++ Lflag uint32 ++ Cc [19]uint8 ++ Pad_cgo_0 [1]byte ++} ++ ++type Termio struct { ++ Iflag uint16 ++ Oflag uint16 ++ Cflag uint16 ++ Lflag uint16 ++ Line int8 ++ Cc [8]uint8 ++ Pad_cgo_0 [1]byte ++} ++ ++type Winsize struct { ++ Row uint16 ++ Col uint16 ++ Xpixel uint16 ++ Ypixel uint16 ++} +-- +2.7.4.3 + diff --git a/patch/0013-libcontainer-rewrite-cmsg-to-use-sys-unix.patch b/patch/0013-libcontainer-rewrite-cmsg-to-use-sys-unix.patch new file mode 100644 index 0000000..e6506bb --- /dev/null +++ b/patch/0013-libcontainer-rewrite-cmsg-to-use-sys-unix.patch @@ -0,0 +1,327 @@ +From c13a4de91dc2a3db4b9085015dbce2f8e050d7ca Mon Sep 17 00:00:00 2001 +From: Aleksa Sarai +Date: Wed, 29 Mar 2017 22:39:05 +1100 +Subject: [PATCH 13/94] libcontainer: rewrite cmsg to use sys/unix + +The original implementation is in C, which increases cognitive load and +possibly might cause us problems in the future. Since sys/unix is better +maintained than the syscall standard library switching makes more sense. + +Change-Id: I8d91c2d7b28116d3d9be49e328f9383b9b7052d7 +Signed-off-by: Aleksa Sarai +--- + libcontainer/utils/cmsg.c | 148 --------------------------------------------- + libcontainer/utils/cmsg.go | 74 +++++++++++++++++------ + libcontainer/utils/cmsg.h | 36 ----------- + 3 files changed, 56 insertions(+), 202 deletions(-) + delete mode 100644 libcontainer/utils/cmsg.c + delete mode 100644 libcontainer/utils/cmsg.h + +diff --git a/libcontainer/utils/cmsg.c b/libcontainer/utils/cmsg.c +deleted file mode 100644 +index 0ded494..0000000 +--- a/libcontainer/utils/cmsg.c ++++ /dev/null +@@ -1,148 +0,0 @@ +-/* +- * Copyright 2016 SUSE LLC +- * +- * Licensed under the Apache License, Version 2.0 (the "License"); +- * you may not use this file except in compliance with the License. +- * You may obtain a copy of the License at +- * +- * http://www.apache.org/licenses/LICENSE-2.0 +- * +- * Unless required by applicable law or agreed to in writing, software +- * distributed under the License is distributed on an "AS IS" BASIS, +- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +- * See the License for the specific language governing permissions and +- * limitations under the License. +- */ +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-#include "cmsg.h" +- +-#define error(fmt, ...) \ +- ({ \ +- fprintf(stderr, "nsenter: " fmt ": %m\n", ##__VA_ARGS__); \ +- errno = ECOMM; \ +- goto err; /* return value */ \ +- }) +- +-/* +- * Sends a file descriptor along the sockfd provided. Returns the return +- * value of sendmsg(2). Any synchronisation and preparation of state +- * should be done external to this (we expect the other side to be in +- * recvfd() in the code). +- */ +-ssize_t sendfd(int sockfd, struct file_t file) +-{ +- struct msghdr msg = {0}; +- struct iovec iov[1] = {0}; +- struct cmsghdr *cmsg; +- int *fdptr; +- int ret; +- +- union { +- char buf[CMSG_SPACE(sizeof(file.fd))]; +- struct cmsghdr align; +- } u; +- +- /* +- * We need to send some other data along with the ancillary data, +- * otherwise the other side won't recieve any data. This is very +- * well-hidden in the documentation (and only applies to +- * SOCK_STREAM). See the bottom part of unix(7). +- */ +- iov[0].iov_base = file.name; +- iov[0].iov_len = strlen(file.name) + 1; +- +- msg.msg_name = NULL; +- msg.msg_namelen = 0; +- msg.msg_iov = iov; +- msg.msg_iovlen = 1; +- msg.msg_control = u.buf; +- msg.msg_controllen = sizeof(u.buf); +- +- cmsg = CMSG_FIRSTHDR(&msg); +- cmsg->cmsg_level = SOL_SOCKET; +- cmsg->cmsg_type = SCM_RIGHTS; +- cmsg->cmsg_len = CMSG_LEN(sizeof(int)); +- +- fdptr = (int *) CMSG_DATA(cmsg); +- memcpy(fdptr, &file.fd, sizeof(int)); +- +- return sendmsg(sockfd, &msg, 0); +-} +- +-/* +- * Receives a file descriptor from the sockfd provided. Returns the file +- * descriptor as sent from sendfd(). It will return the file descriptor +- * or die (literally) trying. Any synchronisation and preparation of +- * state should be done external to this (we expect the other side to be +- * in sendfd() in the code). +- */ +-struct file_t recvfd(int sockfd) +-{ +- struct msghdr msg = {0}; +- struct iovec iov[1] = {0}; +- struct cmsghdr *cmsg; +- struct file_t file = {0}; +- int *fdptr; +- int olderrno; +- +- union { +- char buf[CMSG_SPACE(sizeof(file.fd))]; +- struct cmsghdr align; +- } u; +- +- /* Allocate a buffer. */ +- /* TODO: Make this dynamic with MSG_PEEK. */ +- file.name = malloc(TAG_BUFFER); +- if (!file.name) +- error("recvfd: failed to allocate file.tag buffer\n"); +- +- /* +- * We need to "recieve" the non-ancillary data even though we don't +- * plan to use it at all. Otherwise, things won't work as expected. +- * See unix(7) and other well-hidden documentation. +- */ +- iov[0].iov_base = file.name; +- iov[0].iov_len = TAG_BUFFER; +- +- msg.msg_name = NULL; +- msg.msg_namelen = 0; +- msg.msg_iov = iov; +- msg.msg_iovlen = 1; +- msg.msg_control = u.buf; +- msg.msg_controllen = sizeof(u.buf); +- +- ssize_t ret = recvmsg(sockfd, &msg, 0); +- if (ret < 0) +- goto err; +- +- cmsg = CMSG_FIRSTHDR(&msg); +- if (!cmsg) +- error("recvfd: got NULL from CMSG_FIRSTHDR"); +- if (cmsg->cmsg_level != SOL_SOCKET) +- error("recvfd: expected SOL_SOCKET in cmsg: %d", cmsg->cmsg_level); +- if (cmsg->cmsg_type != SCM_RIGHTS) +- error("recvfd: expected SCM_RIGHTS in cmsg: %d", cmsg->cmsg_type); +- if (cmsg->cmsg_len != CMSG_LEN(sizeof(int))) +- error("recvfd: expected correct CMSG_LEN in cmsg: %lu", (unsigned long)cmsg->cmsg_len); +- +- fdptr = (int *) CMSG_DATA(cmsg); +- if (!fdptr || *fdptr < 0) +- error("recvfd: recieved invalid pointer"); +- +- file.fd = *fdptr; +- return file; +- +-err: +- olderrno = errno; +- free(file.name); +- errno = olderrno; +- return (struct file_t){0}; +-} +diff --git a/libcontainer/utils/cmsg.go b/libcontainer/utils/cmsg.go +index ee89374..2cbb649 100644 +--- a/libcontainer/utils/cmsg.go ++++ b/libcontainer/utils/cmsg.go +@@ -3,7 +3,7 @@ + package utils + + /* +- * Copyright 2016 SUSE LLC ++ * Copyright 2016, 2017 SUSE LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. +@@ -18,28 +18,66 @@ package utils + * limitations under the License. + */ + +-/* +-#include +-#include +-#include "cmsg.h" +-*/ +-import "C" +- + import ( ++ "fmt" + "os" +- "unsafe" ++ ++ "golang.org/x/sys/unix" + ) + ++// MaxSendfdLen is the maximum length of the name of a file descriptor being ++// sent using SendFd. The name of the file handle returned by RecvFd will never ++// be larger than this value. ++const MaxNameLen = 4096 ++ ++// oobSpace is the size of the oob slice required to store a single FD. Note ++// that unix.UnixRights appears to make the assumption that fd is always int32, ++// so sizeof(fd) = 4. ++var oobSpace = unix.CmsgSpace(4) ++ + // RecvFd waits for a file descriptor to be sent over the given AF_UNIX + // socket. The file name of the remote file descriptor will be recreated + // locally (it is sent as non-auxiliary data in the same payload). + func RecvFd(socket *os.File) (*os.File, error) { +- file, err := C.recvfd(C.int(socket.Fd())) ++ // For some reason, unix.Recvmsg uses the length rather than the capacity ++ // when passing the msg_controllen and other attributes to recvmsg. So we ++ // have to actually set the length. ++ name := make([]byte, MaxNameLen) ++ oob := make([]byte, oobSpace) ++ ++ sockfd := socket.Fd() ++ n, oobn, _, _, err := unix.Recvmsg(int(sockfd), name, oob, 0) + if err != nil { + return nil, err + } +- defer C.free(unsafe.Pointer(file.name)) +- return os.NewFile(uintptr(file.fd), C.GoString(file.name)), nil ++ ++ if n >= MaxNameLen || oobn != oobSpace { ++ return nil, fmt.Errorf("recvfd: incorrect number of bytes read (n=%d oobn=%d)", n, oobn) ++ } ++ ++ // Truncate. ++ name = name[:n] ++ oob = oob[:oobn] ++ ++ scms, err := unix.ParseSocketControlMessage(oob) ++ if err != nil { ++ return nil, err ++ } ++ if len(scms) != 1 { ++ return nil, fmt.Errorf("recvfd: number of SCMs is not 1: %d", len(scms)) ++ } ++ scm := scms[0] ++ ++ fds, err := unix.ParseUnixRights(&scm) ++ if err != nil { ++ return nil, err ++ } ++ if len(fds) != 1 { ++ return nil, fmt.Errorf("recvfd: number of fds is not 1: %d", len(fds)) ++ } ++ fd := uintptr(fds[0]) ++ ++ return os.NewFile(fd, string(name)), nil + } + + // SendFd sends a file descriptor over the given AF_UNIX socket. In +@@ -47,11 +85,11 @@ func RecvFd(socket *os.File) (*os.File, error) { + // non-auxiliary data in the same payload (allowing to send contextual + // information for a file descriptor). + func SendFd(socket, file *os.File) error { +- var cfile C.struct_file_t +- cfile.fd = C.int(file.Fd()) +- cfile.name = C.CString(file.Name()) +- defer C.free(unsafe.Pointer(cfile.name)) ++ name := []byte(file.Name()) ++ if len(name) >= MaxNameLen { ++ return fmt.Errorf("sendfd: filename too long: %s", file.Name()) ++ } ++ oob := unix.UnixRights(int(file.Fd())) + +- _, err := C.sendfd(C.int(socket.Fd()), cfile) +- return err ++ return unix.Sendmsg(int(socket.Fd()), name, oob, nil, 0) + } +diff --git a/libcontainer/utils/cmsg.h b/libcontainer/utils/cmsg.h +deleted file mode 100644 +index 3fe7642..0000000 +--- a/libcontainer/utils/cmsg.h ++++ /dev/null +@@ -1,36 +0,0 @@ +-/* +- * Copyright 2016 SUSE LLC +- * +- * Licensed under the Apache License, Version 2.0 (the "License"); +- * you may not use this file except in compliance with the License. +- * You may obtain a copy of the License at +- * +- * http://www.apache.org/licenses/LICENSE-2.0 +- * +- * Unless required by applicable law or agreed to in writing, software +- * distributed under the License is distributed on an "AS IS" BASIS, +- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +- * See the License for the specific language governing permissions and +- * limitations under the License. +- */ +- +-#pragma once +- +-#if !defined(CMSG_H) +-#define CMSG_H +- +-#include +- +-/* TODO: Implement this properly with MSG_PEEK. */ +-#define TAG_BUFFER 4096 +- +-/* This mirrors Go's (*os.File). */ +-struct file_t { +- char *name; +- int fd; +-}; +- +-struct file_t recvfd(int sockfd); +-ssize_t sendfd(int sockfd, struct file_t file); +- +-#endif /* !defined(CMSG_H) */ +-- +2.7.4.3 + diff --git a/patch/0014-Set-container-state-only-once-during-start.patch b/patch/0014-Set-container-state-only-once-during-start.patch new file mode 100644 index 0000000..10a3a56 --- /dev/null +++ b/patch/0014-Set-container-state-only-once-during-start.patch @@ -0,0 +1,39 @@ +From b9b6667861bcc98579489aa6cec8012249fedbab Mon Sep 17 00:00:00 2001 +From: Harshal Patil +Date: Tue, 4 Apr 2017 15:08:04 +0530 +Subject: [PATCH 14/94] Set container state only once during start + +Change-Id: Iae2bcd397cbc40c540e32807d946c3ec81783803 +Signed-off-by: Harshal Patil +--- + libcontainer/container_linux.go | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go +index 71fa682..26e51ae 100644 +--- a/libcontainer/container_linux.go ++++ b/libcontainer/container_linux.go +@@ -263,9 +263,6 @@ func (c *linuxContainer) start(process *Process, isInit bool) error { + } + // generate a timestamp indicating when the container was started + c.created = time.Now().UTC() +- c.state = &runningState{ +- c: c, +- } + if isInit { + c.state = &createdState{ + c: c, +@@ -292,6 +289,10 @@ func (c *linuxContainer) start(process *Process, isInit bool) error { + } + } + } ++ } else { ++ c.state = &runningState{ ++ c: c, ++ } + } + return nil + } +-- +2.7.4.3 + diff --git a/patch/0015-checkpoint-check-if-system-supports-pre-dum.patch b/patch/0015-checkpoint-check-if-system-supports-pre-dum.patch new file mode 100644 index 0000000..f053387 --- /dev/null +++ b/patch/0015-checkpoint-check-if-system-supports-pre-dum.patch @@ -0,0 +1,161 @@ +From 6397990e4ee68389c05fa2a0c89d1c4d4e5e5677 Mon Sep 17 00:00:00 2001 +From: Adrian Reber +Date: Tue, 14 Mar 2017 20:21:58 +0000 +Subject: [PATCH 15/94] checkpoint: check if system supports + pre-dumping + +Instead of relying on version numbers it is possible to check if CRIU +actually supports certain features. This introduces an initial +implementation to check if CRIU and the underlying kernel actually +support dirty memory tracking for memory pre-dumping. + +Upstream CRIU also supports the lazy-page migration feature check and +additional feature checks can be included in CRIU to reduce the version +number parsing. There are also certain CRIU features which depend on one +side on the CRIU version but also require certain kernel versions to +actually work. CRIU knows if it can do certain things on the kernel it +is running on and using the feature check RPC interface makes it easier +for runc to decide if the criu+kernel combination will support that +feature. + +Feature checking was introduced with CRIU 1.8. Running with older CRIU +versions will ignore the feature check functionality and behave just +like it used to. + +v2: + - Do not use reflection to compare requested and responded + features. Checking which feature is available is now hardcoded + and needs to be adapted for every new feature check. The code + is now much more readable and simpler. + +v3: + - Move the variable criuFeat out of the linuxContainer struct, + as it is not container specific. Now it is a global variable. + +Change-Id: Ide44007d031d1bc4572dab1e88d78762944b379b +Signed-off-by: Adrian Reber +--- + libcontainer/container_linux.go | 85 ++++++++++++++++++++++++++++++++++++----- + 1 file changed, 76 insertions(+), 9 deletions(-) + +diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go +index 26e51ae..705472a 100644 +--- a/libcontainer/container_linux.go ++++ b/libcontainer/container_linux.go +@@ -536,6 +536,56 @@ func (c *linuxContainer) NotifyMemoryPressure(level PressureLevel) (<-chan struc + return notifyMemoryPressure(c.cgroupManager.GetPaths(), level) + } + ++var criuFeatures *criurpc.CriuFeatures ++ ++func (c *linuxContainer) checkCriuFeatures(criuOpts *CriuOpts, rpcOpts *criurpc.CriuOpts, criuFeat *criurpc.CriuFeatures) error { ++ ++ var t criurpc.CriuReqType ++ t = criurpc.CriuReqType_FEATURE_CHECK ++ ++ if err := c.checkCriuVersion("1.8"); err != nil { ++ // Feature checking was introduced with CRIU 1.8. ++ // Ignore the feature check if an older CRIU version is used ++ // and just act as before. ++ // As all automated PR testing is done using CRIU 1.7 this ++ // code will not be tested by automated PR testing. ++ return nil ++ } ++ ++ // make sure the features we are looking for are really not from ++ // some previous check ++ criuFeatures = nil ++ ++ req := &criurpc.CriuReq{ ++ Type: &t, ++ // Theoretically this should not be necessary but CRIU ++ // segfaults if Opts is empty. ++ // Fixed in CRIU 2.12 ++ Opts: rpcOpts, ++ Features: criuFeat, ++ } ++ ++ err := c.criuSwrk(nil, req, criuOpts, false) ++ if err != nil { ++ logrus.Debugf("%s", err) ++ return fmt.Errorf("CRIU feature check failed") ++ } ++ ++ logrus.Debugf("Feature check says: %s", criuFeatures) ++ missingFeatures := false ++ ++ if *criuFeat.MemTrack && !*criuFeatures.MemTrack { ++ missingFeatures = true ++ logrus.Debugf("CRIU does not support MemTrack") ++ } ++ ++ if missingFeatures { ++ return fmt.Errorf("CRIU is missing features") ++ } ++ ++ return nil ++} ++ + // checkCriuVersion checks Criu version greater than or equal to minVersion + func (c *linuxContainer) checkCriuVersion(minVersion string) error { + var x, y, z, versionReq int +@@ -718,6 +768,14 @@ func (c *linuxContainer) Checkpoint(criuOpts *CriuOpts) error { + + var t criurpc.CriuReqType + if criuOpts.PreDump { ++ feat := criurpc.CriuFeatures{ ++ MemTrack: proto.Bool(true), ++ } ++ ++ if err := c.checkCriuFeatures(criuOpts, &rpcOpts, &feat); err != nil { ++ return err ++ } ++ + t = criurpc.CriuReqType_PRE_DUMP + } else { + t = criurpc.CriuReqType_DUMP +@@ -1019,16 +1077,21 @@ func (c *linuxContainer) criuSwrk(process *Process, req *criurpc.CriuReq, opts * + } + + logrus.Debugf("Using CRIU in %s mode", req.GetType().String()) +- val := reflect.ValueOf(req.GetOpts()) +- v := reflect.Indirect(val) +- for i := 0; i < v.NumField(); i++ { +- st := v.Type() +- name := st.Field(i).Name +- if strings.HasPrefix(name, "XXX_") { +- continue ++ // In the case of criurpc.CriuReqType_FEATURE_CHECK req.GetOpts() ++ // should be empty. For older CRIU versions it still will be ++ // available but empty. ++ if req.GetType() != criurpc.CriuReqType_FEATURE_CHECK { ++ val := reflect.ValueOf(req.GetOpts()) ++ v := reflect.Indirect(val) ++ for i := 0; i < v.NumField(); i++ { ++ st := v.Type() ++ name := st.Field(i).Name ++ if strings.HasPrefix(name, "XXX_") { ++ continue ++ } ++ value := val.MethodByName("Get" + name).Call([]reflect.Value{}) ++ logrus.Debugf("CRIU option %s with value %v", name, value[0]) + } +- value := val.MethodByName("Get" + name).Call([]reflect.Value{}) +- logrus.Debugf("CRIU option %s with value %v", name, value[0]) + } + data, err := proto.Marshal(req) + if err != nil { +@@ -1064,6 +1127,10 @@ func (c *linuxContainer) criuSwrk(process *Process, req *criurpc.CriuReq, opts * + + t := resp.GetType() + switch { ++ case t == criurpc.CriuReqType_FEATURE_CHECK: ++ logrus.Debugf("Feature check says: %s", resp) ++ criuFeatures = resp.GetFeatures() ++ break + case t == criurpc.CriuReqType_NOTIFY: + if err := c.criuNotifications(resp, process, opts, extFds); err != nil { + return err +-- +2.7.4.3 + diff --git a/patch/0016-Fix-console-syscalls.patch b/patch/0016-Fix-console-syscalls.patch new file mode 100644 index 0000000..eced138 --- /dev/null +++ b/patch/0016-Fix-console-syscalls.patch @@ -0,0 +1,129 @@ +From 17199cf842a86765a21e2054e10e0c64f28353c8 Mon Sep 17 00:00:00 2001 +From: Christy Perez +Date: Mon, 27 Mar 2017 16:46:57 -0500 +Subject: [PATCH 16/94] Fix console syscalls + +Fixes opencontainers/runc/issues/1364 + +Change-Id: Ic12237e2ce327f4d9eab3145d0c4c2cff9fb641a +Signed-off-by: Christy Perez +--- + libcontainer/console_linux.go | 31 ++++++++++++++++--------------- + 1 file changed, 16 insertions(+), 15 deletions(-) + +diff --git a/libcontainer/console_linux.go b/libcontainer/console_linux.go +index e431766..5e364a8 100644 +--- a/libcontainer/console_linux.go ++++ b/libcontainer/console_linux.go +@@ -3,8 +3,9 @@ package libcontainer + import ( + "fmt" + "os" +- "syscall" + "unsafe" ++ ++ "golang.org/x/sys/unix" + ) + + func ConsoleFromFile(f *os.File) Console { +@@ -16,7 +17,7 @@ func ConsoleFromFile(f *os.File) Console { + // newConsole returns an initialized console that can be used within a container by copying bytes + // from the master side to the slave that is attached as the tty for the container's init process. + func newConsole() (Console, error) { +- master, err := os.OpenFile("/dev/ptmx", syscall.O_RDWR|syscall.O_NOCTTY|syscall.O_CLOEXEC, 0) ++ master, err := os.OpenFile("/dev/ptmx", unix.O_RDWR|unix.O_NOCTTY|unix.O_CLOEXEC, 0) + if err != nil { + return nil, err + } +@@ -68,8 +69,8 @@ func (c *linuxConsole) Close() error { + // mount initializes the console inside the rootfs mounting with the specified mount label + // and applying the correct ownership of the console. + func (c *linuxConsole) mount() error { +- oldMask := syscall.Umask(0000) +- defer syscall.Umask(oldMask) ++ oldMask := unix.Umask(0000) ++ defer unix.Umask(oldMask) + f, err := os.Create("/dev/console") + if err != nil && !os.IsExist(err) { + return err +@@ -77,19 +78,19 @@ func (c *linuxConsole) mount() error { + if f != nil { + f.Close() + } +- return syscall.Mount(c.slavePath, "/dev/console", "bind", syscall.MS_BIND, "") ++ return unix.Mount(c.slavePath, "/dev/console", "bind", unix.MS_BIND, "") + } + + // dupStdio opens the slavePath for the console and dups the fds to the current + // processes stdio, fd 0,1,2. + func (c *linuxConsole) dupStdio() error { +- slave, err := c.open(syscall.O_RDWR) ++ slave, err := c.open(unix.O_RDWR) + if err != nil { + return err + } + fd := int(slave.Fd()) + for _, i := range []int{0, 1, 2} { +- if err := syscall.Dup3(fd, i, 0); err != nil { ++ if err := unix.Dup3(fd, i, 0); err != nil { + return err + } + } +@@ -98,7 +99,7 @@ func (c *linuxConsole) dupStdio() error { + + // open is a clone of os.OpenFile without the O_CLOEXEC used to open the pty slave. + func (c *linuxConsole) open(flag int) (*os.File, error) { +- r, e := syscall.Open(c.slavePath, flag, 0) ++ r, e := unix.Open(c.slavePath, flag, 0) + if e != nil { + return nil, &os.PathError{ + Op: "open", +@@ -110,7 +111,7 @@ func (c *linuxConsole) open(flag int) (*os.File, error) { + } + + func ioctl(fd uintptr, flag, data uintptr) error { +- if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, flag, data); err != 0 { ++ if _, _, err := unix.Syscall(unix.SYS_IOCTL, fd, flag, data); err != 0 { + return err + } + return nil +@@ -120,13 +121,13 @@ func ioctl(fd uintptr, flag, data uintptr) error { + // unlockpt should be called before opening the slave side of a pty. + func unlockpt(f *os.File) error { + var u int32 +- return ioctl(f.Fd(), syscall.TIOCSPTLCK, uintptr(unsafe.Pointer(&u))) ++ return ioctl(f.Fd(), unix.TIOCSPTLCK, uintptr(unsafe.Pointer(&u))) + } + + // ptsname retrieves the name of the first available pts for the given master. + func ptsname(f *os.File) (string, error) { + var n int32 +- if err := ioctl(f.Fd(), syscall.TIOCGPTN, uintptr(unsafe.Pointer(&n))); err != nil { ++ if err := ioctl(f.Fd(), unix.TIOCGPTN, uintptr(unsafe.Pointer(&n))); err != nil { + return "", err + } + return fmt.Sprintf("/dev/pts/%d", n), nil +@@ -139,16 +140,16 @@ func ptsname(f *os.File) (string, error) { + // also relay that funky line discipline. + func saneTerminal(terminal *os.File) error { + // Go doesn't have a wrapper for any of the termios ioctls. +- var termios syscall.Termios ++ var termios unix.Termios + +- if err := ioctl(terminal.Fd(), syscall.TCGETS, uintptr(unsafe.Pointer(&termios))); err != nil { ++ if err := ioctl(terminal.Fd(), unix.TCGETS, uintptr(unsafe.Pointer(&termios))); err != nil { + return fmt.Errorf("ioctl(tty, tcgets): %s", err.Error()) + } + + // Set -onlcr so we don't have to deal with \r. +- termios.Oflag &^= syscall.ONLCR ++ termios.Oflag &^= unix.ONLCR + +- if err := ioctl(terminal.Fd(), syscall.TCSETS, uintptr(unsafe.Pointer(&termios))); err != nil { ++ if err := ioctl(terminal.Fd(), unix.TCSETS, uintptr(unsafe.Pointer(&termios))); err != nil { + return fmt.Errorf("ioctl(tty, tcsets): %s", err.Error()) + } + +-- +2.7.4.3 + diff --git a/patch/0017-restore-apply-resource-limits.patch b/patch/0017-restore-apply-resource-limits.patch new file mode 100644 index 0000000..c9df593 --- /dev/null +++ b/patch/0017-restore-apply-resource-limits.patch @@ -0,0 +1,34 @@ +From 7b92e178267794e026f5c38e632d82a00f038e96 Mon Sep 17 00:00:00 2001 +From: Andrei Vagin +Date: Fri, 7 Apr 2017 02:34:41 +0300 +Subject: [PATCH 17/94] restore: apply resource limits + +When C/R was implemented, it was enough to call manager.Set to apply +limits and to move a task. Now .Set() and .Apply() have to be called +separately. + +Change-Id: I4786732a1779a65eeb902fc1ef42b194ba8dd3b4 +Fixes: 8a740d5391a7 ("libcontainer: cgroups: don't Set in Apply") +Signed-off-by: Andrei Vagin +--- + libcontainer/container_linux.go | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go +index 705472a..b5563d6 100644 +--- a/libcontainer/container_linux.go ++++ b/libcontainer/container_linux.go +@@ -1008,6 +1008,10 @@ func (c *linuxContainer) criuApplyCgroups(pid int, req *criurpc.CriuReq) error { + return err + } + ++ if err := c.cgroupManager.Set(c.config); err != nil { ++ return newSystemError(err) ++ } ++ + path := fmt.Sprintf("/proc/%d/cgroup", pid) + cgroupsPaths, err := cgroups.ParseCgroupFile(path) + if err != nil { +-- +2.7.4.3 + diff --git a/patch/0018-could-load-a-stopped-container.patch b/patch/0018-could-load-a-stopped-container.patch new file mode 100644 index 0000000..a484f61 --- /dev/null +++ b/patch/0018-could-load-a-stopped-container.patch @@ -0,0 +1,35 @@ +From d8ea288801363d61c46a5eecfe7e1a9001767bc7 Mon Sep 17 00:00:00 2001 +From: CuiHaozhi +Date: Fri, 7 Apr 2017 07:39:41 -0400 +Subject: [PATCH 18/94] could load a stopped container. + +Change-Id: Ieabdef66ad7e9488a44b718093acf23f8aa947c4 +Signed-off-by: CuiHaozhi +--- + libcontainer/factory.go | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/libcontainer/factory.go b/libcontainer/factory.go +index f0ccb52..0986cd7 100644 +--- a/libcontainer/factory.go ++++ b/libcontainer/factory.go +@@ -10,7 +10,7 @@ type Factory interface { + // between 1 and 1024 characters, inclusive. + // + // The id must not already be in use by an existing container. Containers created using +- // a factory with the same path (and file system) must have distinct ids. ++ // a factory with the same path (and filesystem) must have distinct ids. + // + // Returns the new container with a running process. + // +@@ -28,7 +28,6 @@ type Factory interface { + // + // errors: + // Path does not exist +- // Container is stopped + // System error + Load(id string) (Container, error) + +-- +2.7.4.3 + diff --git a/patch/0019-Revert-back-to-using-sbin.patch b/patch/0019-Revert-back-to-using-sbin.patch new file mode 100644 index 0000000..dcaca2f --- /dev/null +++ b/patch/0019-Revert-back-to-using-sbin.patch @@ -0,0 +1,32 @@ +From a90e91c5fc8e6fb016d26666361e6d1bfd3f56c8 Mon Sep 17 00:00:00 2001 +From: Michael Crosby +Date: Fri, 14 Apr 2017 10:15:33 -0700 +Subject: [PATCH 19/94] Revert back to using /sbin + +This was changed in +https://github.com/opencontainers/runc/commit/d2f49696#diff-b67911656ef5d18c4ae36cb6741b7965R7 +and is causing install problems for people building runc and having it +installed in /bin and /sbin. + +Change-Id: Ibaef1dd279894342c48da5e6e8e7f1a7212003b8 +Signed-off-by: Michael Crosby +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 1cecca1..d6d337d 100644 +--- a/Makefile ++++ b/Makefile +@@ -4,7 +4,7 @@ + + SOURCES := $(shell find . 2>&1 | grep -E '.*\.(c|h|go)$$') + PREFIX := $(DESTDIR)/usr/local +-BINDIR := $(PREFIX)/bin ++BINDIR := $(PREFIX)/sbin + GIT_BRANCH := $(shell git rev-parse --abbrev-ref HEAD 2>/dev/null) + GIT_BRANCH_CLEAN := $(shell echo $(GIT_BRANCH) | sed -e "s/[^[:alnum:]]/-/g") + RUNC_IMAGE := runc_dev$(if $(GIT_BRANCH_CLEAN),:$(GIT_BRANCH_CLEAN)) +-- +2.7.4.3 + diff --git a/patch/0020-add-testcase-in-generic_error_test.go.patch b/patch/0020-add-testcase-in-generic_error_test.go.patch new file mode 100644 index 0000000..081dff5 --- /dev/null +++ b/patch/0020-add-testcase-in-generic_error_test.go.patch @@ -0,0 +1,57 @@ +From 9d30f4580c68c7d16a94d0df04b61571b212e55f Mon Sep 17 00:00:00 2001 +From: chchliang +Date: Wed, 12 Apr 2017 16:26:30 +0800 +Subject: [PATCH 20/94] add testcase in generic_error_test.go + +Change-Id: Id0e21750ea9724d48423ab16f70786a1f62ea81c +Signed-off-by: chchliang +--- + libcontainer/generic_error_test.go | 35 +++++++++++++++++++++++++++++++++++ + 1 file changed, 35 insertions(+) + +diff --git a/libcontainer/generic_error_test.go b/libcontainer/generic_error_test.go +index 292d2a3..8fbdd4d 100644 +--- a/libcontainer/generic_error_test.go ++++ b/libcontainer/generic_error_test.go +@@ -12,3 +12,38 @@ func TestErrorDetail(t *testing.T) { + t.Fatal(derr) + } + } ++ ++func TestErrorWithCode(t *testing.T) { ++ err := newGenericError(fmt.Errorf("test error"), SystemError) ++ if code := err.Code(); code != SystemError { ++ t.Fatalf("expected err code %q but %q", SystemError, code) ++ } ++} ++ ++func TestErrorWithError(t *testing.T) { ++ cc := []struct { ++ errmsg string ++ cause string ++ }{ ++ { ++ errmsg: "test error", ++ }, ++ { ++ errmsg: "test error", ++ cause: "test", ++ }, ++ } ++ ++ for _, v := range cc { ++ err := newSystemErrorWithCause(fmt.Errorf(v.errmsg), v.cause) ++ ++ msg := err.Error() ++ if v.cause == "" && msg != v.errmsg { ++ t.Fatalf("expected err(%q) equal errmsg(%q)", msg, v.errmsg) ++ } ++ if v.cause != "" && msg == v.errmsg { ++ t.Fatalf("unexpected err(%q) equal errmsg(%q)", msg, v.errmsg) ++ } ++ ++ } ++} +-- +2.7.4.3 + diff --git a/patch/0021-Fix-misspelling-of-properties-in-various-pl.patch b/patch/0021-Fix-misspelling-of-properties-in-various-pl.patch new file mode 100644 index 0000000..5eae225 --- /dev/null +++ b/patch/0021-Fix-misspelling-of-properties-in-various-pl.patch @@ -0,0 +1,53 @@ +From fe398ce943f5da085507be6a164568544fc0d1c4 Mon Sep 17 00:00:00 2001 +From: Tim Potter +Date: Fri, 21 Apr 2017 12:41:02 +1000 +Subject: [PATCH 21/94] Fix misspelling of "properties" in various + places + +Change-Id: I69229a0ba2472b52edd4c444ac7820ade837726d +Signed-off-by: Tim Potter +--- + checkpoint.go | 2 +- + man/runc-checkpoint.8.md | 2 +- + restore.go | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/checkpoint.go b/checkpoint.go +index 78977d7..9b5663f 100644 +--- a/checkpoint.go ++++ b/checkpoint.go +@@ -33,7 +33,7 @@ checkpointed.`, + cli.BoolFlag{Name: "file-locks", Usage: "handle file locks, for safety"}, + cli.BoolFlag{Name: "pre-dump", Usage: "dump container's memory information only, leave the container running after this"}, + cli.StringFlag{Name: "manage-cgroups-mode", Value: "", Usage: "cgroups mode: 'soft' (default), 'full' and 'strict'"}, +- cli.StringSliceFlag{Name: "empty-ns", Usage: "create a namespace, but don't restore its properies"}, ++ cli.StringSliceFlag{Name: "empty-ns", Usage: "create a namespace, but don't restore its properties"}, + }, + Action: func(context *cli.Context) error { + if err := checkArgs(context, 1, exactArgs); err != nil { +diff --git a/man/runc-checkpoint.8.md b/man/runc-checkpoint.8.md +index b0ce2f3..4c81fd4 100644 +--- a/man/runc-checkpoint.8.md ++++ b/man/runc-checkpoint.8.md +@@ -22,4 +22,4 @@ checkpointed. + --file-locks handle file locks, for safety + --pre-dump dump container's memory information only, leave the container running after this + --manage-cgroups-mode value cgroups mode: 'soft' (default), 'full' and 'strict' +- --empty-ns value create a namespace, but don't restore its properies ++ --empty-ns value create a namespace, but don't restore its properties +diff --git a/restore.go b/restore.go +index 06f635f..7ddc337 100644 +--- a/restore.go ++++ b/restore.go +@@ -80,7 +80,7 @@ using the runc checkpoint command.`, + }, + cli.StringSliceFlag{ + Name: "empty-ns", +- Usage: "create a namespace, but don't restore its properies", ++ Usage: "create a namespace, but don't restore its properties", + }, + }, + Action: func(context *cli.Context) error { +-- +2.7.4.3 + diff --git a/patch/0022-Add-a-rootless-containers-section-on-README.patch b/patch/0022-Add-a-rootless-containers-section-on-README.patch new file mode 100644 index 0000000..80b8683 --- /dev/null +++ b/patch/0022-Add-a-rootless-containers-section-on-README.patch @@ -0,0 +1,63 @@ +From e287eae0ba5cb39df6f09b3ce8436af3810986f3 Mon Sep 17 00:00:00 2001 +From: Jonh Wendell +Date: Fri, 21 Apr 2017 20:43:56 -0300 +Subject: [PATCH 22/94] Add a rootless containers section on README + +Closes #1413. + +Change-Id: I9058fea54d9f25c2fc0f07ca74a83300eed40b73 +Signed-off-by: Jonh Wendell +--- + README.md | 20 ++++++++++++++++++-- + 1 file changed, 18 insertions(+), 2 deletions(-) + +diff --git a/README.md b/README.md +index ae1ab28..a951f0d 100644 +--- a/README.md ++++ b/README.md +@@ -117,8 +117,8 @@ Assuming you have an OCI bundle from the previous step you can execute the conta + The first way is to use the convenience command `run` that will handle creating, starting, and deleting the container after it exits. + + ```bash ++# run as root + cd /mycontainer +- + runc run mycontainerid + ``` + +@@ -165,8 +165,8 @@ Now we can go though the lifecycle operations in your shell. + + + ```bash ++# run as root + cd /mycontainer +- + runc create mycontainerid + + # view the container is created and in the "created" state +@@ -185,6 +185,22 @@ runc delete mycontainerid + This adds more complexity but allows higher level systems to manage runc and provides points in the containers creation to setup various settings after the container has created and/or before it is deleted. + This is commonly used to setup the container's network stack after `create` but before `start` where the user's defined process will be running. + ++#### Rootless containers ++`runc` has the ability to run containers without root privileges. This is called `rootless`. You need to pass some parameters to `runc` in order to run rootless containers. See below and compare with the previous version. Run the following commands as an ordinary user: ++```bash ++# Same as the first example ++mkdir ~/mycontainer ++cd ~/mycontainer ++mkdir rootfs ++docker export $(docker create busybox) | tar -C rootfs -xvf - ++ ++# The --rootless parameter instructs runc spec to generate a configuration for a rootless container, which will allow you to run the container as a non-root user. ++runc spec --rootless ++ ++# The --root parameter tells runc where to store the container state. It must be writable by the user. ++runc --root /tmp/runc run mycontainerid ++``` ++ + #### Supervisors + + `runc` can be used with process supervisors and init systems to ensure that containers are restarted when they exit. +-- +2.7.4.3 + diff --git a/patch/0023-vendor-clean-up-to-be-better-written.patch b/patch/0023-vendor-clean-up-to-be-better-written.patch new file mode 100644 index 0000000..7dd13ba --- /dev/null +++ b/patch/0023-vendor-clean-up-to-be-better-written.patch @@ -0,0 +1,69 @@ +From d6c62e91d7763bb88287a052f6f5a3dc7bee5284 Mon Sep 17 00:00:00 2001 +From: Aleksa Sarai +Date: Sat, 15 Apr 2017 17:31:39 +1000 +Subject: [PATCH 23/94] vendor: clean up to be better written + +vndr doesn't support non-top-level imports, and in addition we really +should be using tagged releases far more than we currently are +(*especially* when it come to the OCI specs). + +Change-Id: Ifb997a6d9edf2d89d6b2d440ea4fa305b1b4df18 +Signed-off-by: Aleksa Sarai +--- + tests/integration/spec.bats | 2 +- + vendor.conf | 28 +++++++++++++++++----------- + 2 files changed, 18 insertions(+), 12 deletions(-) + +diff --git a/tests/integration/spec.bats b/tests/integration/spec.bats +index e9f28fb..6061706 100644 +--- a/tests/integration/spec.bats ++++ b/tests/integration/spec.bats +@@ -72,7 +72,7 @@ function teardown() { + run git clone https://github.com/opencontainers/runtime-spec.git src/runtime-spec + [ "$status" -eq 0 ] + +- SPEC_COMMIT=$(grep runtime-spec ${TESTDIR}/../../vendor.conf | cut -d ' ' -f 2) ++ SPEC_COMMIT=$(grep '^github.com/opencontainers/runtime-spec' ${TESTDIR}/../../vendor.conf | cut -d ' ' -f 2) + run git -C src/runtime-spec reset --hard "${SPEC_COMMIT}" + + [ "$status" -eq 0 ] +diff --git a/vendor.conf b/vendor.conf +index 17a546e..6ab9bf8 100644 +--- a/vendor.conf ++++ b/vendor.conf +@@ -1,15 +1,21 @@ +-github.com/Sirupsen/logrus 26709e2714106fb8ad40b773b711ebce25b78914 +-github.com/coreos/go-systemd 48702e0da86bd25e76cfef347e2adeb434a0d0a6 +-github.com/coreos/pkg/dlopen 3ac0863d7acf3bc44daf49afef8919af12f704ef +-github.com/docker/docker 0f5c9d301b9b1cca66b3ea0f9dec3b5317d3686d +-github.com/docker/go-units 9b001659dd36225e356b4467c465d732e745f53d +-github.com/godbus/dbus c7fdd8b5cd55e87b4e1f4e372cdb1db61dd6c66f +-github.com/golang/protobuf/proto f7137ae6b19afbfd61a94b746fda3b3fe0491874 ++# OCI runtime-spec. When updating this, make sure you use a version tag rather ++# than a commit ID so it's much more obvious what version of the spec we are ++# using. ++github.com/opencontainers/runtime-spec v1.0.0-rc5 ++# Core libcontainer functionality. + github.com/mrunalp/fileutils ed869b029674c0e9ce4c0dfa781405c2d9946d08 +-github.com/opencontainers/runtime-spec/specs-go 035da1dca3dfbb00d752eb58b0b158d6129f3776 +-github.com/opencontainers/selinux ba1aefe8057f1d0cfb8e88d0ec1dc85925ef987d ++github.com/opencontainers/selinux v1.0.0-rc1 + github.com/seccomp/libseccomp-golang 32f571b70023028bd57d9288c20efbcb237f3ce0 +-github.com/syndtr/gocapability/capability e7cb7fa329f456b3855136a2642b197bad7366ba +-github.com/urfave/cli d53eb991652b1d438abdd34ce4bfa3ef1539108e ++github.com/Sirupsen/logrus 26709e2714106fb8ad40b773b711ebce25b78914 ++github.com/syndtr/gocapability e7cb7fa329f456b3855136a2642b197bad7366ba + github.com/vishvananda/netlink 1e2e08e8a2dcdacaae3f14ac44c5cfa31361f270 ++# systemd integration. ++github.com/coreos/go-systemd v14 ++github.com/coreos/pkg v3 ++github.com/godbus/dbus v3 ++github.com/golang/protobuf f7137ae6b19afbfd61a94b746fda3b3fe0491874 ++# Command-line interface. ++github.com/docker/docker 0f5c9d301b9b1cca66b3ea0f9dec3b5317d3686d ++github.com/docker/go-units v0.2.0 ++github.com/urfave/cli d53eb991652b1d438abdd34ce4bfa3ef1539108e + golang.org/x/sys 9a7256cb28ed514b4e1e5f68959914c4c28a92e0 https://github.com/golang/sys +-- +2.7.4.3 + diff --git a/patch/0024-Optimizing-looping-over-namespaces.patch b/patch/0024-Optimizing-looping-over-namespaces.patch new file mode 100644 index 0000000..7d8dcec --- /dev/null +++ b/patch/0024-Optimizing-looping-over-namespaces.patch @@ -0,0 +1,58 @@ +From 6108649ff1f4f270bfeb5f2aec1de8917d9b7609 Mon Sep 17 00:00:00 2001 +From: Harshal Patil +Date: Tue, 25 Apr 2017 15:56:40 +0530 +Subject: [PATCH 24/94] Optimizing looping over namespaces + +Change-Id: I82612d1f8161b4656011ba45b619dcd9150a3c2f +Signed-off-by: Harshal Patil +--- + libcontainer/container_linux.go | 21 +++++++++++---------- + 1 file changed, 11 insertions(+), 10 deletions(-) + +diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go +index b5563d6..aeaf583 100644 +--- a/libcontainer/container_linux.go ++++ b/libcontainer/container_linux.go +@@ -1454,18 +1454,17 @@ func (c *linuxContainer) orderNamespacePaths(namespaces map[configs.NamespaceTyp + configs.NEWNS, + } + +- // Remove namespaces that we don't need to join. +- var nsTypes []configs.NamespaceType + for _, ns := range order { +- if c.config.Namespaces.Contains(ns) { +- nsTypes = append(nsTypes, ns) ++ ++ // Remove namespaces that we don't need to join. ++ if !c.config.Namespaces.Contains(ns) { ++ continue + } +- } +- for _, nsType := range nsTypes { +- if p, ok := namespaces[nsType]; ok && p != "" { ++ ++ if p, ok := namespaces[ns]; ok && p != "" { + // check if the requested namespace is supported +- if !configs.IsNamespaceSupported(nsType) { +- return nil, newSystemError(fmt.Errorf("namespace %s is not supported", nsType)) ++ if !configs.IsNamespaceSupported(ns) { ++ return nil, newSystemError(fmt.Errorf("namespace %s is not supported", ns)) + } + // only set to join this namespace if it exists + if _, err := os.Lstat(p); err != nil { +@@ -1476,9 +1475,11 @@ func (c *linuxContainer) orderNamespacePaths(namespaces map[configs.NamespaceTyp + if strings.ContainsRune(p, ',') { + return nil, newSystemError(fmt.Errorf("invalid path %s", p)) + } +- paths = append(paths, fmt.Sprintf("%s:%s", configs.NsName(nsType), p)) ++ paths = append(paths, fmt.Sprintf("%s:%s", configs.NsName(ns), p)) + } ++ + } ++ + return paths, nil + } + +-- +2.7.4.3 + diff --git a/patch/0025-Add-a-rootless-section-to-spec-man-page-and.patch b/patch/0025-Add-a-rootless-section-to-spec-man-page-and.patch new file mode 100644 index 0000000..f67965c --- /dev/null +++ b/patch/0025-Add-a-rootless-section-to-spec-man-page-and.patch @@ -0,0 +1,54 @@ +From 06f6824badbdc3a8c89d106abe5337c869a7d95f Mon Sep 17 00:00:00 2001 +From: Jonh Wendell +Date: Thu, 27 Apr 2017 10:52:31 -0300 +Subject: [PATCH 25/94] Add a rootless section to "spec" man page and + command help + +Change-Id: I6211c1adf2f6428652c75cd7cb76b86d782e7237 +Signed-off-by: Jonh Wendell +--- + man/runc-spec.8.md | 3 +++ + spec.go | 9 +++++++-- + 2 files changed, 10 insertions(+), 2 deletions(-) + +diff --git a/man/runc-spec.8.md b/man/runc-spec.8.md +index 3c69e23..4f8e9bb 100644 +--- a/man/runc-spec.8.md ++++ b/man/runc-spec.8.md +@@ -45,5 +45,8 @@ already running as root, you can use sudo to give runc root privilege. For + example: "sudo runc start container1" will give runc root privilege to start the + container on your host. + ++Alternatively, you can start a rootless container, which has the ability to run without root privileges. For this to work, the specification file needs to be adjusted accordingly. You can pass the parameter --rootless to this command to generate a proper rootless spec file. ++ + # OPTIONS + --bundle value, -b value path to the root of the bundle directory ++ --rootless generate a configuration for a rootless container +diff --git a/spec.go b/spec.go +index 9024ad4..a15c84e 100644 +--- a/spec.go ++++ b/spec.go +@@ -51,13 +51,18 @@ must be unique on your host. + + An alternative for generating a customized spec config is to use "oci-runtime-tool", the + sub-command "oci-runtime-tool generate" has lots of options that can be used to do any +-customizations as you want, see [runtime-tools](https://github.com/opencontainers/runtime-tools) ++customizations as you want, see runtime-tools (https://github.com/opencontainers/runtime-tools) + to get more information. + + When starting a container through runc, runc needs root privilege. If not + already running as root, you can use sudo to give runc root privilege. For + example: "sudo runc start container1" will give runc root privilege to start the +-container on your host.`, ++container on your host. ++ ++Alternatively, you can start a rootless container, which has the ability to run ++without root privileges. For this to work, the specification file needs to be ++adjusted accordingly. You can pass the parameter --rootless to this command to ++generate a proper rootless spec file.`, + Flags: []cli.Flag{ + cli.StringFlag{ + Name: "bundle, b", +-- +2.7.4.3 + diff --git a/patch/0026-Allow-updating-container-pids-limit.patch b/patch/0026-Allow-updating-container-pids-limit.patch new file mode 100644 index 0000000..91177cf --- /dev/null +++ b/patch/0026-Allow-updating-container-pids-limit.patch @@ -0,0 +1,150 @@ +From 01218c77284209117e40350419fb60f76896a369 Mon Sep 17 00:00:00 2001 +From: Kenfe-Mickael Laventure +Date: Wed, 26 Apr 2017 09:53:20 -0700 +Subject: [PATCH 26/94] Allow updating container pids limit + +Change-Id: I5cc0d8804b1de3da943e4651806d0041eb33d7f2 +Signed-off-by: Kenfe-Mickael Laventure +--- + tests/integration/update.bats | 23 +++++++++++++++++++++-- + update.go | 9 +++++++++ + 2 files changed, 30 insertions(+), 2 deletions(-) + +diff --git a/tests/integration/update.bats b/tests/integration/update.bats +index 4a6bf7f..a3f3782 100644 +--- a/tests/integration/update.bats ++++ b/tests/integration/update.bats +@@ -33,6 +33,9 @@ function setup() { + "blockio": { + "blkioWeight": 1000 + }, ++ "pids": { ++ "limit": 20 ++ }, + EOF + ) + DATA=$(echo ${DATA} | sed 's/\n/\\n/g') +@@ -61,7 +64,7 @@ function check_cgroup_value() { + wait_for_container 15 1 test_update + + # get the cgroup paths +- for g in MEMORY CPUSET CPU BLKIO; do ++ for g in MEMORY CPUSET CPU BLKIO PIDS; do + base_path=$(grep "cgroup" /proc/self/mountinfo | gawk 'toupper($NF) ~ /\<'${g}'\>/ { print $5; exit }') + eval CGROUP_${g}="${base_path}/runc-update-integration-test" + done +@@ -78,6 +81,7 @@ function check_cgroup_value() { + check_cgroup_value $CGROUP_MEMORY "memory.kmem.tcp.limit_in_bytes" 11534336 + check_cgroup_value $CGROUP_MEMORY "memory.limit_in_bytes" 33554432 + check_cgroup_value $CGROUP_MEMORY "memory.soft_limit_in_bytes" 25165824 ++ check_cgroup_value $CGROUP_PIDS "pids.max" 20 + + # update blkio-weight + runc update test_update --blkio-weight 500 +@@ -160,6 +164,11 @@ function check_cgroup_value() { + [ "$status" -eq 0 ] + check_cgroup_value $CGROUP_MEMORY "memory.kmem.tcp.limit_in_bytes" 41943040 + ++ # update pids limit ++ runc update test_update --pids-limit 10 ++ [ "$status" -eq 0 ] ++ check_cgroup_value $CGROUP_PIDS "pids.max" 10 ++ + # Revert to the test initial value via json on stding + runc update -r - test_update < +Date: Fri, 28 Apr 2017 10:12:56 +0530 +Subject: [PATCH 27/94] Remove redundant declaraion of namespace + slice + +Change-Id: I7e7e45cec65264a91ef3dec804953a1285b23b96 +Signed-off-by: Harshal Patil +--- + libcontainer/configs/namespaces_unix.go | 6 +++--- + libcontainer/container_linux.go | 11 +---------- + 2 files changed, 4 insertions(+), 13 deletions(-) + +diff --git a/libcontainer/configs/namespaces_unix.go b/libcontainer/configs/namespaces_unix.go +index 8beba9d..1f0b3ee 100644 +--- a/libcontainer/configs/namespaces_unix.go ++++ b/libcontainer/configs/namespaces_unix.go +@@ -64,12 +64,12 @@ func IsNamespaceSupported(ns NamespaceType) bool { + + func NamespaceTypes() []NamespaceType { + return []NamespaceType{ ++ NEWUSER, // Keep user NS always first, don't move it. ++ NEWIPC, ++ NEWUTS, + NEWNET, + NEWPID, + NEWNS, +- NEWUTS, +- NEWIPC, +- NEWUSER, + } + } + +diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go +index aeaf583..173a3f0 100644 +--- a/libcontainer/container_linux.go ++++ b/libcontainer/container_linux.go +@@ -1444,17 +1444,8 @@ func (c *linuxContainer) currentState() (*State, error) { + // can setns in order. + func (c *linuxContainer) orderNamespacePaths(namespaces map[configs.NamespaceType]string) ([]string, error) { + paths := []string{} +- order := []configs.NamespaceType{ +- // The user namespace *must* be done first. +- configs.NEWUSER, +- configs.NEWIPC, +- configs.NEWUTS, +- configs.NEWNET, +- configs.NEWPID, +- configs.NEWNS, +- } + +- for _, ns := range order { ++ for _, ns := range configs.NamespaceTypes() { + + // Remove namespaces that we don't need to join. + if !c.config.Namespaces.Contains(ns) { +-- +2.7.4.3 + diff --git a/patch/0028-Revert-saneTerminal.patch b/patch/0028-Revert-saneTerminal.patch new file mode 100644 index 0000000..8336f37 --- /dev/null +++ b/patch/0028-Revert-saneTerminal.patch @@ -0,0 +1,31 @@ +From 34dc868ee8515be89835bc98ccbf01f22bd6b1b9 Mon Sep 17 00:00:00 2001 +From: Michael Crosby +Date: Wed, 7 Jun 2017 10:51:42 -0700 +Subject: [PATCH 28/94] Revert saneTerminal + +Keep the ONCLR for the terminal created by runc for backwards compat +support of older clients. + +Change-Id: Ibdf33687262f13ef98c882328d55c9c4212ce0b6 +Signed-off-by: Michael Crosby +--- + libcontainer/console_linux.go | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/libcontainer/console_linux.go b/libcontainer/console_linux.go +index 5e364a8..5927bdc 100644 +--- a/libcontainer/console_linux.go ++++ b/libcontainer/console_linux.go +@@ -21,9 +21,6 @@ func newConsole() (Console, error) { + if err != nil { + return nil, err + } +- if err := saneTerminal(master); err != nil { +- return nil, err +- } + console, err := ptsname(master) + if err != nil { + return nil, err +-- +2.7.4.3 + diff --git a/patch/0029-vendor-runtime-spec-fork-docker-runtime-spe.patch b/patch/0029-vendor-runtime-spec-fork-docker-runtime-spe.patch new file mode 100644 index 0000000..d5a6ea3 --- /dev/null +++ b/patch/0029-vendor-runtime-spec-fork-docker-runtime-spe.patch @@ -0,0 +1,59 @@ +From c9d66ffed85529579f4247581d0d387fc21d92fa Mon Sep 17 00:00:00 2001 +From: Tibor Vass +Date: Thu, 6 Jul 2017 10:28:14 -0700 +Subject: [PATCH 29/94] vendor runtime-spec fork + docker/runtime-spec@a45ba0989fc26c695fe166a49c45bb8b7618ab36 + +This vendoring brings in the change from uint64 to int64 in the Memory +structs. + +Change-Id: Ic928ff9cde8055a24ad039ccff64b8ceff917142 +Signed-off-by: Tibor Vass +--- + vendor.conf | 2 +- + .../opencontainers/runtime-spec/specs-go/config.go | 12 ++++++------ + 2 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/vendor.conf b/vendor.conf +index 6ab9bf8..b961707 100644 +--- a/vendor.conf ++++ b/vendor.conf +@@ -1,7 +1,7 @@ + # OCI runtime-spec. When updating this, make sure you use a version tag rather + # than a commit ID so it's much more obvious what version of the spec we are + # using. +-github.com/opencontainers/runtime-spec v1.0.0-rc5 ++github.com/opencontainers/runtime-spec a45ba0989fc26c695fe166a49c45bb8b7618ab36 https://github.com/docker/runtime-spec + # Core libcontainer functionality. + github.com/mrunalp/fileutils ed869b029674c0e9ce4c0dfa781405c2d9946d08 + github.com/opencontainers/selinux v1.0.0-rc1 +diff --git a/vendor/github.com/opencontainers/runtime-spec/specs-go/config.go b/vendor/github.com/opencontainers/runtime-spec/specs-go/config.go +index bd8e96a..6d2a026 100644 +--- a/vendor/github.com/opencontainers/runtime-spec/specs-go/config.go ++++ b/vendor/github.com/opencontainers/runtime-spec/specs-go/config.go +@@ -281,16 +281,16 @@ type LinuxBlockIO struct { + // LinuxMemory for Linux cgroup 'memory' resource management + type LinuxMemory struct { + // Memory limit (in bytes). +- Limit *uint64 `json:"limit,omitempty"` ++ Limit *int64 `json:"limit,omitempty"` + // Memory reservation or soft_limit (in bytes). +- Reservation *uint64 `json:"reservation,omitempty"` ++ Reservation *int64 `json:"reservation,omitempty"` + // Total memory limit (memory + swap). +- Swap *uint64 `json:"swap,omitempty"` ++ Swap *int64 `json:"swap,omitempty"` + // Kernel memory limit (in bytes). +- Kernel *uint64 `json:"kernel,omitempty"` ++ Kernel *int64 `json:"kernel,omitempty"` + // Kernel memory limit for tcp (in bytes) +- KernelTCP *uint64 `json:"kernelTCP,omitempty"` +- // How aggressive the kernel will swap memory pages. Range from 0 to 100. ++ KernelTCP *int64 `json:"kernelTCP,omitempty"` ++ // How aggressive the kernel will swap memory pages. + Swappiness *uint64 `json:"swappiness,omitempty"` + } + +-- +2.7.4.3 + diff --git a/patch/0030-Update-memory-specs-to-use-int64-not-uint64.patch b/patch/0030-Update-memory-specs-to-use-int64-not-uint64.patch new file mode 100644 index 0000000..382ce82 --- /dev/null +++ b/patch/0030-Update-memory-specs-to-use-int64-not-uint64.patch @@ -0,0 +1,198 @@ +From 8ffbf2a8b8ae7119ae31bb15a30cb41711b809e2 Mon Sep 17 00:00:00 2001 +From: Justin Cormack +Date: Fri, 23 Jun 2017 17:17:00 -0700 +Subject: [PATCH 30/94] Update memory specs to use int64 not uint64 + +replace #1492 #1494 +fix #1422 + +Since https://github.com/opencontainers/runtime-spec/pull/876 the memory +specifications are now `int64`, as that better matches the visible interface where +`-1` is a valid value. Otherwise finding the correct value was difficult as it +was kernel dependent. + +Signed-off-by: Justin Cormack +(cherry picked from commit 3d9074ead33a5c27dc20bb49457c69c6d2ae6b57) +Signed-off-by: Tibor Vass + +Change-Id: I07ec53368c5058076d3bd35e122f32259bf69854 +--- + libcontainer/cgroups/fs/memory.go | 36 +++++++++++++++++------------------- + libcontainer/configs/cgroup_unix.go | 10 +++++----- + update.go | 14 +++++++------- + 3 files changed, 29 insertions(+), 31 deletions(-) + +diff --git a/libcontainer/cgroups/fs/memory.go b/libcontainer/cgroups/fs/memory.go +index 0981cfb..c993839 100644 +--- a/libcontainer/cgroups/fs/memory.go ++++ b/libcontainer/cgroups/fs/memory.go +@@ -71,14 +71,14 @@ func EnableKernelMemoryAccounting(path string) error { + // until a limit is set on the cgroup and limit cannot be set once the + // cgroup has children, or if there are already tasks in the cgroup. + for _, i := range []int64{1, -1} { +- if err := setKernelMemory(path, uint64(i)); err != nil { ++ if err := setKernelMemory(path, i); err != nil { + return err + } + } + return nil + } + +-func setKernelMemory(path string, kernelMemoryLimit uint64) error { ++func setKernelMemory(path string, kernelMemoryLimit int64) error { + if path == "" { + return fmt.Errorf("no such directory for %s", cgroupKernelMemoryLimit) + } +@@ -86,7 +86,7 @@ func setKernelMemory(path string, kernelMemoryLimit uint64) error { + // kernel memory is not enabled on the system so we should do nothing + return nil + } +- if err := ioutil.WriteFile(filepath.Join(path, cgroupKernelMemoryLimit), []byte(strconv.FormatUint(kernelMemoryLimit, 10)), 0700); err != nil { ++ if err := ioutil.WriteFile(filepath.Join(path, cgroupKernelMemoryLimit), []byte(strconv.FormatInt(kernelMemoryLimit, 10)), 0700); err != nil { + // Check if the error number returned by the syscall is "EBUSY" + // The EBUSY signal is returned on attempts to write to the + // memory.kmem.limit_in_bytes file if the cgroup has children or +@@ -104,14 +104,12 @@ func setKernelMemory(path string, kernelMemoryLimit uint64) error { + } + + func setMemoryAndSwap(path string, cgroup *configs.Cgroup) error { +- ulimited := -1 +- +- // If the memory update is set to uint64(-1) we should also +- // set swap to uint64(-1), it means unlimited memory. +- if cgroup.Resources.Memory == uint64(ulimited) { +- // Only set swap if it's enbled in kernel ++ // If the memory update is set to -1 we should also ++ // set swap to -1, it means unlimited memory. ++ if cgroup.Resources.Memory == -1 { ++ // Only set swap if it's enabled in kernel + if cgroups.PathExists(filepath.Join(path, cgroupMemorySwapLimit)) { +- cgroup.Resources.MemorySwap = uint64(ulimited) ++ cgroup.Resources.MemorySwap = -1 + } + } + +@@ -126,29 +124,29 @@ func setMemoryAndSwap(path string, cgroup *configs.Cgroup) error { + // When update memory limit, we should adapt the write sequence + // for memory and swap memory, so it won't fail because the new + // value and the old value don't fit kernel's validation. +- if cgroup.Resources.MemorySwap == uint64(ulimited) || memoryUsage.Limit < cgroup.Resources.MemorySwap { +- if err := writeFile(path, cgroupMemorySwapLimit, strconv.FormatUint(cgroup.Resources.MemorySwap, 10)); err != nil { ++ if cgroup.Resources.MemorySwap == -1 || memoryUsage.Limit < uint64(cgroup.Resources.MemorySwap) { ++ if err := writeFile(path, cgroupMemorySwapLimit, strconv.FormatInt(cgroup.Resources.MemorySwap, 10)); err != nil { + return err + } +- if err := writeFile(path, cgroupMemoryLimit, strconv.FormatUint(cgroup.Resources.Memory, 10)); err != nil { ++ if err := writeFile(path, cgroupMemoryLimit, strconv.FormatInt(cgroup.Resources.Memory, 10)); err != nil { + return err + } + } else { +- if err := writeFile(path, cgroupMemoryLimit, strconv.FormatUint(cgroup.Resources.Memory, 10)); err != nil { ++ if err := writeFile(path, cgroupMemoryLimit, strconv.FormatInt(cgroup.Resources.Memory, 10)); err != nil { + return err + } +- if err := writeFile(path, cgroupMemorySwapLimit, strconv.FormatUint(cgroup.Resources.MemorySwap, 10)); err != nil { ++ if err := writeFile(path, cgroupMemorySwapLimit, strconv.FormatInt(cgroup.Resources.MemorySwap, 10)); err != nil { + return err + } + } + } else { + if cgroup.Resources.Memory != 0 { +- if err := writeFile(path, cgroupMemoryLimit, strconv.FormatUint(cgroup.Resources.Memory, 10)); err != nil { ++ if err := writeFile(path, cgroupMemoryLimit, strconv.FormatInt(cgroup.Resources.Memory, 10)); err != nil { + return err + } + } + if cgroup.Resources.MemorySwap != 0 { +- if err := writeFile(path, cgroupMemorySwapLimit, strconv.FormatUint(cgroup.Resources.MemorySwap, 10)); err != nil { ++ if err := writeFile(path, cgroupMemorySwapLimit, strconv.FormatInt(cgroup.Resources.MemorySwap, 10)); err != nil { + return err + } + } +@@ -169,13 +167,13 @@ func (s *MemoryGroup) Set(path string, cgroup *configs.Cgroup) error { + } + + if cgroup.Resources.MemoryReservation != 0 { +- if err := writeFile(path, "memory.soft_limit_in_bytes", strconv.FormatUint(cgroup.Resources.MemoryReservation, 10)); err != nil { ++ if err := writeFile(path, "memory.soft_limit_in_bytes", strconv.FormatInt(cgroup.Resources.MemoryReservation, 10)); err != nil { + return err + } + } + + if cgroup.Resources.KernelMemoryTCP != 0 { +- if err := writeFile(path, "memory.kmem.tcp.limit_in_bytes", strconv.FormatUint(cgroup.Resources.KernelMemoryTCP, 10)); err != nil { ++ if err := writeFile(path, "memory.kmem.tcp.limit_in_bytes", strconv.FormatInt(cgroup.Resources.KernelMemoryTCP, 10)); err != nil { + return err + } + } +diff --git a/libcontainer/configs/cgroup_unix.go b/libcontainer/configs/cgroup_unix.go +index 7572289..e654960 100644 +--- a/libcontainer/configs/cgroup_unix.go ++++ b/libcontainer/configs/cgroup_unix.go +@@ -45,19 +45,19 @@ type Resources struct { + Devices []*Device `json:"devices"` + + // Memory limit (in bytes) +- Memory uint64 `json:"memory"` ++ Memory int64 `json:"memory"` + + // Memory reservation or soft_limit (in bytes) +- MemoryReservation uint64 `json:"memory_reservation"` ++ MemoryReservation int64 `json:"memory_reservation"` + + // Total memory usage (memory + swap); set `-1` to enable unlimited swap +- MemorySwap uint64 `json:"memory_swap"` ++ MemorySwap int64 `json:"memory_swap"` + + // Kernel memory limit (in bytes) +- KernelMemory uint64 `json:"kernel_memory"` ++ KernelMemory int64 `json:"kernel_memory"` + + // Kernel memory limit for TCP use (in bytes) +- KernelMemoryTCP uint64 `json:"kernel_memory_tcp"` ++ KernelMemoryTCP int64 `json:"kernel_memory_tcp"` + + // CPU shares (relative weight vs. other containers) + CpuShares uint64 `json:"cpu_shares"` +diff --git a/update.go b/update.go +index 5520681..226a18a 100644 +--- a/update.go ++++ b/update.go +@@ -124,11 +124,11 @@ other options are ignored. + + r := specs.LinuxResources{ + Memory: &specs.LinuxMemory{ +- Limit: u64Ptr(0), +- Reservation: u64Ptr(0), +- Swap: u64Ptr(0), +- Kernel: u64Ptr(0), +- KernelTCP: u64Ptr(0), ++ Limit: i64Ptr(0), ++ Reservation: i64Ptr(0), ++ Swap: i64Ptr(0), ++ Kernel: i64Ptr(0), ++ KernelTCP: i64Ptr(0), + }, + CPU: &specs.LinuxCPU{ + Shares: u64Ptr(0), +@@ -213,7 +213,7 @@ other options are ignored. + } + for _, pair := range []struct { + opt string +- dest *uint64 ++ dest *int64 + }{ + {"memory", r.Memory.Limit}, + {"memory-swap", r.Memory.Swap}, +@@ -232,7 +232,7 @@ other options are ignored. + } else { + v = -1 + } +- *pair.dest = uint64(v) ++ *pair.dest = v + } + } + r.Pids.Limit = int64(context.Int("pids-limit")) +-- +2.7.4.3 + diff --git a/patch/0031-Add-spec-for-euleros.patch b/patch/0031-Add-spec-for-euleros.patch new file mode 100644 index 0000000..cc24a0c --- /dev/null +++ b/patch/0031-Add-spec-for-euleros.patch @@ -0,0 +1,70 @@ +From 3a4b5e8752e2200d0b7967c0cf0fd8ab859b6d1a Mon Sep 17 00:00:00 2001 +From: Lei Jitang +Date: Mon, 17 Jul 2017 02:39:37 -0400 +Subject: [PATCH 31/94] Add spec for euleros + +Change-Id: I74128e7ba4aa7f2a15515ac753664c933432b149 +Signed-off-by: Lei Jitang +--- + script/runc-euleros.spec | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 49 insertions(+) + create mode 100644 script/runc-euleros.spec + +diff --git a/script/runc-euleros.spec b/script/runc-euleros.spec +new file mode 100644 +index 0000000..a925e02 +--- /dev/null ++++ b/script/runc-euleros.spec +@@ -0,0 +1,49 @@ ++%global _bindir /usr/local/bin ++ ++Name: docker-runc ++Version: 1.0.0.rc3 ++Release: 1%{?dist} ++Summary: runc is a CLI tool for spawning and running containers according to the OCF specification ++ ++License: ASL 2.0 ++Source: %{name}.tar.gz ++ ++URL: https://www.opencontainers.org/ ++Vendor: OCI ++Packager: OCI ++ ++BuildRequires: golang == 1.8.3 ++BuildRequires: glibc-static ++BuildRequires: make ++BuildRequires: libseccomp-devel ++BuildRequires: libselinux-devel ++ ++ ++%description ++runc is a CLI tool for spawning and running containers according to the OCF specification ++ ++%prep ++%setup -c -n runc ++ ++%install ++ ++ ++mkdir -p .gopath/src/github.com/opencontainers ++export GOPATH=`pwd`/.gopath ++ln -sf `pwd` .gopath/src/github.com/opencontainers/runc ++cd .gopath/src/github.com/opencontainers/runc ++make BUILDTAGS="seccomp selinux" static ++rm -rf .gopath ++ ++install -d $RPM_BUILD_ROOT/%{_bindir} ++install -p -m 755 runc $RPM_BUILD_ROOT/%{_bindir}/runc ++ ++ ++%clean ++%{__rm} -rf %{_bindir}/runc ++ ++%files ++%{_bindir}/runc ++ ++%changelog ++ +-- +2.7.4.3 + diff --git a/patch/0032-runc-17-Always-save-own-namespace-paths.patch b/patch/0032-runc-17-Always-save-own-namespace-paths.patch new file mode 100644 index 0000000..886e2cb --- /dev/null +++ b/patch/0032-runc-17-Always-save-own-namespace-paths.patch @@ -0,0 +1,84 @@ +From 59a5c027ef71cbad624c7547f3031dc87fc6220d Mon Sep 17 00:00:00 2001 +From: Yuanhong Peng +Date: Thu, 13 Jul 2017 16:57:00 +0800 +Subject: [PATCH 32/94] runc-17: Always save own namespace paths + +[Changelog]: Always save own namespace paths + +fix https://github.com/opencontainers/runc/issues/1476 + +If containerA shares namespace, say ipc namespace, with containerB, then +its ipc namespace path would be the same as containerB and be stored in +`state.json`. Exec into containerA will just read the namespace paths +stored in this file and join these namespaces. So, if containerB has +already been stopped, `docker exec containerA` will fail. + +To address this issue, we should always save own namespace paths no +matter if we share namespaces with other containers. + +**before:** +``` + # docker run -tid --name 111 ubuntu + b123d1a43786523996a52f88c0484b77f778ff59435e257b901926366ba9e046 + # docker run -tid --name 222 --net container:111 ubuntu + 4685ca6a5e9fd03c634a88f6a07009738729f6210b13d32ea8fc46a058b1f004 + # docker restart 111 + 111 + # docker exec -ti 222 bash + rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:240: + creating new parent process caused "container_linux.go:1266: running lstat on namespace + path \"/proc/14575/ns/net\" caused \"lstat /proc/14575/ns/net: no such file or directory\"" +``` + +**after:** +``` + # docker run -tid --name 111 ubuntu + e00dbfe3bf56272d7bdec232135f707b4a715cb0d39cdc4d3e90b05075497175 + # docker run -tid --name 222 --net container:111 ubuntu + 0806efe28080392f5a3ef416c363be0d82c3bc64d069f227d57ab34170b6fb16 + # docker restart 111 + 111 + # docker exec -ti 222 bash + root@e00dbfe3bf56:/# +``` + +related upstream PR: https://github.com/opencontainers/runc/pull/1477 + +Change-Id: I4278f64704c4b0ab0c2e5b44ec9ecdd34735144d +Signed-off-by: Yuanhong Peng +Signed-off-by: yangshukui +--- + libcontainer/configs/namespaces_unix.go | 3 --- + libcontainer/container_linux_test.go | 2 +- + 2 files changed, 1 insertion(+), 4 deletions(-) + +diff --git a/libcontainer/configs/namespaces_unix.go b/libcontainer/configs/namespaces_unix.go +index 1f0b3ee..12470a0 100644 +--- a/libcontainer/configs/namespaces_unix.go ++++ b/libcontainer/configs/namespaces_unix.go +@@ -81,9 +81,6 @@ type Namespace struct { + } + + func (n *Namespace) GetPath(pid int) string { +- if n.Path != "" { +- return n.Path +- } + return fmt.Sprintf("/proc/%d/ns/%s", pid, NsName(n.Type)) + } + +diff --git a/libcontainer/container_linux_test.go b/libcontainer/container_linux_test.go +index b7ce552..b69e344 100644 +--- a/libcontainer/container_linux_test.go ++++ b/libcontainer/container_linux_test.go +@@ -134,7 +134,7 @@ func TestGetContainerState(t *testing.T) { + var ( + pid = os.Getpid() + expectedMemoryPath = "/sys/fs/cgroup/memory/myid" +- expectedNetworkPath = "/networks/fd" ++ expectedNetworkPath = fmt.Sprintf("/proc/%d/ns/net", pid) + ) + container := &linuxContainer{ + id: "myid", +-- +2.7.4.3 + diff --git a/patch/0033-runc-change-runc-default-umask-to-027.patch b/patch/0033-runc-change-runc-default-umask-to-027.patch new file mode 100644 index 0000000..bee6ab3 --- /dev/null +++ b/patch/0033-runc-change-runc-default-umask-to-027.patch @@ -0,0 +1,52 @@ +From 49ff7be84939cf93b8bf4861ddc783704fb3f50b Mon Sep 17 00:00:00 2001 +From: dengguangxing +Date: Mon, 8 Jan 2018 10:35:34 +0800 +Subject: [PATCH 33/94] runc: change runc default umask to 027 + +[Changelog]:change runc default umask to 027 +change exec process default umask to 0027 + +Change-Id: Ia7ff0216adc17d61586954de83031be21ab88338 +Signed-off-by: dengguangxing +--- + libcontainer/rootfs_linux.go | 2 +- + libcontainer/setns_init_linux.go | 3 +++ + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/libcontainer/rootfs_linux.go b/libcontainer/rootfs_linux.go +index d507373..1c93903 100644 +--- a/libcontainer/rootfs_linux.go ++++ b/libcontainer/rootfs_linux.go +@@ -136,7 +136,7 @@ func finalizeRootfs(config *configs.Config) (err error) { + } + } + +- syscall.Umask(0022) ++ syscall.Umask(0027) + return nil + } + +diff --git a/libcontainer/setns_init_linux.go b/libcontainer/setns_init_linux.go +index 48cc0ae..e8e969a 100644 +--- a/libcontainer/setns_init_linux.go ++++ b/libcontainer/setns_init_linux.go +@@ -5,6 +5,7 @@ package libcontainer + import ( + "fmt" + "os" ++ "syscall" + + "github.com/opencontainers/runc/libcontainer/apparmor" + "github.com/opencontainers/runc/libcontainer/keys" +@@ -40,6 +41,8 @@ func (l *linuxSetnsInit) Init() error { + return err + } + } ++ // set exec process umask to 0027 according to secure policy ++ syscall.Umask(0027) + if l.config.NoNewPrivileges { + if err := system.Prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0); err != nil { + return err +-- +2.7.4.3 + diff --git a/patch/0034-runc-17-Add-some-compatibility-code-to-surpor.patch b/patch/0034-runc-17-Add-some-compatibility-code-to-surpor.patch new file mode 100644 index 0000000..b6e8352 --- /dev/null +++ b/patch/0034-runc-17-Add-some-compatibility-code-to-surpor.patch @@ -0,0 +1,50 @@ +From 661a5bf6a414ded19e8722e81ea20f6218d9b7de Mon Sep 17 00:00:00 2001 +From: yangshukui +Date: Fri, 20 Apr 2018 22:38:32 +0800 +Subject: [PATCH 34/94] runc-17: Add some compatibility code to surport + docker's liverestore from docker-1.11.2 to docker-17.06 + +[Changelog]: Add some compatibility code to surport docker's liverestore from docker-1.11.2 to docker-17.06 + +[Author]:Shukui Yang + +Change-Id: I376cc81f781727ea8d0bc61bc0c6e72ca485d880 +Signed-off-by: yangshukui +--- + libcontainer/factory_linux.go | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +diff --git a/libcontainer/factory_linux.go b/libcontainer/factory_linux.go +index 6a0f855..8bf448a 100644 +--- a/libcontainer/factory_linux.go ++++ b/libcontainer/factory_linux.go +@@ -10,6 +10,7 @@ import ( + "regexp" + "runtime/debug" + "strconv" ++ "strings" + "syscall" + + "github.com/docker/docker/pkg/mount" +@@ -321,7 +322,17 @@ func (l *LinuxFactory) loadState(root, id string) (*State, error) { + defer f.Close() + var state *State + if err := json.NewDecoder(f).Decode(&state); err != nil { +- return nil, newGenericError(err, SystemError) ++ if !strings.Contains(err.Error(), "memory_swappiness") { ++ return nil, newGenericError(err, SystemError) ++ } ++ ++ if state.BaseState.Config.Cgroups != nil && ++ state.BaseState.Config.Cgroups.Resources != nil && ++ state.BaseState.Config.Cgroups.Resources.MemorySwappiness != nil { ++ memorySwappiness := int64(-1) ++ *state.BaseState.Config.Cgroups.Resources.MemorySwappiness = uint64(memorySwappiness) ++ } ++ + } + return state, nil + } +-- +2.7.4.3 + diff --git a/patch/0035-runc-17-Add-root-to-HookState-for-compatibili.patch b/patch/0035-runc-17-Add-root-to-HookState-for-compatibili.patch new file mode 100644 index 0000000..95d2ccf --- /dev/null +++ b/patch/0035-runc-17-Add-root-to-HookState-for-compatibili.patch @@ -0,0 +1,141 @@ +From 35c1ee336b5714b077c0007ed6c37149bd965260 Mon Sep 17 00:00:00 2001 +From: yangshukui +Date: Fri, 27 Apr 2018 20:24:42 +0800 +Subject: [PATCH 35/94] runc-17: Add root to HookState for + compatibility. + +[Changelog]:refactor HookState for backward compatibility. +[Author]:Shukui Yang + +Change-Id: I471a748005fe5a7be69d5a857944bf8599408c3b +Signed-off-by: yangshukui +--- + libcontainer/configs/config.go | 8 +++++++- + libcontainer/container_linux.go | 22 ++++++++++++++-------- + libcontainer/process_linux.go | 22 ++++++++++++++-------- + libcontainer/state_linux.go | 9 ++++++--- + 4 files changed, 41 insertions(+), 20 deletions(-) + +diff --git a/libcontainer/configs/config.go b/libcontainer/configs/config.go +index 98f4b85..af25972 100644 +--- a/libcontainer/configs/config.go ++++ b/libcontainer/configs/config.go +@@ -259,8 +259,14 @@ func (hooks Hooks) MarshalJSON() ([]byte, error) { + }) + } + ++// Alias of specs.State ++type SpecState specs.State ++ + // HookState is the payload provided to a hook on execution. +-type HookState specs.State ++type HookState struct { ++ SpecState ++ Root string `json:"root"` ++} + + type Hook interface { + // Run executes the hook with the provided state. +diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go +index 173a3f0..ea6ef4c 100644 +--- a/libcontainer/container_linux.go ++++ b/libcontainer/container_linux.go +@@ -275,10 +275,13 @@ func (c *linuxContainer) start(process *Process, isInit bool) error { + + if c.config.Hooks != nil { + s := configs.HookState{ +- Version: c.config.Version, +- ID: c.id, +- Pid: parent.pid(), +- Bundle: utils.SearchLabels(c.config.Labels, "bundle"), ++ SpecState: configs.SpecState{ ++ Version: c.config.Version, ++ ID: c.id, ++ Pid: parent.pid(), ++ Bundle: utils.SearchLabels(c.config.Labels, "bundle"), ++ }, ++ Root: c.config.Rootfs, + } + for i, hook := range c.config.Hooks.Poststart { + if err := hook.Run(s); err != nil { +@@ -1243,10 +1246,13 @@ func (c *linuxContainer) criuNotifications(resp *criurpc.CriuResp, process *Proc + case notify.GetScript() == "setup-namespaces": + if c.config.Hooks != nil { + s := configs.HookState{ +- Version: c.config.Version, +- ID: c.id, +- Pid: int(notify.GetPid()), +- Bundle: utils.SearchLabels(c.config.Labels, "bundle"), ++ SpecState: configs.SpecState{ ++ Version: c.config.Version, ++ ID: c.id, ++ Pid: int(notify.GetPid()), ++ Bundle: utils.SearchLabels(c.config.Labels, "bundle"), ++ }, ++ Root: c.config.Rootfs, + } + for i, hook := range c.config.Hooks.Prestart { + if err := hook.Run(s); err != nil { +diff --git a/libcontainer/process_linux.go b/libcontainer/process_linux.go +index bfe9955..c9fb202 100644 +--- a/libcontainer/process_linux.go ++++ b/libcontainer/process_linux.go +@@ -292,10 +292,13 @@ func (p *initProcess) start() error { + if !p.config.Config.Namespaces.Contains(configs.NEWNS) { + if p.config.Config.Hooks != nil { + s := configs.HookState{ +- Version: p.container.config.Version, +- ID: p.container.id, +- Pid: p.pid(), +- Bundle: utils.SearchLabels(p.config.Config.Labels, "bundle"), ++ SpecState: configs.SpecState{ ++ Version: p.container.config.Version, ++ ID: p.container.id, ++ Pid: p.pid(), ++ Bundle: utils.SearchLabels(p.config.Config.Labels, "bundle"), ++ }, ++ Root: p.config.Config.Rootfs, + } + for i, hook := range p.config.Config.Hooks.Prestart { + if err := hook.Run(s); err != nil { +@@ -312,10 +315,13 @@ func (p *initProcess) start() error { + case procHooks: + if p.config.Config.Hooks != nil { + s := configs.HookState{ +- Version: p.container.config.Version, +- ID: p.container.id, +- Pid: p.pid(), +- Bundle: utils.SearchLabels(p.config.Config.Labels, "bundle"), ++ SpecState: configs.SpecState{ ++ Version: p.container.config.Version, ++ ID: p.container.id, ++ Pid: p.pid(), ++ Bundle: utils.SearchLabels(p.config.Config.Labels, "bundle"), ++ }, ++ Root: p.config.Config.Rootfs, + } + for i, hook := range p.config.Config.Hooks.Prestart { + if err := hook.Run(s); err != nil { +diff --git a/libcontainer/state_linux.go b/libcontainer/state_linux.go +index 62878ac..9f8def2 100644 +--- a/libcontainer/state_linux.go ++++ b/libcontainer/state_linux.go +@@ -58,9 +58,12 @@ func destroy(c *linuxContainer) error { + func runPoststopHooks(c *linuxContainer) error { + if c.config.Hooks != nil { + s := configs.HookState{ +- Version: c.config.Version, +- ID: c.id, +- Bundle: utils.SearchLabels(c.config.Labels, "bundle"), ++ SpecState: configs.SpecState{ ++ Version: c.config.Version, ++ ID: c.id, ++ Bundle: utils.SearchLabels(c.config.Labels, "bundle"), ++ }, ++ Root: c.config.Rootfs, + } + for _, hook := range c.config.Hooks.Poststop { + if err := hook.Run(s); err != nil { +-- +2.7.4.3 + diff --git a/patch/0036-runc-17-add-compatibility-for-docker-1.11.2.patch b/patch/0036-runc-17-add-compatibility-for-docker-1.11.2.patch new file mode 100644 index 0000000..06cf771 --- /dev/null +++ b/patch/0036-runc-17-add-compatibility-for-docker-1.11.2.patch @@ -0,0 +1,208 @@ +From 988554ab5c12971383bc717cda615ca672953cd5 Mon Sep 17 00:00:00 2001 +From: yangshukui +Date: Fri, 18 May 2018 11:03:48 +0800 +Subject: [PATCH 36/94] runc-17: add compatibility for docker-1.11.2 + +[Changelog]: add compatibility for docker-1.11.2 +[Author]: Shukui Yang + +Change-Id: I188db47db8f4bcd744ac8218bfe966de48e97c22 +Signed-off-by: yangshukui +--- + libcontainer/configs/cgroup_unix.go | 6 +++ + libcontainer/configs/config.go | 11 ++++ + libcontainer/container_linux.go | 6 +++ + libcontainer/factory_linux.go | 102 +++++++++++++++++++++++++++++++----- + 4 files changed, 113 insertions(+), 12 deletions(-) + +diff --git a/libcontainer/configs/cgroup_unix.go b/libcontainer/configs/cgroup_unix.go +index e654960..75a3db0 100644 +--- a/libcontainer/configs/cgroup_unix.go ++++ b/libcontainer/configs/cgroup_unix.go +@@ -33,6 +33,12 @@ type Cgroup struct { + *Resources + } + ++// CompatCgroup ++type CompatCgroup struct { ++ Cgroup ++ MemorySwappiness interface{} `json:"memory_swappiness"` ++} ++ + type Resources struct { + // If this is true allow access to any kind of device within the container. If false, allow access only to devices explicitly listed in the allowed_devices list. + // Deprecated +diff --git a/libcontainer/configs/config.go b/libcontainer/configs/config.go +index af25972..3a2e824 100644 +--- a/libcontainer/configs/config.go ++++ b/libcontainer/configs/config.go +@@ -188,6 +188,17 @@ type Config struct { + Rootless bool `json:"rootless"` + } + ++// CompatConfig is a structure inheriting from spec.Process defined ++// in runtime-spec/specs-go package. The goal is to be compatible with ++// both v1.0.0-rc4 and v1.0.0-rc5 since the latter introduced a change ++// about the type of the Capabilities field. ++// Refer to: https://github.com/opencontainers/runtime-spec/commit/37391fb ++type CompatConfig struct { ++ Config ++ Cgroups *CompatCgroup `json:"cgroups"` ++ Capabilities interface{} `json:"capabilities,omitempty" platform:"linux"` ++} ++ + type Hooks struct { + // Prestart commands are executed after the container namespaces are created, + // but before the user supplied command is executed from init. +diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go +index ea6ef4c..f4eec7e 100644 +--- a/libcontainer/container_linux.go ++++ b/libcontainer/container_linux.go +@@ -66,6 +66,12 @@ type State struct { + ExternalDescriptors []string `json:"external_descriptors,omitempty"` + } + ++// CompatState ++type CompatState struct{ ++ State ++ Config configs.CompatConfig `json:"config"` ++} ++ + // Container is a libcontainer container object. + // + // Each container is thread-safe within the same process. Since a container can +diff --git a/libcontainer/factory_linux.go b/libcontainer/factory_linux.go +index 8bf448a..b533346 100644 +--- a/libcontainer/factory_linux.go ++++ b/libcontainer/factory_linux.go +@@ -10,8 +10,9 @@ import ( + "regexp" + "runtime/debug" + "strconv" +- "strings" + "syscall" ++ "io/ioutil" ++ "errors" + + "github.com/docker/docker/pkg/mount" + "github.com/opencontainers/runc/libcontainer/cgroups" +@@ -311,28 +312,105 @@ func (l *LinuxFactory) StartInitialization() (err error) { + return i.Init() + } + +-func (l *LinuxFactory) loadState(root, id string) (*State, error) { +- f, err := os.Open(filepath.Join(root, stateFilename)) ++func (l *LinuxFactory) updateStateCapabilites(compatState *CompatState, configPath string) error { ++ needUpdate := false ++ ++ // In spec v1.0.0-rc4, capabilities was a list of strings. This was changed ++ // to an object with v1.0.0-rc5. ++ // Check for the interface type to support both the versions. ++ capabilities := compatState.Config.Capabilities ++ switch caps := capabilities.(type) { ++ case []interface{}: ++ var list []string ++ for _, str := range caps { ++ list = append(list, str.(string)) ++ } ++ ++ c := configs.Capabilities{ ++ Bounding: list, ++ Effective: list, ++ Inheritable: list, ++ Ambient: list, ++ Permitted: list, ++ } ++ compatState.Config.Capabilities = c ++ needUpdate = true ++ } ++ ++ //In spec v1.0.0-rc4, MemorySwappiness was a *int64. This was changed ++ // to an *uint64 with v1.0.0-rc5. ++ if compatState.Config.Cgroups != nil && ++ compatState.Config.Cgroups.MemorySwappiness != nil { ++ memorySwappiness, ok := compatState.Config.Cgroups.MemorySwappiness.(float64) ++ if ok { ++ var memSize int64 = int64(memorySwappiness) ++ if memSize < 0 { ++ memSize = 0 ++ var memUSize uint64 = uint64(memSize-1) ++ compatState.Config.Cgroups.MemorySwappiness = &memUSize ++ needUpdate = true ++ } ++ } ++ } ++ ++ if needUpdate { ++ f, err := os.Create(configPath) ++ if err != nil { ++ return err ++ } ++ defer f.Close() ++ if err := json.NewEncoder(f).Encode(&compatState); err != nil { ++ return err ++ } ++ return nil ++ } ++ ++ return errors.New("updateStateCapabilites unexpected format for capabilities") ++} ++ ++func (l *LinuxFactory) loadOriginState(configPath string) (*State, error) { ++ f, err := os.Open(configPath) + if err != nil { + if os.IsNotExist(err) { +- return nil, newGenericError(fmt.Errorf("container %q does not exist", id), ContainerNotExists) ++ return nil, newGenericError(err, ContainerNotExists) + } + return nil, newGenericError(err, SystemError) + } + defer f.Close() + var state *State + if err := json.NewDecoder(f).Decode(&state); err != nil { +- if !strings.Contains(err.Error(), "memory_swappiness") { +- return nil, newGenericError(err, SystemError) +- } ++ return nil, newGenericError(err, SystemError) ++ } ++ return state, nil ++} + +- if state.BaseState.Config.Cgroups != nil && +- state.BaseState.Config.Cgroups.Resources != nil && +- state.BaseState.Config.Cgroups.Resources.MemorySwappiness != nil { +- memorySwappiness := int64(-1) +- *state.BaseState.Config.Cgroups.Resources.MemorySwappiness = uint64(memorySwappiness) ++func (l *LinuxFactory) loadCompatState(configPath string) (*State, error) { ++ dt, err := ioutil.ReadFile(configPath) ++ if err != nil { ++ if os.IsNotExist(err) { ++ return nil, newGenericError(err, ContainerNotExists) + } ++ return nil, newGenericError(err, SystemError) ++ } + ++ var state *CompatState ++ if err := json.Unmarshal(dt, &state); err != nil { ++ return nil, newGenericError(err, SystemError) ++ } ++ ++ err = l.updateStateCapabilites(state, configPath) ++ if err != nil { ++ return nil, newGenericError(err, SystemError) ++ } ++ ++ return l.loadOriginState(configPath) ++} ++ ++func (l *LinuxFactory) loadState(root, id string) (*State, error) { ++ configPath := filepath.Join(root, stateFilename) ++ state, err := l.loadOriginState(configPath) ++ if err != nil { ++ return l.loadCompatState(configPath) + } + return state, nil + } +-- +2.7.4.3 + diff --git a/patch/0037-docker-Don-t-enalbe-kmem-accounting-by-defa.patch b/patch/0037-docker-Don-t-enalbe-kmem-accounting-by-defa.patch new file mode 100644 index 0000000..33826dd --- /dev/null +++ b/patch/0037-docker-Don-t-enalbe-kmem-accounting-by-defa.patch @@ -0,0 +1,61 @@ +From 093594c58411b6a25844650b40463449e1af11ce Mon Sep 17 00:00:00 2001 +From: lujingxiao +Date: Thu, 23 Aug 2018 15:03:50 +0800 +Subject: [PATCH 37/94] docker: Don't enalbe kmem accounting by + default + +reason:In kernel 3.10, kmem cgroup is unstable, +we should not enable kmem accounting by default. +Revert part of +https://github.com/hqhq/runc/commit/fe898e7862f945fa3632580139602c627dcb9be0 + +Change-Id: I546d1da875b1df7d525fd5c96a89c439ed6642f2 +Signed-off-by: lujingxiao +--- + libcontainer/cgroups/fs/memory.go | 6 ++---- + script/runc-euleros.spec | 8 ++++++-- + 2 files changed, 8 insertions(+), 6 deletions(-) + +diff --git a/libcontainer/cgroups/fs/memory.go b/libcontainer/cgroups/fs/memory.go +index c993839..118cce8 100644 +--- a/libcontainer/cgroups/fs/memory.go ++++ b/libcontainer/cgroups/fs/memory.go +@@ -41,10 +41,8 @@ func (s *MemoryGroup) Apply(d *cgroupData) (err error) { + if err := os.MkdirAll(path, 0755); err != nil { + return err + } +- // Only enable kernel memory accouting when this cgroup +- // is created by libcontainer, otherwise we might get +- // error when people use `cgroupsPath` to join an existed +- // cgroup whose kernel memory is not initialized. ++ } ++ if d.config.KernelMemory != 0 { + if err := EnableKernelMemoryAccounting(path); err != nil { + return err + } +diff --git a/script/runc-euleros.spec b/script/runc-euleros.spec +index a925e02..c3db7c9 100644 +--- a/script/runc-euleros.spec ++++ b/script/runc-euleros.spec +@@ -2,7 +2,7 @@ + + Name: docker-runc + Version: 1.0.0.rc3 +-Release: 1%{?dist} ++Release: 2%{?dist} + Summary: runc is a CLI tool for spawning and running containers according to the OCF specification + + License: ASL 2.0 +@@ -46,4 +46,8 @@ install -p -m 755 runc $RPM_BUILD_ROOT/%{_bindir}/runc + %{_bindir}/runc + + %changelog +- ++* Thu Aug 23 2018 lujingxiao - 1.0.0.rc3-2 ++- Type:bugfix ++- ID:NA ++- SUG:NA ++- DESC:Don't enalbe kmem accounting by default +-- +2.7.4.3 + diff --git a/patch/0039-Fix-unittest-and-integration-test-error-cause.patch b/patch/0039-Fix-unittest-and-integration-test-error-cause.patch new file mode 100644 index 0000000..8333411 --- /dev/null +++ b/patch/0039-Fix-unittest-and-integration-test-error-cause.patch @@ -0,0 +1,64 @@ +From 423ffe00c5c0cdb999bf9a193ad43ed5b6473a2d Mon Sep 17 00:00:00 2001 +From: Wang Long +Date: Tue, 24 Jan 2017 18:51:22 +0800 +Subject: [PATCH 39/94] Fix unittest and integration test error caused + by tty + +Change-Id: Iae44f5a598e60b9e026ced99ca9e92aa90771fcc +Signed-off-by: Wang Long +--- + libcontainer/integration/execin_test.go | 8 +------- + tests/integration/exec.bats | 4 ++-- + 2 files changed, 3 insertions(+), 9 deletions(-) + +diff --git a/libcontainer/integration/execin_test.go b/libcontainer/integration/execin_test.go +index 019757f..f06075e 100644 +--- a/libcontainer/integration/execin_test.go ++++ b/libcontainer/integration/execin_test.go +@@ -62,9 +62,6 @@ func TestExecIn(t *testing.T) { + if !strings.Contains(out, "cat") || !strings.Contains(out, "ps") { + t.Fatalf("unexpected running process, output %q", out) + } +- if strings.Contains(out, "\r") { +- t.Fatalf("unexpected carriage-return in output") +- } + } + + func TestExecInUsernsRlimit(t *testing.T) { +@@ -327,12 +324,9 @@ func TestExecInTTY(t *testing.T) { + waitProcess(process, t) + + out := stdout.String() +- if !strings.Contains(out, "cat") || !strings.Contains(out, "ps") { ++ if !strings.Contains(out, "cat") || !strings.Contains(string(out), "ps") { + t.Fatalf("unexpected running process, output %q", out) + } +- if strings.Contains(out, "\r") { +- t.Fatalf("unexpected carriage-return in output") +- } + } + + func TestExecInEnvironment(t *testing.T) { +diff --git a/tests/integration/exec.bats b/tests/integration/exec.bats +index f172f9b..268a7e1 100644 +--- a/tests/integration/exec.bats ++++ b/tests/integration/exec.bats +@@ -95,7 +95,7 @@ function teardown() { + + runc exec --cwd /bin test_busybox pwd + [ "$status" -eq 0 ] +- [[ ${output} == "/bin" ]] ++ [[ $(echo "${output}" | tr -d '\r') == "/bin" ]] + } + + @test "runc exec --env" { +@@ -124,5 +124,5 @@ function teardown() { + runc exec --user 1000:1000 test_busybox id + [ "$status" -eq 0 ] + +- [[ ${output} == "uid=1000 gid=1000" ]] ++ [[ $(echo "${output}" | tr -d '\r') == "uid=1000 gid=1000" ]] + } +-- +2.7.4.3 + diff --git a/patch/0041-Add-timeout-for-syscall.Openat.patch b/patch/0041-Add-timeout-for-syscall.Openat.patch new file mode 100644 index 0000000..1381c8e --- /dev/null +++ b/patch/0041-Add-timeout-for-syscall.Openat.patch @@ -0,0 +1,68 @@ +From a2f81f8b740b371e710b63b8c81c704842140ace Mon Sep 17 00:00:00 2001 +From: yangshukui +Date: Tue, 18 Apr 2017 19:35:30 +0800 +Subject: [PATCH 41/94] Add timeout for syscall.Openat + +Openat will be blocked until the fifo on the other side is opened, but in some +abnomal scenario(e.g. containerd is killed), Openat maybe be blocked all the time. + +Change-Id: If1d514408b522c8bdf5f1c1cb0d3c625f0ef4a6d +Signed-off-by: yangshukui +--- + libcontainer/standard_init_linux.go | 30 ++++++++++++++++++++++++------ + 1 file changed, 24 insertions(+), 6 deletions(-) + +diff --git a/libcontainer/standard_init_linux.go b/libcontainer/standard_init_linux.go +index ee6f19a..484ba42 100644 +--- a/libcontainer/standard_init_linux.go ++++ b/libcontainer/standard_init_linux.go +@@ -7,6 +7,7 @@ import ( + "os" + "os/exec" + "syscall" ++ "time" + + "github.com/opencontainers/runc/libcontainer/apparmor" + "github.com/opencontainers/runc/libcontainer/configs" +@@ -166,15 +167,32 @@ func (l *linuxStandardInit) Init() error { + } + // close the pipe to signal that we have completed our init. + l.pipe.Close() ++ + // wait for the fifo to be opened on the other side before + // exec'ing the users process. +- fd, err := syscall.Openat(l.stateDirFD, execFifoFilename, os.O_WRONLY|syscall.O_CLOEXEC, 0) +- if err != nil { +- return newSystemErrorWithCause(err, "openat exec fifo") +- } +- if _, err := syscall.Write(fd, []byte("0")); err != nil { +- return newSystemErrorWithCause(err, "write 0 exec fifo") ++ ch := make(chan Error, 1) ++ go func() { ++ fd, err := syscall.Openat(l.stateDirFD, execFifoFilename, os.O_WRONLY|syscall.O_CLOEXEC, 0) ++ if err != nil { ++ ch <- newSystemErrorWithCause(err, "openat exec fifo") ++ return ++ } ++ if _, err := syscall.Write(fd, []byte("0")); err != nil { ++ ch <- newSystemErrorWithCause(err, "write 0 exec fifo") ++ return ++ } ++ ch <- nil ++ }() ++ ++ select { ++ case chErr := <-ch: ++ if chErr != nil { ++ return chErr ++ } ++ case <-time.After(120 * time.Second): ++ return newSystemErrorWithCause(fmt.Errorf("timeout"), "wait for the fifo to be opened on the other side ") + } ++ + if l.config.Config.Seccomp != nil && l.config.NoNewPrivileges { + if err := seccomp.InitSeccomp(l.config.Config.Seccomp); err != nil { + return newSystemErrorWithCause(err, "init seccomp") +-- +2.7.4.3 + diff --git a/patch/0042-update-state-earlier-to-avoid-cgroup-leak-whe.patch b/patch/0042-update-state-earlier-to-avoid-cgroup-leak-whe.patch new file mode 100644 index 0000000..a985cdd --- /dev/null +++ b/patch/0042-update-state-earlier-to-avoid-cgroup-leak-whe.patch @@ -0,0 +1,46 @@ +From 3b61668af89b820482b0a58f5af5316e1529116b Mon Sep 17 00:00:00 2001 +From: Deng Guangxing +Date: Wed, 6 Sep 2017 15:04:47 +0800 +Subject: [PATCH 42/94] update state earlier to avoid cgroup leak when + process failed + +if process stuck in somewhere. upper caller like containerd may +have a timeout for process launching. + +process will be killed after this timeout, and then call `runc +delete` to retrieve its resource like cgroup and perform poststop +hook. + +if process got stuck right before updating state, and after cgroup +applied, like prestart-hook. In such case, `runc delete xxx` will +do nothing because state file is missing, runc is not aware of this +container. so process cgroup will stay and never get removed. + +This patch perform state updating right after cgroup applying. so +`runc delete` will do the cleaning job + +Change-Id: I7b247f501986e712a86da3958d1be573af4e84a6 +Signed-off-by: Deng Guangxing +--- + libcontainer/process_linux.go | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/libcontainer/process_linux.go b/libcontainer/process_linux.go +index c9fb202..9373595 100644 +--- a/libcontainer/process_linux.go ++++ b/libcontainer/process_linux.go +@@ -260,6 +260,11 @@ func (p *initProcess) start() error { + if err := p.manager.Apply(p.pid()); err != nil { + return newSystemErrorWithCause(err, "applying cgroup configuration for process") + } ++ // update state here, so we can retrieve process resource ++ // even it get killed by accident ++ if _, err := p.container.updateState(p); err != nil { ++ return err ++ } + defer func() { + if err != nil { + // TODO: should not be the responsibility to call here +-- +2.7.4.3 + diff --git a/patch/0043-runc-Use-rslave-instead-of-rprivate-in-chro.patch b/patch/0043-runc-Use-rslave-instead-of-rprivate-in-chro.patch new file mode 100644 index 0000000..be2f6bd --- /dev/null +++ b/patch/0043-runc-Use-rslave-instead-of-rprivate-in-chro.patch @@ -0,0 +1,43 @@ +From 321679149dad13cdfd40831cc288495d4a5caf75 Mon Sep 17 00:00:00 2001 +From: caihaomin +Date: Fri, 15 Dec 2017 17:37:41 +0800 +Subject: [PATCH 43/94] runc: Use rslave instead of rprivate in + chrootarchive + +[Changelog]:With rprivate there exists a race where a reference to a mount has +propagated to the new namespace, when rprivate is set the parent +namespace is not able to remove the mount due to that reference. +With rslave unmounts will propagate correctly into the namespace and +prevent the sort of transient errors that are possible with rprivate. +https://github.com/moby/moby/pull/35217 +[Author]git + +Change-Id: I7a69a5b0c03e896b9cb1722eb676b7b84ea7dd77 +Signed-off-by: caihaomin +--- + libcontainer/rootfs_linux.go | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/libcontainer/rootfs_linux.go b/libcontainer/rootfs_linux.go +index 1c93903..7cf5edd 100644 +--- a/libcontainer/rootfs_linux.go ++++ b/libcontainer/rootfs_linux.go +@@ -668,9 +668,12 @@ func pivotRoot(rootfs string) error { + return err + } + +- // Make oldroot rprivate to make sure our unmounts don't propagate to the +- // host (and thus bork the machine). +- if err := syscall.Mount("", ".", "", syscall.MS_PRIVATE|syscall.MS_REC, ""); err != nil { ++ // Make oldroot rslave to make sure our unmounts don't propagate to the ++ // host (and thus bork the machine). We don't use rprivate because this is ++ // known to cause issues due to races where we still have a reference to a ++ // mount while a process in the host namespace are trying to operate on ++ // something they think has no mounts (devicemapper in particular). ++ if err := syscall.Mount("", ".", "", syscall.MS_SLAVE|syscall.MS_REC, ""); err != nil { + return err + } + // Preform the unmount. MNT_DETACH allows us to unmount /proc/self/cwd. +-- +2.7.4.3 + diff --git a/patch/0044-runc-default-mount-propagation-correctly.patch b/patch/0044-runc-default-mount-propagation-correctly.patch new file mode 100644 index 0000000..c22b3a5 --- /dev/null +++ b/patch/0044-runc-default-mount-propagation-correctly.patch @@ -0,0 +1,43 @@ +From 06109d15b267af73d523817e6dcf501fa071a815 Mon Sep 17 00:00:00 2001 +From: caihaomin +Date: Fri, 15 Dec 2017 17:42:03 +0800 +Subject: [PATCH 44/94] runc: default mount propagation correctly + +[Changelog]:The code in prepareRoot +attempts to default the rootfs mount to `rslave`. However, since the spec +conversion has already defaulted it to `rprivate`, that code doesn't +actually ever do anything. + +This changes the spec conversion code to accept "" and treat it as 0. + +Implicitly, this makes rootfs propagation default to `rslave`, which is +a part of fixing the moby bug moby/moby#34672 + +Alternate implementatoins include changing this defaulting to be +`rslave` and removing the defaulting code in prepareRoot, or skipping +the mapping entirely for "", but I think this change is the cleanest of +those options. +[Author]git + +Change-Id: I35954e2c8a71c1d3713753669044b5bf9d6c57fa +Signed-off-by: caihaomin +--- + libcontainer/specconv/spec_linux.go | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libcontainer/specconv/spec_linux.go b/libcontainer/specconv/spec_linux.go +index 1575ae0..8a2947f 100644 +--- a/libcontainer/specconv/spec_linux.go ++++ b/libcontainer/specconv/spec_linux.go +@@ -36,7 +36,7 @@ var mountPropagationMapping = map[string]int{ + "slave": syscall.MS_SLAVE, + "rshared": syscall.MS_SHARED | syscall.MS_REC, + "shared": syscall.MS_SHARED, +- "": syscall.MS_PRIVATE | syscall.MS_REC, ++ "": 0, + } + + var allowedDevices = []*configs.Device{ +-- +2.7.4.3 + diff --git a/patch/0045-runc-add-hook-specific-info-when-error-occurr.patch b/patch/0045-runc-add-hook-specific-info-when-error-occurr.patch new file mode 100644 index 0000000..584eb64 --- /dev/null +++ b/patch/0045-runc-add-hook-specific-info-when-error-occurr.patch @@ -0,0 +1,128 @@ +From eed1c5ec5166a151da33b7b9cfd6535f4556c015 Mon Sep 17 00:00:00 2001 +From: dengguangxing +Date: Tue, 16 Jan 2018 18:00:56 +0800 +Subject: [PATCH 45/94] runc: add hook specific info when error + occurred + +[Changelog]: print hook path and args when hook failed to make debug +easier +[Author]:Shukui Yang + +Change-Id: Idf704706b73f1cfa5f7f02b01b2ec58caadca79d +Signed-off-by: dengguangxing +--- + libcontainer/configs/config.go | 10 ++++++++++ + libcontainer/container_linux.go | 2 +- + libcontainer/factory_linux_test.go | 4 ++++ + libcontainer/process_linux.go | 4 ++-- + libcontainer/state_linux.go | 4 ++-- + 5 files changed, 19 insertions(+), 5 deletions(-) + +diff --git a/libcontainer/configs/config.go b/libcontainer/configs/config.go +index 3a2e824..49bc7a3 100644 +--- a/libcontainer/configs/config.go ++++ b/libcontainer/configs/config.go +@@ -5,6 +5,7 @@ import ( + "encoding/json" + "fmt" + "os/exec" ++ "strings" + "time" + + "github.com/Sirupsen/logrus" +@@ -282,6 +283,7 @@ type HookState struct { + type Hook interface { + // Run executes the hook with the provided state. + Run(HookState) error ++ Info() string + } + + // NewFunctionHook will call the provided function when the hook is run. +@@ -299,6 +301,10 @@ func (f FuncHook) Run(s HookState) error { + return f.run(s) + } + ++func (f FuncHook) Info() string { ++ return "hook function" ++} ++ + type Command struct { + Path string `json:"path"` + Args []string `json:"args"` +@@ -318,6 +324,10 @@ type CommandHook struct { + Command + } + ++func (c Command) Info() string { ++ return c.Path + "," + strings.Join(c.Args, ",") ++} ++ + func (c Command) Run(s HookState) error { + b, err := json.Marshal(s) + if err != nil { +diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go +index f4eec7e..9fabadc 100644 +--- a/libcontainer/container_linux.go ++++ b/libcontainer/container_linux.go +@@ -294,7 +294,7 @@ func (c *linuxContainer) start(process *Process, isInit bool) error { + if err := parent.terminate(); err != nil { + logrus.Warn(err) + } +- return newSystemErrorWithCausef(err, "running poststart hook %d", i) ++ return newSystemErrorWithCausef(err, "running poststart hook %d:%s", i, hook.Info()) + } + } + } +diff --git a/libcontainer/factory_linux_test.go b/libcontainer/factory_linux_test.go +index ea3b513..0a84a7d 100644 +--- a/libcontainer/factory_linux_test.go ++++ b/libcontainer/factory_linux_test.go +@@ -205,3 +205,7 @@ type unserializableHook struct{} + func (unserializableHook) Run(configs.HookState) error { + return nil + } ++ ++func (unserializableHook) Info() string { ++ return "" ++} +diff --git a/libcontainer/process_linux.go b/libcontainer/process_linux.go +index 9373595..1b478d7 100644 +--- a/libcontainer/process_linux.go ++++ b/libcontainer/process_linux.go +@@ -307,7 +307,7 @@ func (p *initProcess) start() error { + } + for i, hook := range p.config.Config.Hooks.Prestart { + if err := hook.Run(s); err != nil { +- return newSystemErrorWithCausef(err, "running prestart hook %d", i) ++ return newSystemErrorWithCausef(err, "running prestart hook %d:%s", i, hook.Info()) + } + } + } +@@ -330,7 +330,7 @@ func (p *initProcess) start() error { + } + for i, hook := range p.config.Config.Hooks.Prestart { + if err := hook.Run(s); err != nil { +- return newSystemErrorWithCausef(err, "running prestart hook %d", i) ++ return newSystemErrorWithCausef(err, "running prestart hook %d:%s", i, hook.Info()) + } + } + } +diff --git a/libcontainer/state_linux.go b/libcontainer/state_linux.go +index 9f8def2..c4f0dfc 100644 +--- a/libcontainer/state_linux.go ++++ b/libcontainer/state_linux.go +@@ -65,9 +65,9 @@ func runPoststopHooks(c *linuxContainer) error { + }, + Root: c.config.Rootfs, + } +- for _, hook := range c.config.Hooks.Poststop { ++ for i, hook := range c.config.Hooks.Poststop { + if err := hook.Run(s); err != nil { +- return err ++ return newSystemErrorWithCausef(err, "running poststop hook %d:%s", i, hook.Info()) + } + } + } +-- +2.7.4.3 + diff --git a/patch/0046-runc-print-cgroup-info-if-cpuset-missing-occu.patch b/patch/0046-runc-print-cgroup-info-if-cpuset-missing-occu.patch new file mode 100644 index 0000000..0ed8181 --- /dev/null +++ b/patch/0046-runc-print-cgroup-info-if-cpuset-missing-occu.patch @@ -0,0 +1,57 @@ +From a410e6a2f9adeb46813a5016812ad334c6560b2d Mon Sep 17 00:00:00 2001 +From: dengguangxing +Date: Thu, 18 Jan 2018 11:47:04 +0800 +Subject: [PATCH 46/94] runc: print cgroup info if cpuset missing + occurs + +[Changelog]: print cgroup info if cpuset missing occurs +[Author]:Shukui Yang + +Change-Id: I3f8af2b57b441f5f2b4d38cb89d6826a7f24e24b +Signed-off-by: dengguangxing +--- + libcontainer/cgroups/fs/cpuset.go | 21 +++++++++++++++++++++ + 1 file changed, 21 insertions(+) + +diff --git a/libcontainer/cgroups/fs/cpuset.go b/libcontainer/cgroups/fs/cpuset.go +index 918b9a3..069c491 100644 +--- a/libcontainer/cgroups/fs/cpuset.go ++++ b/libcontainer/cgroups/fs/cpuset.go +@@ -9,6 +9,7 @@ import ( + "os" + "path/filepath" + ++ "github.com/Sirupsen/logrus" + "github.com/opencontainers/runc/libcontainer/cgroups" + "github.com/opencontainers/runc/libcontainer/configs" + libcontainerUtils "github.com/opencontainers/runc/libcontainer/utils" +@@ -91,6 +92,26 @@ func (s *CpusetGroup) ApplyDir(dir string, cgroup *configs.Cgroup, pid int) erro + } + + func (s *CpusetGroup) getSubsystemSettings(parent string) (cpus []byte, mems []byte, err error) { ++ defer func() { ++ if err != nil { ++ minfo, err1 := ioutil.ReadFile("/proc/self/mountinfo") ++ if err1 != nil { ++ logrus.Errorf("Failed to read mountinfo when getSubsystemSettings get an error") ++ } ++ ++ dirInfo := "" ++ fs, err2 := ioutil.ReadDir(parent) ++ if err2 != nil { ++ logrus.Errorf("Failed to read mountinfo when getSubsystemSettings get an error") ++ } ++ for _, f := range fs { ++ dirInfo = dirInfo + " " + f.Name() ++ } ++ ++ logrus.Errorf("Read cpuset cgroup failed, print mountinfo and cgroup info here"+ ++ "path: %s, mountinfo: [%s], dirinfo: [%s]", parent, string(minfo), dirInfo) ++ } ++ }() + if cpus, err = ioutil.ReadFile(filepath.Join(parent, "cpuset.cpus")); err != nil { + return + } +-- +2.7.4.3 + diff --git a/patch/0047-runc-add-more-specific-log-for-hooks.patch b/patch/0047-runc-add-more-specific-log-for-hooks.patch new file mode 100644 index 0000000..2388a8f --- /dev/null +++ b/patch/0047-runc-add-more-specific-log-for-hooks.patch @@ -0,0 +1,104 @@ +From f5399113b70807b57ed557bfecf932e5448016c2 Mon Sep 17 00:00:00 2001 +From: dengguangxing +Date: Mon, 22 Jan 2018 20:27:37 +0800 +Subject: [PATCH 47/94] runc: add more specific log for hooks + +[Changelog]: add more specific log for hooks +[Author]:Shukui Yang + +Change-Id: I317232b42a5fd6bc16773fe4aa0a376d8b9b6806 +Signed-off-by: dengguangxing +--- + libcontainer/container_linux.go | 5 +++++ + libcontainer/process_linux.go | 5 +++++ + libcontainer/state_linux.go | 3 +++ + 3 files changed, 13 insertions(+) + +diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go +index 9fabadc..74b82c5 100644 +--- a/libcontainer/container_linux.go ++++ b/libcontainer/container_linux.go +@@ -290,12 +290,15 @@ func (c *linuxContainer) start(process *Process, isInit bool) error { + Root: c.config.Rootfs, + } + for i, hook := range c.config.Hooks.Poststart { ++ logrus.Infof("run poststart hook %d:%s", i, hook.Info()) + if err := hook.Run(s); err != nil { ++ logrus.Errorf("running poststart hook(%d:%s) failed: %s", i, hook.Info(), err) + if err := parent.terminate(); err != nil { + logrus.Warn(err) + } + return newSystemErrorWithCausef(err, "running poststart hook %d:%s", i, hook.Info()) + } ++ logrus.Infof("poststart hook %d:%s done", i, hook.Info()) + } + } + } else { +@@ -1261,9 +1264,11 @@ func (c *linuxContainer) criuNotifications(resp *criurpc.CriuResp, process *Proc + Root: c.config.Rootfs, + } + for i, hook := range c.config.Hooks.Prestart { ++ logrus.Infof("run prestart hook: %d:%s", i, hook.Info()) + if err := hook.Run(s); err != nil { + return newSystemErrorWithCausef(err, "running prestart hook %d", i) + } ++ logrus.Infof("prestart hook: %d:%s done", i, hook.Info()) + } + } + case notify.GetScript() == "post-restore": +diff --git a/libcontainer/process_linux.go b/libcontainer/process_linux.go +index 1b478d7..9064c0e 100644 +--- a/libcontainer/process_linux.go ++++ b/libcontainer/process_linux.go +@@ -13,6 +13,7 @@ import ( + "strconv" + "syscall" + ++ "github.com/Sirupsen/logrus" + "github.com/opencontainers/runc/libcontainer/cgroups" + "github.com/opencontainers/runc/libcontainer/configs" + "github.com/opencontainers/runc/libcontainer/system" +@@ -306,9 +307,11 @@ func (p *initProcess) start() error { + Root: p.config.Config.Rootfs, + } + for i, hook := range p.config.Config.Hooks.Prestart { ++ logrus.Infof("run prestart hook %d:%s", i, hook.Info()) + if err := hook.Run(s); err != nil { + return newSystemErrorWithCausef(err, "running prestart hook %d:%s", i, hook.Info()) + } ++ logrus.Infof("prestart hook %d:%s done", i, hook.Info()) + } + } + } +@@ -329,9 +332,11 @@ func (p *initProcess) start() error { + Root: p.config.Config.Rootfs, + } + for i, hook := range p.config.Config.Hooks.Prestart { ++ logrus.Infof("run prestart hook %d:%s", i, hook.Info()) + if err := hook.Run(s); err != nil { + return newSystemErrorWithCausef(err, "running prestart hook %d:%s", i, hook.Info()) + } ++ logrus.Infof("prestart hook %d:%s done", i, hook.Info()) + } + } + // Sync with child. +diff --git a/libcontainer/state_linux.go b/libcontainer/state_linux.go +index c4f0dfc..b8d2a87 100644 +--- a/libcontainer/state_linux.go ++++ b/libcontainer/state_linux.go +@@ -66,9 +66,12 @@ func runPoststopHooks(c *linuxContainer) error { + Root: c.config.Rootfs, + } + for i, hook := range c.config.Hooks.Poststop { ++ logrus.Infof("run poststop hook %d:%s", i, hook.Info()) + if err := hook.Run(s); err != nil { ++ logrus.Errorf("running poststop hook %d: %s failed: %s", i, hook.Info(), err) + return newSystemErrorWithCausef(err, "running poststop hook %d:%s", i, hook.Info()) + } ++ logrus.Infof("poststop hook %d:%s done", i, hook.Info()) + } + } + return nil +-- +2.7.4.3 + diff --git a/patch/0048-runc-Only-configure-networking.patch b/patch/0048-runc-Only-configure-networking.patch new file mode 100644 index 0000000..b1d0945 --- /dev/null +++ b/patch/0048-runc-Only-configure-networking.patch @@ -0,0 +1,40 @@ +From caeb202a8a95863a44fa8f45e0515437239b173c Mon Sep 17 00:00:00 2001 +From: dengguangxing +Date: Wed, 16 May 2018 15:16:51 +0800 +Subject: [PATCH 48/94] runc: Only configure networking + +[Changelog]: Only configure networking when creating a net ns +When joining an existing namespace, don't default to configuring a +loopback interface in that namespace. + +Its creator should have done that, and we don't want to fail to create +the container when we don't have sufficient privileges to configure the +network namespace. + +This is cherry-picked from runc upstream: + https://github.com/opencontainers/runc/pull/1777 +[Author]:Shukui Yang + +Change-Id: I1f181f18e23c621db6718a185e35b50531d27c09 +Signed-off-by: Nalin Dahyabhai +Signed-off-by: dengguangxing +--- + libcontainer/specconv/spec_linux.go | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libcontainer/specconv/spec_linux.go b/libcontainer/specconv/spec_linux.go +index 8a2947f..a968313 100644 +--- a/libcontainer/specconv/spec_linux.go ++++ b/libcontainer/specconv/spec_linux.go +@@ -194,7 +194,7 @@ func CreateLibcontainerConfig(opts *CreateOpts) (*configs.Config, error) { + } + config.Namespaces.Add(t, ns.Path) + } +- if config.Namespaces.Contains(configs.NEWNET) { ++ if config.Namespaces.Contains(configs.NEWNET) && config.Namespaces.PathOf(configs.NEWNET) == "" { + config.Networks = []*configs.Network{ + { + Type: "loopback", +-- +2.7.4.3 + diff --git a/patch/0049-cgroups-fs-fix-NPE-on-Destroy-than-no-cgrou.patch b/patch/0049-cgroups-fs-fix-NPE-on-Destroy-than-no-cgrou.patch new file mode 100644 index 0000000..508b002 --- /dev/null +++ b/patch/0049-cgroups-fs-fix-NPE-on-Destroy-than-no-cgrou.patch @@ -0,0 +1,37 @@ +From ee3660e477b70d73812390ad96d82681f82f2e9b Mon Sep 17 00:00:00 2001 +From: Denys Smirnov +Date: Tue, 6 Mar 2018 23:31:31 +0100 +Subject: [PATCH 49/94] cgroups/fs: fix NPE on Destroy than no + cgroups are set + + +[Changelog]: Currently Manager accepts nil cgroups when calling Apply, but +it will panic then trying to call Destroy with the same config. + +This is cherry-picked from runc upstream: + https://github.com/opencontainers/runc/pull/1752 +[Author]:Shukui Yang + +Change-Id: Ie7aba1d1b7086a82a1d186038fb5e6c09b617f75 +Signed-off-by: Denys Smirnov +Signed-off-by: dengguangxing +--- + libcontainer/cgroups/fs/apply_raw.go | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libcontainer/cgroups/fs/apply_raw.go b/libcontainer/cgroups/fs/apply_raw.go +index 22d82ac..66debae 100644 +--- a/libcontainer/cgroups/fs/apply_raw.go ++++ b/libcontainer/cgroups/fs/apply_raw.go +@@ -152,7 +152,7 @@ func (m *Manager) Apply(pid int) (err error) { + } + + func (m *Manager) Destroy() error { +- if m.Cgroups.Paths != nil { ++ if m.Cgroups == nil || m.Cgroups.Paths != nil { + return nil + } + m.mu.Lock() +-- +2.7.4.3 + diff --git a/patch/0050-runc-Avoid-race-when-opening-exec-fifo.patch b/patch/0050-runc-Avoid-race-when-opening-exec-fifo.patch new file mode 100644 index 0000000..756ac9b --- /dev/null +++ b/patch/0050-runc-Avoid-race-when-opening-exec-fifo.patch @@ -0,0 +1,214 @@ +From 7e65e11136e81a834effe40a9f926416fb1eea78 Mon Sep 17 00:00:00 2001 +From: Will Martin +Date: Mon, 22 Jan 2018 17:03:02 +0000 +Subject: [PATCH 50/94] runc: Avoid race when opening exec fifo + + +[Changelog]: Avoid race when opening exec fifo + +When starting a container with `runc start` or `runc run`, the stub +process (runc[2:INIT]) opens a fifo for writing. Its parent runc process +will open the same fifo for reading. In this way, they synchronize. + +If the stub process exits at the wrong time, the parent runc process +will block forever. + +This can happen when racing 2 runc operations against each other: `runc +run/start`, and `runc delete`. It could also happen for other reasons, +e.g. the kernel's OOM killer may select the stub process. + +This commit resolves this race by racing the opening of the exec fifo +from the runc parent process against the stub process exiting. If the +stub process exits before we open the fifo, we return an error. + +Another solution is to wait on the stub process. However, it seems it +would require more refactoring to avoid calling wait multiple times on +the same process, which is an error. + +This is cherry-picked from runc upstream: + https://github.com/opencontainers/runc/pull/1698 +[Author]:Shukui Yang + +Change-Id: Id0ba756349b59463f7ee19ad63a6f243bee4a729 +Signed-off-by: Craig Furman +Signed-off-by: dengguangxing +--- + libcontainer/container_linux.go | 69 +++++++++++++++++++++++++++++++++++------ + libcontainer/system/proc.go | 59 +++++++++++++++++++++++++++++++++++ + 2 files changed, 119 insertions(+), 9 deletions(-) + +diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go +index 74b82c5..278f597 100644 +--- a/libcontainer/container_linux.go ++++ b/libcontainer/container_linux.go +@@ -5,6 +5,7 @@ package libcontainer + import ( + "bytes" + "encoding/json" ++ "errors" + "fmt" + "io" + "io/ioutil" +@@ -239,20 +240,70 @@ func (c *linuxContainer) Exec() error { + + func (c *linuxContainer) exec() error { + path := filepath.Join(c.root, execFifoFilename) +- f, err := os.OpenFile(path, os.O_RDONLY, 0) +- if err != nil { +- return newSystemErrorWithCause(err, "open exec fifo for reading") ++ ++ fifoOpen := make(chan struct{}) ++ select { ++ case <-awaitProcessExit(c.initProcess.pid(), fifoOpen): ++ return errors.New("container process is already dead") ++ case result := <-awaitFifoOpen(path): ++ close(fifoOpen) ++ if result.err != nil { ++ return result.err ++ } ++ f := result.file ++ defer f.Close() ++ if err := readFromExecFifo(f); err != nil { ++ return err ++ } ++ return os.Remove(path) + } +- defer f.Close() +- data, err := ioutil.ReadAll(f) ++} ++ ++func readFromExecFifo(execFifo io.Reader) error { ++ data, err := ioutil.ReadAll(execFifo) + if err != nil { + return err + } +- if len(data) > 0 { +- os.Remove(path) +- return nil ++ if len(data) <= 0 { ++ return fmt.Errorf("cannot start an already running container") + } +- return fmt.Errorf("cannot start an already running container") ++ return nil ++} ++ ++func awaitProcessExit(pid int, exit <-chan struct{}) <-chan struct{} { ++ isDead := make(chan struct{}) ++ go func() { ++ for { ++ select { ++ case <-exit: ++ return ++ case <-time.After(time.Millisecond * 100): ++ stat, err := system.GetProcessState(pid) ++ if err != nil || stat == system.Zombie { ++ close(isDead) ++ return ++ } ++ } ++ } ++ }() ++ return isDead ++} ++ ++func awaitFifoOpen(path string) <-chan openResult { ++ fifoOpened := make(chan openResult) ++ go func() { ++ f, err := os.OpenFile(path, os.O_RDONLY, 0) ++ if err != nil { ++ fifoOpened <- openResult{err: newSystemErrorWithCause(err, "open exec fifo for reading")} ++ } ++ fifoOpened <- openResult{file: f} ++ }() ++ return fifoOpened ++} ++ ++type openResult struct { ++ file *os.File ++ err error + } + + func (c *linuxContainer) start(process *Process, isInit bool) error { +diff --git a/libcontainer/system/proc.go b/libcontainer/system/proc.go +index a0e9637..03fd940 100644 +--- a/libcontainer/system/proc.go ++++ b/libcontainer/system/proc.go +@@ -1,12 +1,48 @@ + package system + + import ( ++ "fmt" + "io/ioutil" + "path/filepath" + "strconv" + "strings" + ) + ++type State rune ++ ++const ( // Only values for Linux 3.14 and later are listed here ++ Dead State = 'X' ++ DiskSleep State = 'D' ++ Running State = 'R' ++ Sleeping State = 'S' ++ Stopped State = 'T' ++ TracingStop State = 't' ++ Zombie State = 'Z' ++) ++ ++// String forms of the state from proc(5)'s documentation for ++// /proc/[pid]/status' "State" field. ++func (s State) String() string { ++ switch s { ++ case Dead: ++ return "dead" ++ case DiskSleep: ++ return "disk sleep" ++ case Running: ++ return "running" ++ case Sleeping: ++ return "sleeping" ++ case Stopped: ++ return "stopped" ++ case TracingStop: ++ return "tracing stop" ++ case Zombie: ++ return "zombie" ++ default: ++ return fmt.Sprintf("unknown (%c)", s) ++ } ++} ++ + // look in /proc to find the process start time so that we can verify + // that this pid has started after ourself + func GetProcessStartTime(pid int) (string, error) { +@@ -41,3 +77,26 @@ func parseStartTime(stat string) (string, error) { + parts := strings.Split(strings.TrimSpace(s[len(s)-1]), " ") + return parts[22-3], nil // starts at 3 (after the filename pos `2`) + } ++ ++func GetProcessState(pid int) (State, error) { ++ data, err := ioutil.ReadFile(filepath.Join("/proc", strconv.Itoa(pid), "stat")) ++ if err != nil { ++ return State(0), err ++ } ++ return parseState(string(data)) ++ ++} ++ ++func parseState(data string) (State, error) { ++ i := strings.LastIndex(data, ")") ++ if i <= 2 || i >= len(data)-3 { ++ return State(0), fmt.Errorf("invalid stat data: %q", data) ++ } ++ ++ parts := strings.Split(data[i+2:], " ") ++ ++ var state int ++ fmt.Sscanf(parts[3-3], "%c", &state) ++ stateStr := State(state) ++ return stateStr, nil ++} +-- +2.7.4.3 + diff --git a/patch/0051-runc-Return-from-goroutine-when-it-should-t.patch b/patch/0051-runc-Return-from-goroutine-when-it-should-t.patch new file mode 100644 index 0000000..1689f32 --- /dev/null +++ b/patch/0051-runc-Return-from-goroutine-when-it-should-t.patch @@ -0,0 +1,33 @@ +From df24ec79d3a69e9deab962eacc8ecbd46b0aefd9 Mon Sep 17 00:00:00 2001 +From: Ed King +Date: Tue, 23 Jan 2018 10:46:31 +0000 +Subject: [PATCH 51/94] runc: Return from goroutine when it should + terminate + + +[Changelog]: This is cherry-picked from runc upstream: + https://github.com/opencontainers/runc/pull/1698 +[Author]:Shukui Yang + +Change-Id: Ie99f80c1fb5912d99dd7426b47f93e9f5a6efb23 +Signed-off-by: Craig Furman +Signed-off-by: dengguangxing +--- + libcontainer/container_linux.go | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go +index 278f597..50fe657 100644 +--- a/libcontainer/container_linux.go ++++ b/libcontainer/container_linux.go +@@ -295,6 +295,7 @@ func awaitFifoOpen(path string) <-chan openResult { + f, err := os.OpenFile(path, os.O_RDONLY, 0) + if err != nil { + fifoOpened <- openResult{err: newSystemErrorWithCause(err, "open exec fifo for reading")} ++ return + } + fifoOpened <- openResult{file: f} + }() +-- +2.7.4.3 + diff --git a/patch/0052-runc-reduce-max-number-of-retries-to-10.patch b/patch/0052-runc-reduce-max-number-of-retries-to-10.patch new file mode 100644 index 0000000..b4d3b69 --- /dev/null +++ b/patch/0052-runc-reduce-max-number-of-retries-to-10.patch @@ -0,0 +1,32 @@ +From c8b74f1b809d8fbf1ba2dc74c069e03d9e95be71 Mon Sep 17 00:00:00 2001 +From: liruilin4 +Date: Mon, 9 Jul 2018 12:02:33 +0800 +Subject: [PATCH 52/94] runc: reduce max number of retries to 10 + +[Changelog]:when killing containers in D state, now runc will do +100 retries, which leads that containerd blocks for 10 seconds. +[Author]:Ruilin Li + +Change-Id: I1e08ef23ad065f5e3b88506726530187d2ccc797 +--- + delete.go | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/delete.go b/delete.go +index b43dcaa..a2b14f3 100644 +--- a/delete.go ++++ b/delete.go +@@ -14,8 +14,8 @@ import ( + ) + + func killContainer(container libcontainer.Container) error { +- _ = container.Signal(syscall.SIGKILL, false) +- for i := 0; i < 100; i++ { ++ container.Signal(syscall.SIGKILL, false) ++ for i := 0; i < 10; i++ { + time.Sleep(100 * time.Millisecond) + if err := container.Signal(syscall.Signal(0), false); err != nil { + destroy(container) +-- +2.7.4.3 + diff --git a/patch/0053-runc-print-error-message-during-start-into-co.patch b/patch/0053-runc-print-error-message-during-start-into-co.patch new file mode 100644 index 0000000..83ec2de --- /dev/null +++ b/patch/0053-runc-print-error-message-during-start-into-co.patch @@ -0,0 +1,36 @@ +From 165870fb442ca29a208a3d17f8ece6b8e74da2de Mon Sep 17 00:00:00 2001 +From: panwenxiang +Date: Wed, 22 Aug 2018 17:04:19 +0800 +Subject: [PATCH 53/94] runc: print error message during start into + container log + +[Changelog]:cherry-pick from vtwrse <75eba7a697edde39e25e39c870a33f3dc5fb327a> +Change-Id: Id23f14690d77a4f79611e82f4e2ece41d9b19edf +Signed-off-by: jiangpengfei9 +--- + main_unix.go | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/main_unix.go b/main_unix.go +index b601abc..56904e0 100644 +--- a/main_unix.go ++++ b/main_unix.go +@@ -3,6 +3,7 @@ + package main + + import ( ++ "fmt" + "os" + "runtime" + +@@ -24,6 +25,7 @@ var initCommand = cli.Command{ + Action: func(context *cli.Context) error { + factory, _ := libcontainer.New("") + if err := factory.StartInitialization(); err != nil { ++ fmt.Fprintf(os.Stderr, "libcontainer: container start initialization failed: %s", err) + // as the error is sent back to the parent there is no need to log + // or write it to stderr because the parent process will handle this + os.Exit(1) +-- +2.7.4.3 + diff --git a/patch/0054-runc-ignore-exec.fifo-removing-not-exist-erro.patch b/patch/0054-runc-ignore-exec.fifo-removing-not-exist-erro.patch new file mode 100644 index 0000000..184f6be --- /dev/null +++ b/patch/0054-runc-ignore-exec.fifo-removing-not-exist-erro.patch @@ -0,0 +1,31 @@ +From a119a29bc908bfd1385cbdcee4cc800e2b022b09 Mon Sep 17 00:00:00 2001 +From: panwenxiang +Date: Wed, 22 Aug 2018 17:06:01 +0800 +Subject: [PATCH 54/94] runc: ignore exec.fifo removing not exist error + +[Changelog]:cherry-pick from vtwrse <4af7ee1635962fe3bd86ac87064fdcd7e60c1135> +Change-Id: I34a30672fb92c974965b3a53cfb8ccc75932e6d8 +Signed-off-by: jiangpengfei9 +--- + libcontainer/container_linux.go | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go +index 50fe657..502a274 100644 +--- a/libcontainer/container_linux.go ++++ b/libcontainer/container_linux.go +@@ -255,7 +255,10 @@ func (c *linuxContainer) exec() error { + if err := readFromExecFifo(f); err != nil { + return err + } +- return os.Remove(path) ++ if err := os.Remove(path); !os.IsNotExist(err) { ++ return err ++ } ++ return nil + } + } + +-- +2.7.4.3 + diff --git a/patch/0055-Add-file-fds-limit.patch b/patch/0055-Add-file-fds-limit.patch new file mode 100644 index 0000000..3204d0e --- /dev/null +++ b/patch/0055-Add-file-fds-limit.patch @@ -0,0 +1,246 @@ +From fdf82f9b9bac43cac5672226750c826e742559ce Mon Sep 17 00:00:00 2001 +From: yangshukui +Date: Mon, 18 Sep 2017 17:25:30 +0800 +Subject: [PATCH 55/94] Add file fds limit + +With the patch(https://lwn.net/Articles/604129/),we can limit the +num of open files in container. +Conflicts: + events.go + vendor/github.com/opencontainers/runtime-spec/specs-go/config.go + +Change-Id: I8264c0dd398227ebbd95b7dd9dae4688d76dee9b +Signed-off-by: yangshukui +--- + events.go | 9 +++ + libcontainer/cgroups/fs/apply_raw.go | 1 + + libcontainer/cgroups/fs/files.go | 74 ++++++++++++++++++++++ + libcontainer/cgroups/stats.go | 8 +++ + libcontainer/cgroups/systemd/apply_systemd.go | 1 + + libcontainer/configs/cgroup_unix.go | 3 + + libcontainer/specconv/spec_linux.go | 3 + + .../opencontainers/runtime-spec/specs-go/config.go | 8 +++ + 8 files changed, 107 insertions(+) + create mode 100644 libcontainer/cgroups/fs/files.go + +diff --git a/events.go b/events.go +index 6c21e52..79a72bf 100644 +--- a/events.go ++++ b/events.go +@@ -27,6 +27,7 @@ type stats struct { + CPU cpu `json:"cpu"` + Memory memory `json:"memory"` + Pids pids `json:"pids"` ++ Files files `json:"files"` + Blkio blkio `json:"blkio"` + Hugetlb map[string]hugetlb `json:"hugetlb"` + } +@@ -60,6 +61,11 @@ type pids struct { + Limit uint64 `json:"limit,omitempty"` + } + ++type files struct { ++ Usage uint64 `json:"usage,omitempty"` ++ Limit uint64 `json:"limit,omitempty"` ++} ++ + type throttling struct { + Periods uint64 `json:"periods,omitempty"` + ThrottledPeriods uint64 `json:"throttledPeriods,omitempty"` +@@ -198,6 +204,9 @@ func convertLibcontainerStats(ls *libcontainer.Stats) *stats { + s.Pids.Current = cg.PidsStats.Current + s.Pids.Limit = cg.PidsStats.Limit + ++ s.Files.Usage = cg.FilesStats.Usage ++ s.Files.Limit = cg.FilesStats.Limit ++ + s.CPU.Usage.Kernel = cg.CpuStats.CpuUsage.UsageInKernelmode + s.CPU.Usage.User = cg.CpuStats.CpuUsage.UsageInUsermode + s.CPU.Usage.Total = cg.CpuStats.CpuUsage.TotalUsage +diff --git a/libcontainer/cgroups/fs/apply_raw.go b/libcontainer/cgroups/fs/apply_raw.go +index 66debae..1bf59a4 100644 +--- a/libcontainer/cgroups/fs/apply_raw.go ++++ b/libcontainer/cgroups/fs/apply_raw.go +@@ -24,6 +24,7 @@ var ( + &CpuGroup{}, + &CpuacctGroup{}, + &PidsGroup{}, ++ &FilesGroup{}, + &BlkioGroup{}, + &HugetlbGroup{}, + &NetClsGroup{}, +diff --git a/libcontainer/cgroups/fs/files.go b/libcontainer/cgroups/fs/files.go +new file mode 100644 +index 0000000..f2e253a +--- /dev/null ++++ b/libcontainer/cgroups/fs/files.go +@@ -0,0 +1,74 @@ ++// +build linux ++ ++package fs ++ ++import ( ++ "fmt" ++ "io/ioutil" ++ "strconv" ++ ++ "github.com/opencontainers/runc/libcontainer/cgroups" ++ "github.com/opencontainers/runc/libcontainer/configs" ++) ++ ++var ( ++ defaultFilesMax = "8192" ++) ++ ++type FilesGroup struct { ++} ++ ++func init() { ++ contents, err := ioutil.ReadFile("/proc/sys/fs/file-max") ++ if err != nil { ++ return ++ } ++ defaultFilesMax = string(contents) ++} ++ ++func (s *FilesGroup) Name() string { ++ return "files" ++} ++ ++func (s *FilesGroup) Apply(d *cgroupData) error { ++ _, err := d.join("files") ++ if err != nil && !cgroups.IsNotFound(err) { ++ return err ++ } ++ return nil ++} ++ ++func (s *FilesGroup) Set(path string, cgroup *configs.Cgroup) error { ++ if cgroup.Resources.FilesLimit != 0 { ++ limit := defaultFilesMax ++ if cgroup.Resources.FilesLimit > 0 { ++ limit = strconv.FormatInt(cgroup.Resources.FilesLimit, 10) ++ } ++ ++ if err := writeFile(path, "files.limit", limit); err != nil { ++ return err ++ } ++ } ++ ++ return nil ++} ++ ++func (s *FilesGroup) Remove(d *cgroupData) error { ++ return removePath(d.path("files")) ++} ++ ++func (s *FilesGroup) GetStats(path string, stats *cgroups.Stats) error { ++ usage, err := getCgroupParamUint(path, "files.usage") ++ if err != nil { ++ return fmt.Errorf("failed to parse files.usage - %s", err) ++ } ++ ++ limit, err := getCgroupParamUint(path, "files.limit") ++ if err != nil { ++ return fmt.Errorf("failed to parse files.limit - %s", err) ++ } ++ ++ stats.FilesStats.Usage = usage ++ stats.FilesStats.Limit = limit ++ return nil ++} +diff --git a/libcontainer/cgroups/stats.go b/libcontainer/cgroups/stats.go +index b483f1b..5079410 100644 +--- a/libcontainer/cgroups/stats.go ++++ b/libcontainer/cgroups/stats.go +@@ -62,6 +62,13 @@ type PidsStats struct { + Limit uint64 `json:"limit,omitempty"` + } + ++type FilesStats struct { ++ // number of pids in the cgroup ++ Usage uint64 `json:"usage,omitempty"` ++ // active pids hard limit ++ Limit uint64 `json:"limit,omitempty"` ++} ++ + type BlkioStatEntry struct { + Major uint64 `json:"major,omitempty"` + Minor uint64 `json:"minor,omitempty"` +@@ -94,6 +101,7 @@ type Stats struct { + CpuStats CpuStats `json:"cpu_stats,omitempty"` + MemoryStats MemoryStats `json:"memory_stats,omitempty"` + PidsStats PidsStats `json:"pids_stats,omitempty"` ++ FilesStats FilesStats `json:"files_stats,omitempty"` + BlkioStats BlkioStats `json:"blkio_stats,omitempty"` + // the map is in the format "size of hugepage: stats of the hugepage" + HugetlbStats map[string]HugetlbStats `json:"hugetlb_stats,omitempty"` +diff --git a/libcontainer/cgroups/systemd/apply_systemd.go b/libcontainer/cgroups/systemd/apply_systemd.go +index 456c57d..0411b72 100644 +--- a/libcontainer/cgroups/systemd/apply_systemd.go ++++ b/libcontainer/cgroups/systemd/apply_systemd.go +@@ -54,6 +54,7 @@ var subsystems = subsystemSet{ + &fs.CpuGroup{}, + &fs.CpuacctGroup{}, + &fs.PidsGroup{}, ++ &fs.FilesGroup{}, + &fs.BlkioGroup{}, + &fs.HugetlbGroup{}, + &fs.PerfEventGroup{}, +diff --git a/libcontainer/configs/cgroup_unix.go b/libcontainer/configs/cgroup_unix.go +index 75a3db0..acf0562 100644 +--- a/libcontainer/configs/cgroup_unix.go ++++ b/libcontainer/configs/cgroup_unix.go +@@ -89,6 +89,9 @@ type Resources struct { + // Process limit; set <= `0' to disable limit. + PidsLimit int64 `json:"pids_limit"` + ++ // Process open files limit. ++ FilesLimit int64 `json:"files_limit"` ++ + // Specifies per cgroup weight, range is from 10 to 1000. + BlkioWeight uint16 `json:"blkio_weight"` + +diff --git a/libcontainer/specconv/spec_linux.go b/libcontainer/specconv/spec_linux.go +index a968313..b82082e 100644 +--- a/libcontainer/specconv/spec_linux.go ++++ b/libcontainer/specconv/spec_linux.go +@@ -403,6 +403,9 @@ func createCgroupConfig(opts *CreateOpts) (*configs.Cgroup, error) { + if r.Pids != nil { + c.Resources.PidsLimit = r.Pids.Limit + } ++ if r.Files != nil && r.Files.Limit != nil { ++ c.Resources.FilesLimit = *r.Files.Limit ++ } + if r.BlockIO != nil { + if r.BlockIO.Weight != nil { + c.Resources.BlkioWeight = *r.BlockIO.Weight +diff --git a/vendor/github.com/opencontainers/runtime-spec/specs-go/config.go b/vendor/github.com/opencontainers/runtime-spec/specs-go/config.go +index 6d2a026..603ecf4 100644 +--- a/vendor/github.com/opencontainers/runtime-spec/specs-go/config.go ++++ b/vendor/github.com/opencontainers/runtime-spec/specs-go/config.go +@@ -318,6 +318,12 @@ type LinuxPids struct { + Limit int64 `json:"limit"` + } + ++// Files for Linux cgroup 'files' resource management (https://lwn.net/Articles/604129/) ++type Files struct { ++ // Maximum number of open files". ++ Limit *int64 `json:"limit,omitempty"` ++} ++ + // LinuxNetwork identification and priority configuration + type LinuxNetwork struct { + // Set class identifier for container's network packets +@@ -340,6 +346,8 @@ type LinuxResources struct { + CPU *LinuxCPU `json:"cpu,omitempty"` + // Task resource restriction configuration. + Pids *LinuxPids `json:"pids,omitempty"` ++ // Files resource restriction configuration. ++ Files *Files `json:"files,omitempty"` + // BlockIO restriction configuration + BlockIO *LinuxBlockIO `json:"blockIO,omitempty"` + // Hugetlb limit (in bytes) +-- +2.7.4.3 + diff --git a/patch/0056-runc-Modify-max-files.limit-to-max-because-of.patch b/patch/0056-runc-Modify-max-files.limit-to-max-because-of.patch new file mode 100644 index 0000000..729a155 --- /dev/null +++ b/patch/0056-runc-Modify-max-files.limit-to-max-because-of.patch @@ -0,0 +1,61 @@ +From 0a5b23584d79bba18429905c43774bc50a117b4b Mon Sep 17 00:00:00 2001 +From: yangshukui +Date: Sat, 4 Nov 2017 14:55:40 +0800 +Subject: [PATCH 56/94] runc: Modify max files.limit to max because of + the change of kernel. + +[Changelog]: Kernel has change max files.limit to max,So docker need +change too. + +Change-Id: Iea6e5eb1dddf0f8d2d55ee3182ed78957cb09a75 +Signed-off-by: yangshukui +--- + libcontainer/cgroups/fs/files.go | 16 ++-------------- + 1 file changed, 2 insertions(+), 14 deletions(-) + +diff --git a/libcontainer/cgroups/fs/files.go b/libcontainer/cgroups/fs/files.go +index f2e253a..3214a82 100644 +--- a/libcontainer/cgroups/fs/files.go ++++ b/libcontainer/cgroups/fs/files.go +@@ -4,28 +4,15 @@ package fs + + import ( + "fmt" +- "io/ioutil" + "strconv" + + "github.com/opencontainers/runc/libcontainer/cgroups" + "github.com/opencontainers/runc/libcontainer/configs" + ) + +-var ( +- defaultFilesMax = "8192" +-) +- + type FilesGroup struct { + } + +-func init() { +- contents, err := ioutil.ReadFile("/proc/sys/fs/file-max") +- if err != nil { +- return +- } +- defaultFilesMax = string(contents) +-} +- + func (s *FilesGroup) Name() string { + return "files" + } +@@ -40,7 +27,8 @@ func (s *FilesGroup) Apply(d *cgroupData) error { + + func (s *FilesGroup) Set(path string, cgroup *configs.Cgroup) error { + if cgroup.Resources.FilesLimit != 0 { +- limit := defaultFilesMax ++ // "max" is the fallback value. ++ limit := "max" + if cgroup.Resources.FilesLimit > 0 { + limit = strconv.FormatInt(cgroup.Resources.FilesLimit, 10) + } +-- +2.7.4.3 + diff --git a/patch/0057-runc-change-read-value-of-cgroup-files.limit-.patch b/patch/0057-runc-change-read-value-of-cgroup-files.limit-.patch new file mode 100644 index 0000000..46462b5 --- /dev/null +++ b/patch/0057-runc-change-read-value-of-cgroup-files.limit-.patch @@ -0,0 +1,55 @@ +From aff98c05dbaf30fec52a0afed19ebf4a03303d63 Mon Sep 17 00:00:00 2001 +From: caihaomin +Date: Mon, 6 Nov 2017 01:43:45 +0000 +Subject: [PATCH 57/94] runc: change read value of cgroup files.limit + into string + +[Changelog]:change read value of cgroup files.limit from int to string. +For avoiding of value `max` +[Author]git + +Change-Id: Iec6197528b1aebb13a0ea64ba919a7b4c6f31d61 +Signed-off-by: caihaomin +--- + libcontainer/cgroups/fs/files.go | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +diff --git a/libcontainer/cgroups/fs/files.go b/libcontainer/cgroups/fs/files.go +index 3214a82..70e9524 100644 +--- a/libcontainer/cgroups/fs/files.go ++++ b/libcontainer/cgroups/fs/files.go +@@ -8,6 +8,7 @@ import ( + + "github.com/opencontainers/runc/libcontainer/cgroups" + "github.com/opencontainers/runc/libcontainer/configs" ++ "path/filepath" + ) + + type FilesGroup struct { +@@ -51,12 +52,21 @@ func (s *FilesGroup) GetStats(path string, stats *cgroups.Stats) error { + return fmt.Errorf("failed to parse files.usage - %s", err) + } + +- limit, err := getCgroupParamUint(path, "files.limit") ++ maxString, err := getCgroupParamString(path, "files.limit") + if err != nil { + return fmt.Errorf("failed to parse files.limit - %s", err) + } + ++ // Default if files.limit == "max" is 0 -- which represents "no limit". ++ var max uint64 ++ if maxString != "max" { ++ max, err = parseUint(maxString, 10, 64) ++ if err != nil { ++ return fmt.Errorf("failed to parse files.limit -- unable to parse %q as a uint from Cgroup file %q", maxString, filepath.Join(path, "file.limits")) ++ } ++ } ++ + stats.FilesStats.Usage = usage +- stats.FilesStats.Limit = limit ++ stats.FilesStats.Limit = max + return nil + } +-- +2.7.4.3 + diff --git a/patch/0058-runc-fix-panic-when-Linux-is-nil.patch b/patch/0058-runc-fix-panic-when-Linux-is-nil.patch new file mode 100644 index 0000000..679bc0b --- /dev/null +++ b/patch/0058-runc-fix-panic-when-Linux-is-nil.patch @@ -0,0 +1,194 @@ +From 20e119ab64e02e627671957bbfa445b988cc8687 Mon Sep 17 00:00:00 2001 +From: dengguangxing +Date: Wed, 16 May 2018 15:50:27 +0800 +Subject: [PATCH 58/94] runc: fix panic when Linux is nil + + +[Changelog]: Linux is not always not nil. +If Linux is nil, panic will occur. + +This is cherry-picked from runc upstream: + https://github.com/opencontainers/runc/pull/1551 +[Author]:Shukui Yang +Conflicts: + libcontainer/specconv/spec_linux.go + +Change-Id: Ib3bf9e80852dc079ab2d42a8234297397f3c56d9 +Signed-off-by: Ma Shimiao +Signed-off-by: Michael Crosby +Signed-off-by: dengguangxing +--- + libcontainer/specconv/spec_linux.go | 121 +++++++++++++++++++----------------- + 1 file changed, 65 insertions(+), 56 deletions(-) + +diff --git a/libcontainer/specconv/spec_linux.go b/libcontainer/specconv/spec_linux.go +index b82082e..a8cf114 100644 +--- a/libcontainer/specconv/spec_linux.go ++++ b/libcontainer/specconv/spec_linux.go +@@ -180,20 +180,6 @@ func CreateLibcontainerConfig(opts *CreateOpts) (*configs.Config, error) { + } + + exists := false +- if config.RootPropagation, exists = mountPropagationMapping[spec.Linux.RootfsPropagation]; !exists { +- return nil, fmt.Errorf("rootfsPropagation=%v is not supported", spec.Linux.RootfsPropagation) +- } +- +- for _, ns := range spec.Linux.Namespaces { +- t, exists := namespaceMapping[ns.Type] +- if !exists { +- return nil, fmt.Errorf("namespace %q does not exist", ns) +- } +- if config.Namespaces.Contains(t) { +- return nil, fmt.Errorf("malformed spec file: duplicated ns %q", ns) +- } +- config.Namespaces.Add(t, ns.Path) +- } + if config.Namespaces.Contains(configs.NEWNET) && config.Namespaces.PathOf(configs.NEWNET) == "" { + config.Networks = []*configs.Network{ + { +@@ -215,15 +201,35 @@ func CreateLibcontainerConfig(opts *CreateOpts) (*configs.Config, error) { + return nil, err + } + config.Cgroups = c +- // set extra path masking for libcontainer for the various unsafe places in proc +- config.MaskPaths = spec.Linux.MaskedPaths +- config.ReadonlyPaths = spec.Linux.ReadonlyPaths +- if spec.Linux.Seccomp != nil { +- seccomp, err := setupSeccomp(spec.Linux.Seccomp) +- if err != nil { +- return nil, err ++ // set linux-specific config ++ if spec.Linux != nil { ++ if config.RootPropagation, exists = mountPropagationMapping[spec.Linux.RootfsPropagation]; !exists { ++ return nil, fmt.Errorf("rootfsPropagation=%v is not supported", spec.Linux.RootfsPropagation) ++ } ++ ++ for _, ns := range spec.Linux.Namespaces { ++ t, exists := namespaceMapping[ns.Type] ++ if !exists { ++ return nil, fmt.Errorf("namespace %q does not exist", ns) ++ } ++ if config.Namespaces.Contains(t) { ++ return nil, fmt.Errorf("malformed spec file: duplicated ns %q", ns) ++ } ++ config.Namespaces.Add(t, ns.Path) ++ } ++ ++ // set extra path masking for libcontainer for the various unsafe places in proc ++ config.MaskPaths = spec.Linux.MaskedPaths ++ config.ReadonlyPaths = spec.Linux.ReadonlyPaths ++ config.MountLabel = spec.Linux.MountLabel ++ config.Sysctl = spec.Linux.Sysctl ++ if spec.Linux.Seccomp != nil { ++ seccomp, err := setupSeccomp(spec.Linux.Seccomp) ++ if err != nil { ++ return nil, err ++ } ++ config.Seccomp = seccomp + } +- config.Seccomp = seccomp + } + if spec.Process.SelinuxLabel != "" { + config.ProcessLabel = spec.Process.SelinuxLabel +@@ -242,7 +248,6 @@ func CreateLibcontainerConfig(opts *CreateOpts) (*configs.Config, error) { + } + } + createHooks(spec, config) +- config.MountLabel = spec.Linux.MountLabel + config.Version = specs.Version + return config, nil + } +@@ -565,41 +570,40 @@ func createDevices(spec *specs.Spec, config *configs.Config) error { + }, + } + // merge in additional devices from the spec +- for _, d := range spec.Linux.Devices { +- var uid, gid uint32 +- var filemode os.FileMode = 0666 ++ if spec.Linux != nil { ++ for _, d := range spec.Linux.Devices { ++ var uid, gid uint32 ++ var filemode os.FileMode = 0666 + +- if d.UID != nil { +- uid = *d.UID +- } +- if d.GID != nil { +- gid = *d.GID +- } +- dt, err := stringToDeviceRune(d.Type) +- if err != nil { +- return err +- } +- if d.FileMode != nil { +- filemode = *d.FileMode +- } +- device := &configs.Device{ +- Type: dt, +- Path: d.Path, +- Major: d.Major, +- Minor: d.Minor, +- FileMode: filemode, +- Uid: uid, +- Gid: gid, ++ if d.UID != nil { ++ uid = *d.UID ++ } ++ if d.GID != nil { ++ gid = *d.GID ++ } ++ dt, err := stringToDeviceRune(d.Type) ++ if err != nil { ++ return err ++ } ++ if d.FileMode != nil { ++ filemode = *d.FileMode ++ } ++ device := &configs.Device{ ++ Type: dt, ++ Path: d.Path, ++ Major: d.Major, ++ Minor: d.Minor, ++ FileMode: filemode, ++ Uid: uid, ++ Gid: gid, ++ } ++ config.Devices = append(config.Devices, device) + } +- config.Devices = append(config.Devices, device) + } + return nil + } + + func setupUserNamespace(spec *specs.Spec, config *configs.Config) error { +- if len(spec.Linux.UIDMappings) == 0 { +- return nil +- } + create := func(m specs.LinuxIDMapping) configs.IDMap { + return configs.IDMap{ + HostID: int(m.HostID), +@@ -607,11 +611,16 @@ func setupUserNamespace(spec *specs.Spec, config *configs.Config) error { + Size: int(m.Size), + } + } +- for _, m := range spec.Linux.UIDMappings { +- config.UidMappings = append(config.UidMappings, create(m)) +- } +- for _, m := range spec.Linux.GIDMappings { +- config.GidMappings = append(config.GidMappings, create(m)) ++ if spec.Linux != nil { ++ if len(spec.Linux.UIDMappings) == 0 { ++ return nil ++ } ++ for _, m := range spec.Linux.UIDMappings { ++ config.UidMappings = append(config.UidMappings, create(m)) ++ } ++ for _, m := range spec.Linux.GIDMappings { ++ config.GidMappings = append(config.GidMappings, create(m)) ++ } + } + rootUID, err := config.HostRootUID() + if err != nil { +-- +2.7.4.3 + diff --git a/patch/0059-Fix-setup-cgroup-before-prestart-hook.patch b/patch/0059-Fix-setup-cgroup-before-prestart-hook.patch new file mode 100644 index 0000000..b2d1d73 --- /dev/null +++ b/patch/0059-Fix-setup-cgroup-before-prestart-hook.patch @@ -0,0 +1,59 @@ +From 394c8695f22731938994fdc5d7db678762119481 Mon Sep 17 00:00:00 2001 +From: Wentao Zhang +Date: Tue, 20 Dec 2016 06:21:10 -0500 +Subject: [PATCH 59/94] Fix setup cgroup before prestart hook + +* User Case: +User could use prestart hook to add block devices to container. so the +hook should have a way to set the permissions of the devices. + +Just move cgroup config operation before prestart hook will work. +Conflicts: + libcontainer/process_linux.go + +Change-Id: I991138f4e686c4268e0629204ce1eae6452fdecf +Signed-off-by: Wentao Zhang +--- + libcontainer/process_linux.go | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) + +diff --git a/libcontainer/process_linux.go b/libcontainer/process_linux.go +index 9064c0e..70e93de 100644 +--- a/libcontainer/process_linux.go ++++ b/libcontainer/process_linux.go +@@ -286,9 +286,6 @@ func (p *initProcess) start() error { + ierr := parseSync(p.parentPipe, func(sync *syncT) error { + switch sync.Type { + case procReady: +- if err := p.manager.Set(p.config.Config); err != nil { +- return newSystemErrorWithCause(err, "setting cgroup config for ready process") +- } + // set rlimits, this has to be done here because we lose permissions + // to raise the limits once we enter a user-namespace + if err := setupRlimits(p.config.Rlimits, p.pid()); err != nil { +@@ -296,6 +293,11 @@ func (p *initProcess) start() error { + } + // call prestart hooks + if !p.config.Config.Namespaces.Contains(configs.NEWNS) { ++ // Setup cgroup before prestart hook, so that the prestart hook could apply cgroup permissions. ++ if err := p.manager.Set(p.config.Config); err != nil { ++ return newSystemErrorWithCause(err, "setting cgroup config for ready process") ++ } ++ + if p.config.Config.Hooks != nil { + s := configs.HookState{ + SpecState: configs.SpecState{ +@@ -321,6 +323,10 @@ func (p *initProcess) start() error { + } + sentRun = true + case procHooks: ++ // Setup cgroup before prestart hook, so that the prestart hook could apply cgroup permissions. ++ if err := p.manager.Set(p.config.Config); err != nil { ++ return newSystemErrorWithCause(err, "setting cgroup config for ready process") ++ } + if p.config.Config.Hooks != nil { + s := configs.HookState{ + SpecState: configs.SpecState{ +-- +2.7.4.3 + diff --git a/patch/0060-runc-runc-logs-forwarding-to-syslog.patch b/patch/0060-runc-runc-logs-forwarding-to-syslog.patch new file mode 100644 index 0000000..d07f219 --- /dev/null +++ b/patch/0060-runc-runc-logs-forwarding-to-syslog.patch @@ -0,0 +1,860 @@ +From c8d9a899d3425c342e83868540ca357bf9f7a661 Mon Sep 17 00:00:00 2001 +From: panwenxiang +Date: Fri, 19 Oct 2018 15:00:34 +0800 +Subject: [PATCH 60/94] runc: runc logs forwarding to syslog + +reason:runc logs forwarding to syslog and using the config "--log-level" to control the number of logs + +Change-Id: Ia93f6f5c56131ea8558c4b7b7e5c4bec827a1bad + +Conflicts: + libcontainer/container_linux.go + libcontainer/process_linux.go + libcontainer/state_linux.go +--- + create.go | 3 +- + libcontainer/configs/config.go | 55 +++++++++--- + libcontainer/container_linux.go | 16 ++-- + libcontainer/process_linux.go | 19 ++-- + libcontainer/state_linux.go | 4 +- + main.go | 33 +++++-- + script/runc-euleros.spec | 2 +- + vendor/github.com/Sirupsen/logrus/Checklist | 1 + + .../Sirupsen/logrus/hooks/airbrake/airbrake.go | 54 +++++++++++ + .../Sirupsen/logrus/hooks/bugsnag/bugsnag.go | 68 ++++++++++++++ + .../Sirupsen/logrus/hooks/papertrail/README.md | 28 ++++++ + .../Sirupsen/logrus/hooks/papertrail/papertrail.go | 55 ++++++++++++ + .../Sirupsen/logrus/hooks/sentry/README.md | 61 +++++++++++++ + .../Sirupsen/logrus/hooks/sentry/sentry.go | 100 +++++++++++++++++++++ + .../Sirupsen/logrus/hooks/syslog/README.md | 20 +++++ + .../Sirupsen/logrus/hooks/syslog/syslog.go | 59 ++++++++++++ + 16 files changed, 535 insertions(+), 43 deletions(-) + create mode 100644 vendor/github.com/Sirupsen/logrus/Checklist + create mode 100644 vendor/github.com/Sirupsen/logrus/hooks/airbrake/airbrake.go + create mode 100644 vendor/github.com/Sirupsen/logrus/hooks/bugsnag/bugsnag.go + create mode 100644 vendor/github.com/Sirupsen/logrus/hooks/papertrail/README.md + create mode 100644 vendor/github.com/Sirupsen/logrus/hooks/papertrail/papertrail.go + create mode 100644 vendor/github.com/Sirupsen/logrus/hooks/sentry/README.md + create mode 100644 vendor/github.com/Sirupsen/logrus/hooks/sentry/sentry.go + create mode 100644 vendor/github.com/Sirupsen/logrus/hooks/syslog/README.md + create mode 100644 vendor/github.com/Sirupsen/logrus/hooks/syslog/syslog.go + +diff --git a/create.go b/create.go +index 096e8e3..d0246ad 100644 +--- a/create.go ++++ b/create.go +@@ -1,9 +1,8 @@ + package main + + import ( +- "os" +- + "github.com/urfave/cli" ++ "os" + ) + + var createCommand = cli.Command{ +diff --git a/libcontainer/configs/config.go b/libcontainer/configs/config.go +index 49bc7a3..d6bc603 100644 +--- a/libcontainer/configs/config.go ++++ b/libcontainer/configs/config.go +@@ -4,12 +4,18 @@ import ( + "bytes" + "encoding/json" + "fmt" ++ "github.com/Sirupsen/logrus" ++ "github.com/opencontainers/runtime-spec/specs-go" + "os/exec" + "strings" + "time" ++) + +- "github.com/Sirupsen/logrus" +- "github.com/opencontainers/runtime-spec/specs-go" ++const ( ++ minHookTimeOut = 1 * time.Second ++ defaultHookTimeOut = 5 * time.Second ++ //the runc default timeout is 120s, so set the defaultWarnTime to 80% of the default timeout. ++ defaultWarnTime = 96 * time.Second + ) + + type Rlimit struct { +@@ -195,9 +201,9 @@ type Config struct { + // about the type of the Capabilities field. + // Refer to: https://github.com/opencontainers/runtime-spec/commit/37391fb + type CompatConfig struct { +- Config +- Cgroups *CompatCgroup `json:"cgroups"` +- Capabilities interface{} `json:"capabilities,omitempty" platform:"linux"` ++ Config ++ Cgroups *CompatCgroup `json:"cgroups"` ++ Capabilities interface{} `json:"capabilities,omitempty" platform:"linux"` + } + + type Hooks struct { +@@ -342,29 +348,52 @@ func (c Command) Run(s HookState) error { + Stdout: &stdout, + Stderr: &stderr, + } ++ startTime := time.Now() + if err := cmd.Start(); err != nil { + return err + } ++ if c.Timeout != nil && *c.Timeout < minHookTimeOut { ++ *c.Timeout = defaultHookTimeOut ++ } + errC := make(chan error, 1) ++ var ( ++ timerCh <-chan time.Time ++ warnTime = defaultWarnTime.Seconds() ++ ) + go func() { + err := cmd.Wait() + if err != nil { + err = fmt.Errorf("error running hook: %v, stdout: %s, stderr: %s", err, stdout.String(), stderr.String()) + } ++ elapsedTime := time.Since(startTime) ++ logrus.Infof("hook spends time %s, ContainerID: %s", elapsedTime, s.ID) ++ if c.Timeout != nil { ++ if elapsedTime.Seconds() >= (c.Timeout.Seconds() * 0.8) { ++ logrus.Warnf("elapsed %s, more than 80%% of the timeout %s, ContainerID: %s", elapsedTime, c.Timeout, s.ID) ++ } ++ } else { ++ if elapsedTime.Seconds() >= warnTime { ++ logrus.Warnf("elapsed %s, more than 80%% of the default timeout 120s, ContainerID: %s", elapsedTime, s.ID) ++ } ++ } + errC <- err + }() +- var timerCh <-chan time.Time + if c.Timeout != nil { + timer := time.NewTimer(*c.Timeout) + defer timer.Stop() + timerCh = timer.C ++ warnTime = float64(*c.Timeout) * 0.8 + } +- select { +- case err := <-errC: +- return err +- case <-timerCh: +- cmd.Process.Kill() +- cmd.Wait() +- return fmt.Errorf("hook ran past specified timeout of %.1fs", c.Timeout.Seconds()) ++ for { ++ select { ++ case err := <-errC: ++ return err ++ case <-timerCh: ++ cmd.Process.Kill() ++ cmd.Wait() ++ return fmt.Errorf("hook ran past specified timeout of %.1fs", c.Timeout.Seconds()) ++ case <-time.After(time.Duration(warnTime) * time.Second): ++ logrus.Warnf("hook ran more than 80%% of the default timeout, ContainerID: %s", s.ID) ++ } + } + } +diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go +index 502a274..ba5dcd6 100644 +--- a/libcontainer/container_linux.go ++++ b/libcontainer/container_linux.go +@@ -68,9 +68,9 @@ type State struct { + } + + // CompatState +-type CompatState struct{ +- State +- Config configs.CompatConfig `json:"config"` ++type CompatState struct { ++ State ++ Config configs.CompatConfig `json:"config"` + } + + // Container is a libcontainer container object. +@@ -345,13 +345,13 @@ func (c *linuxContainer) start(process *Process, isInit bool) error { + Root: c.config.Rootfs, + } + for i, hook := range c.config.Hooks.Poststart { +- logrus.Infof("run poststart hook %d:%s", i, hook.Info()) ++ logrus.Infof("run poststart hook %d:%s, ContainerID: %s", i, hook.Info(), s.ID) + if err := hook.Run(s); err != nil { + logrus.Errorf("running poststart hook(%d:%s) failed: %s", i, hook.Info(), err) + if err := parent.terminate(); err != nil { +- logrus.Warn(err) ++ logrus.Warnf("run poststart hook failed: %s, ContainerID: %s", err, s.ID) + } +- return newSystemErrorWithCausef(err, "running poststart hook %d:%s", i, hook.Info()) ++ return newSystemErrorWithCausef(err, "running poststart hook %d:%s, ContainerID: %s", i, hook.Info(), s.ID) + } + logrus.Infof("poststart hook %d:%s done", i, hook.Info()) + } +@@ -1319,9 +1319,9 @@ func (c *linuxContainer) criuNotifications(resp *criurpc.CriuResp, process *Proc + Root: c.config.Rootfs, + } + for i, hook := range c.config.Hooks.Prestart { +- logrus.Infof("run prestart hook: %d:%s", i, hook.Info()) ++ logrus.Infof("run prestart hook: %d:%s, ContainerID: %s", i, hook.Info(), s.ID) + if err := hook.Run(s); err != nil { +- return newSystemErrorWithCausef(err, "running prestart hook %d", i) ++ return newSystemErrorWithCausef(err, "running prestart hook %d:%s, ContainerID: %s", i, hook.Info(), s.ID) + } + logrus.Infof("prestart hook: %d:%s done", i, hook.Info()) + } +diff --git a/libcontainer/process_linux.go b/libcontainer/process_linux.go +index 70e93de..79b1c4e 100644 +--- a/libcontainer/process_linux.go ++++ b/libcontainer/process_linux.go +@@ -6,18 +6,17 @@ import ( + "encoding/json" + "errors" + "fmt" ++ "github.com/Sirupsen/logrus" ++ "github.com/opencontainers/runc/libcontainer/cgroups" ++ "github.com/opencontainers/runc/libcontainer/configs" ++ "github.com/opencontainers/runc/libcontainer/system" ++ "github.com/opencontainers/runc/libcontainer/utils" + "io" + "os" + "os/exec" + "path/filepath" + "strconv" + "syscall" +- +- "github.com/Sirupsen/logrus" +- "github.com/opencontainers/runc/libcontainer/cgroups" +- "github.com/opencontainers/runc/libcontainer/configs" +- "github.com/opencontainers/runc/libcontainer/system" +- "github.com/opencontainers/runc/libcontainer/utils" + ) + + type parentProcess interface { +@@ -309,9 +308,9 @@ func (p *initProcess) start() error { + Root: p.config.Config.Rootfs, + } + for i, hook := range p.config.Config.Hooks.Prestart { +- logrus.Infof("run prestart hook %d:%s", i, hook.Info()) ++ logrus.Infof("run prestart hook %d:%s, ContainerID: %s", i, hook.Info(), s.ID) + if err := hook.Run(s); err != nil { +- return newSystemErrorWithCausef(err, "running prestart hook %d:%s", i, hook.Info()) ++ return newSystemErrorWithCausef(err, "running prestart hook %d:%s, ContainerID: %s", i, hook.Info(), s.ID) + } + logrus.Infof("prestart hook %d:%s done", i, hook.Info()) + } +@@ -338,9 +337,9 @@ func (p *initProcess) start() error { + Root: p.config.Config.Rootfs, + } + for i, hook := range p.config.Config.Hooks.Prestart { +- logrus.Infof("run prestart hook %d:%s", i, hook.Info()) ++ logrus.Infof("run prestart hook %d:%s, ContainerID :%s", i, hook.Info(), s.ID) + if err := hook.Run(s); err != nil { +- return newSystemErrorWithCausef(err, "running prestart hook %d:%s", i, hook.Info()) ++ return newSystemErrorWithCausef(err, "running prestart hook %d:%s, ContainerID: %s", i, hook.Info(), s.ID) + } + logrus.Infof("prestart hook %d:%s done", i, hook.Info()) + } +diff --git a/libcontainer/state_linux.go b/libcontainer/state_linux.go +index b8d2a87..26e091b 100644 +--- a/libcontainer/state_linux.go ++++ b/libcontainer/state_linux.go +@@ -66,10 +66,10 @@ func runPoststopHooks(c *linuxContainer) error { + Root: c.config.Rootfs, + } + for i, hook := range c.config.Hooks.Poststop { +- logrus.Infof("run poststop hook %d:%s", i, hook.Info()) ++ logrus.Infof("run poststop hook %d:%s, ContainerID: %s", i, hook.Info(), s.ID) + if err := hook.Run(s); err != nil { + logrus.Errorf("running poststop hook %d: %s failed: %s", i, hook.Info(), err) +- return newSystemErrorWithCausef(err, "running poststop hook %d:%s", i, hook.Info()) ++ return newSystemErrorWithCausef(err, "running poststop hook %d:%s, ContainerID: %s", i, hook.Info(), s.ID) + } + logrus.Infof("poststop hook %d:%s done", i, hook.Info()) + } +diff --git a/main.go b/main.go +index 1cb8f4d..f15a4ac 100644 +--- a/main.go ++++ b/main.go +@@ -2,13 +2,14 @@ package main + + import ( + "fmt" +- "io" +- "os" +- "strings" +- + "github.com/Sirupsen/logrus" ++ "github.com/Sirupsen/logrus/hooks/syslog" + "github.com/opencontainers/runtime-spec/specs-go" + "github.com/urfave/cli" ++ "io" ++ "log/syslog" ++ "os" ++ "strings" + ) + + // version will be populated by the Makefile, read from +@@ -76,6 +77,10 @@ func main() { + Usage: "set the format used by logs ('text' (default), or 'json')", + }, + cli.StringFlag{ ++ Name: "log-level", ++ Usage: "Set the logging level [debug, info, warn, error, fatal, panic]", ++ }, ++ cli.StringFlag{ + Name: "root", + Value: "/run/runc", + Usage: "root directory for storage of container state (this should be located in tmpfs)", +@@ -110,15 +115,17 @@ func main() { + updateCommand, + } + app.Before = func(context *cli.Context) error { +- if context.GlobalBool("debug") { +- logrus.SetLevel(logrus.DebugLevel) +- } + if path := context.GlobalString("log"); path != "" { + f, err := os.OpenFile(path, os.O_CREATE|os.O_WRONLY|os.O_APPEND|os.O_SYNC, 0666) + if err != nil { + return err + } + logrus.SetOutput(f) ++ hook, serr := logrus_syslog.NewSyslogHook("", "", syslog.LOG_INFO|syslog.LOG_USER, "docker-runc") ++ if serr != nil { ++ fmt.Fprint(f, fmt.Sprintf("Leo: new syslog hook get %s", serr)) ++ } ++ logrus.AddHook(hook) + } + switch context.GlobalString("log-format") { + case "text": +@@ -128,6 +135,18 @@ func main() { + default: + return fmt.Errorf("unknown log-format %q", context.GlobalString("log-format")) + } ++ if logLevel := context.GlobalString("log-level"); logLevel != "" { ++ lvl, err := logrus.ParseLevel(logLevel) ++ if err != nil { ++ fmt.Fprintf(os.Stderr, "Unable to parse logging level: %s\n", logLevel) ++ os.Exit(1) ++ } ++ logrus.SetLevel(lvl) ++ } ++ ++ if context.GlobalBool("debug") { ++ logrus.SetLevel(logrus.DebugLevel) ++ } + return nil + } + // If the command returns an error, cli takes upon itself to print +diff --git a/script/runc-euleros.spec b/script/runc-euleros.spec +index c3db7c9..5318ec2 100644 +--- a/script/runc-euleros.spec ++++ b/script/runc-euleros.spec +@@ -2,7 +2,7 @@ + + Name: docker-runc + Version: 1.0.0.rc3 +-Release: 2%{?dist} ++Release: 3%{?dist} + Summary: runc is a CLI tool for spawning and running containers according to the OCF specification + + License: ASL 2.0 +diff --git a/vendor/github.com/Sirupsen/logrus/Checklist b/vendor/github.com/Sirupsen/logrus/Checklist +new file mode 100644 +index 0000000..7117b24 +--- /dev/null ++++ b/vendor/github.com/Sirupsen/logrus/Checklist +@@ -0,0 +1 @@ ++imported from runc v1.0.0-Release Candidate 2: Godeps/_workspace/src/github.com/Sirupsen/logrus/hooks +diff --git a/vendor/github.com/Sirupsen/logrus/hooks/airbrake/airbrake.go b/vendor/github.com/Sirupsen/logrus/hooks/airbrake/airbrake.go +new file mode 100644 +index 0000000..b0502c3 +--- /dev/null ++++ b/vendor/github.com/Sirupsen/logrus/hooks/airbrake/airbrake.go +@@ -0,0 +1,54 @@ ++package airbrake ++ ++import ( ++ "errors" ++ "fmt" ++ ++ "github.com/Sirupsen/logrus" ++ "github.com/tobi/airbrake-go" ++) ++ ++// AirbrakeHook to send exceptions to an exception-tracking service compatible ++// with the Airbrake API. ++type airbrakeHook struct { ++ APIKey string ++ Endpoint string ++ Environment string ++} ++ ++func NewHook(endpoint, apiKey, env string) *airbrakeHook { ++ return &airbrakeHook{ ++ APIKey: apiKey, ++ Endpoint: endpoint, ++ Environment: env, ++ } ++} ++ ++func (hook *airbrakeHook) Fire(entry *logrus.Entry) error { ++ airbrake.ApiKey = hook.APIKey ++ airbrake.Endpoint = hook.Endpoint ++ airbrake.Environment = hook.Environment ++ ++ var notifyErr error ++ err, ok := entry.Data["error"].(error) ++ if ok { ++ notifyErr = err ++ } else { ++ notifyErr = errors.New(entry.Message) ++ } ++ ++ airErr := airbrake.Notify(notifyErr) ++ if airErr != nil { ++ return fmt.Errorf("Failed to send error to Airbrake: %s", airErr) ++ } ++ ++ return nil ++} ++ ++func (hook *airbrakeHook) Levels() []logrus.Level { ++ return []logrus.Level{ ++ logrus.ErrorLevel, ++ logrus.FatalLevel, ++ logrus.PanicLevel, ++ } ++} +diff --git a/vendor/github.com/Sirupsen/logrus/hooks/bugsnag/bugsnag.go b/vendor/github.com/Sirupsen/logrus/hooks/bugsnag/bugsnag.go +new file mode 100644 +index 0000000..d20a0f5 +--- /dev/null ++++ b/vendor/github.com/Sirupsen/logrus/hooks/bugsnag/bugsnag.go +@@ -0,0 +1,68 @@ ++package logrus_bugsnag ++ ++import ( ++ "errors" ++ ++ "github.com/Sirupsen/logrus" ++ "github.com/bugsnag/bugsnag-go" ++) ++ ++type bugsnagHook struct{} ++ ++// ErrBugsnagUnconfigured is returned if NewBugsnagHook is called before ++// bugsnag.Configure. Bugsnag must be configured before the hook. ++var ErrBugsnagUnconfigured = errors.New("bugsnag must be configured before installing this logrus hook") ++ ++// ErrBugsnagSendFailed indicates that the hook failed to submit an error to ++// bugsnag. The error was successfully generated, but `bugsnag.Notify()` ++// failed. ++type ErrBugsnagSendFailed struct { ++ err error ++} ++ ++func (e ErrBugsnagSendFailed) Error() string { ++ return "failed to send error to Bugsnag: " + e.err.Error() ++} ++ ++// NewBugsnagHook initializes a logrus hook which sends exceptions to an ++// exception-tracking service compatible with the Bugsnag API. Before using ++// this hook, you must call bugsnag.Configure(). The returned object should be ++// registered with a log via `AddHook()` ++// ++// Entries that trigger an Error, Fatal or Panic should now include an "error" ++// field to send to Bugsnag. ++func NewBugsnagHook() (*bugsnagHook, error) { ++ if bugsnag.Config.APIKey == "" { ++ return nil, ErrBugsnagUnconfigured ++ } ++ return &bugsnagHook{}, nil ++} ++ ++// Fire forwards an error to Bugsnag. Given a logrus.Entry, it extracts the ++// "error" field (or the Message if the error isn't present) and sends it off. ++func (hook *bugsnagHook) Fire(entry *logrus.Entry) error { ++ var notifyErr error ++ err, ok := entry.Data["error"].(error) ++ if ok { ++ notifyErr = err ++ } else { ++ notifyErr = errors.New(entry.Message) ++ } ++ ++ bugsnagErr := bugsnag.Notify(notifyErr) ++ if bugsnagErr != nil { ++ return ErrBugsnagSendFailed{bugsnagErr} ++ } ++ ++ return nil ++} ++ ++// Levels enumerates the log levels on which the error should be forwarded to ++// bugsnag: everything at or above the "Error" level. ++func (hook *bugsnagHook) Levels() []logrus.Level { ++ return []logrus.Level{ ++ logrus.ErrorLevel, ++ logrus.FatalLevel, ++ logrus.PanicLevel, ++ } ++} +diff --git a/vendor/github.com/Sirupsen/logrus/hooks/papertrail/README.md b/vendor/github.com/Sirupsen/logrus/hooks/papertrail/README.md +new file mode 100644 +index 0000000..ae61e92 +--- /dev/null ++++ b/vendor/github.com/Sirupsen/logrus/hooks/papertrail/README.md +@@ -0,0 +1,28 @@ ++# Papertrail Hook for Logrus :walrus: ++ ++[Papertrail](https://papertrailapp.com) provides hosted log management. Once stored in Papertrail, you can [group](http://help.papertrailapp.com/kb/how-it-works/groups/) your logs on various dimensions, [search](http://help.papertrailapp.com/kb/how-it-works/search-syntax) them, and trigger [alerts](http://help.papertrailapp.com/kb/how-it-works/alerts). ++ ++In most deployments, you'll want to send logs to Papertrail via their [remote_syslog](http://help.papertrailapp.com/kb/configuration/configuring-centralized-logging-from-text-log-files-in-unix/) daemon, which requires no application-specific configuration. This hook is intended for relatively low-volume logging, likely in managed cloud hosting deployments where installing `remote_syslog` is not possible. ++ ++## Usage ++ ++You can find your Papertrail UDP port on your [Papertrail account page](https://papertrailapp.com/account/destinations). Substitute it below for `YOUR_PAPERTRAIL_UDP_PORT`. ++ ++For `YOUR_APP_NAME`, substitute a short string that will readily identify your application or service in the logs. ++ ++```go ++import ( ++ "log/syslog" ++ "github.com/Sirupsen/logrus" ++ "github.com/Sirupsen/logrus/hooks/papertrail" ++) ++ ++func main() { ++ log := logrus.New() ++ hook, err := logrus_papertrail.NewPapertrailHook("logs.papertrailapp.com", YOUR_PAPERTRAIL_UDP_PORT, YOUR_APP_NAME) ++ ++ if err == nil { ++ log.Hooks.Add(hook) ++ } ++} ++``` +diff --git a/vendor/github.com/Sirupsen/logrus/hooks/papertrail/papertrail.go b/vendor/github.com/Sirupsen/logrus/hooks/papertrail/papertrail.go +new file mode 100644 +index 0000000..c0f10c1 +--- /dev/null ++++ b/vendor/github.com/Sirupsen/logrus/hooks/papertrail/papertrail.go +@@ -0,0 +1,55 @@ ++package logrus_papertrail ++ ++import ( ++ "fmt" ++ "net" ++ "os" ++ "time" ++ ++ "github.com/Sirupsen/logrus" ++) ++ ++const ( ++ format = "Jan 2 15:04:05" ++) ++ ++// PapertrailHook to send logs to a logging service compatible with the Papertrail API. ++type PapertrailHook struct { ++ Host string ++ Port int ++ AppName string ++ UDPConn net.Conn ++} ++ ++// NewPapertrailHook creates a hook to be added to an instance of logger. ++func NewPapertrailHook(host string, port int, appName string) (*PapertrailHook, error) { ++ conn, err := net.Dial("udp", fmt.Sprintf("%s:%d", host, port)) ++ return &PapertrailHook{host, port, appName, conn}, err ++} ++ ++// Fire is called when a log event is fired. ++func (hook *PapertrailHook) Fire(entry *logrus.Entry) error { ++ date := time.Now().Format(format) ++ msg, _ := entry.String() ++ payload := fmt.Sprintf("<22> %s %s: %s", date, hook.AppName, msg) ++ ++ bytesWritten, err := hook.UDPConn.Write([]byte(payload)) ++ if err != nil { ++ fmt.Fprintf(os.Stderr, "Unable to send log line to Papertrail via UDP. Wrote %d bytes before error: %v", bytesWritten, err) ++ return err ++ } ++ ++ return nil ++} ++ ++// Levels returns the available logging levels. ++func (hook *PapertrailHook) Levels() []logrus.Level { ++ return []logrus.Level{ ++ logrus.PanicLevel, ++ logrus.FatalLevel, ++ logrus.ErrorLevel, ++ logrus.WarnLevel, ++ logrus.InfoLevel, ++ logrus.DebugLevel, ++ } ++} +diff --git a/vendor/github.com/Sirupsen/logrus/hooks/sentry/README.md b/vendor/github.com/Sirupsen/logrus/hooks/sentry/README.md +new file mode 100644 +index 0000000..19e58bb +--- /dev/null ++++ b/vendor/github.com/Sirupsen/logrus/hooks/sentry/README.md +@@ -0,0 +1,61 @@ ++# Sentry Hook for Logrus :walrus: ++ ++[Sentry](https://getsentry.com) provides both self-hosted and hosted ++solutions for exception tracking. ++Both client and server are ++[open source](https://github.com/getsentry/sentry). ++ ++## Usage ++ ++Every sentry application defined on the server gets a different ++[DSN](https://www.getsentry.com/docs/). In the example below replace ++`YOUR_DSN` with the one created for your application. ++ ++```go ++import ( ++ "github.com/Sirupsen/logrus" ++ "github.com/Sirupsen/logrus/hooks/sentry" ++) ++ ++func main() { ++ log := logrus.New() ++ hook, err := logrus_sentry.NewSentryHook(YOUR_DSN, []logrus.Level{ ++ logrus.PanicLevel, ++ logrus.FatalLevel, ++ logrus.ErrorLevel, ++ }) ++ ++ if err == nil { ++ log.Hooks.Add(hook) ++ } ++} ++``` ++ ++## Special fields ++ ++Some logrus fields have a special meaning in this hook, ++these are server_name and logger. ++When logs are sent to sentry these fields are treated differently. ++- server_name (also known as hostname) is the name of the server which ++is logging the event (hostname.example.com) ++- logger is the part of the application which is logging the event. ++In go this usually means setting it to the name of the package. ++ ++## Timeout ++ ++`Timeout` is the time the sentry hook will wait for a response ++from the sentry server. ++ ++If this time elapses with no response from ++the server an error will be returned. ++ ++If `Timeout` is set to 0 the SentryHook will not wait for a reply ++and will assume a correct delivery. ++ ++The SentryHook has a default timeout of `100 milliseconds` when created ++with a call to `NewSentryHook`. This can be changed by assigning a value to the `Timeout` field: ++ ++```go ++hook, _ := logrus_sentry.NewSentryHook(...) ++hook.Timeout = 20*time.Second ++``` +diff --git a/vendor/github.com/Sirupsen/logrus/hooks/sentry/sentry.go b/vendor/github.com/Sirupsen/logrus/hooks/sentry/sentry.go +new file mode 100644 +index 0000000..379f281 +--- /dev/null ++++ b/vendor/github.com/Sirupsen/logrus/hooks/sentry/sentry.go +@@ -0,0 +1,100 @@ ++package logrus_sentry ++ ++import ( ++ "fmt" ++ "time" ++ ++ "github.com/Sirupsen/logrus" ++ "github.com/getsentry/raven-go" ++) ++ ++var ( ++ severityMap = map[logrus.Level]raven.Severity{ ++ logrus.DebugLevel: raven.DEBUG, ++ logrus.InfoLevel: raven.INFO, ++ logrus.WarnLevel: raven.WARNING, ++ logrus.ErrorLevel: raven.ERROR, ++ logrus.FatalLevel: raven.FATAL, ++ logrus.PanicLevel: raven.FATAL, ++ } ++) ++ ++func getAndDel(d logrus.Fields, key string) (string, bool) { ++ var ( ++ ok bool ++ v interface{} ++ val string ++ ) ++ if v, ok = d[key]; !ok { ++ return "", false ++ } ++ ++ if val, ok = v.(string); !ok { ++ return "", false ++ } ++ delete(d, key) ++ return val, true ++} ++ ++// SentryHook delivers logs to a sentry server. ++type SentryHook struct { ++ // Timeout sets the time to wait for a delivery error from the sentry server. ++ // If this is set to zero the server will not wait for any response and will ++ // consider the message correctly sent ++ Timeout time.Duration ++ ++ client *raven.Client ++ levels []logrus.Level ++} ++ ++// NewSentryHook creates a hook to be added to an instance of logger ++// and initializes the raven client. ++// This method sets the timeout to 100 milliseconds. ++func NewSentryHook(DSN string, levels []logrus.Level) (*SentryHook, error) { ++ client, err := raven.NewClient(DSN, nil) ++ if err != nil { ++ return nil, err ++ } ++ return &SentryHook{100 * time.Millisecond, client, levels}, nil ++} ++ ++// Called when an event should be sent to sentry ++// Special fields that sentry uses to give more information to the server ++// are extracted from entry.Data (if they are found) ++// These fields are: logger and server_name ++func (hook *SentryHook) Fire(entry *logrus.Entry) error { ++ packet := &raven.Packet{ ++ Message: entry.Message, ++ Timestamp: raven.Timestamp(entry.Time), ++ Level: severityMap[entry.Level], ++ Platform: "go", ++ } ++ ++ d := entry.Data ++ ++ if logger, ok := getAndDel(d, "logger"); ok { ++ packet.Logger = logger ++ } ++ if serverName, ok := getAndDel(d, "server_name"); ok { ++ packet.ServerName = serverName ++ } ++ packet.Extra = map[string]interface{}(d) ++ ++ _, errCh := hook.client.Capture(packet, nil) ++ timeout := hook.Timeout ++ if timeout != 0 { ++ timeoutCh := time.After(timeout) ++ select { ++ case err := <-errCh: ++ return err ++ case <-timeoutCh: ++ return fmt.Errorf("no response from sentry server in %s", timeout) ++ } ++ } ++ return nil ++} ++ ++// Levels returns the available logging levels. ++func (hook *SentryHook) Levels() []logrus.Level { ++ return hook.levels ++} +diff --git a/vendor/github.com/Sirupsen/logrus/hooks/syslog/README.md b/vendor/github.com/Sirupsen/logrus/hooks/syslog/README.md +new file mode 100644 +index 0000000..4dbb8e7 +--- /dev/null ++++ b/vendor/github.com/Sirupsen/logrus/hooks/syslog/README.md +@@ -0,0 +1,20 @@ ++# Syslog Hooks for Logrus :walrus: ++ ++## Usage ++ ++```go ++import ( ++ "log/syslog" ++ "github.com/Sirupsen/logrus" ++ logrus_syslog "github.com/Sirupsen/logrus/hooks/syslog" ++) ++ ++func main() { ++ log := logrus.New() ++ hook, err := logrus_syslog.NewSyslogHook("udp", "localhost:514", syslog.LOG_INFO, "") ++ ++ if err == nil { ++ log.Hooks.Add(hook) ++ } ++} ++``` +diff --git a/vendor/github.com/Sirupsen/logrus/hooks/syslog/syslog.go b/vendor/github.com/Sirupsen/logrus/hooks/syslog/syslog.go +new file mode 100644 +index 0000000..b6fa374 +--- /dev/null ++++ b/vendor/github.com/Sirupsen/logrus/hooks/syslog/syslog.go +@@ -0,0 +1,59 @@ ++package logrus_syslog ++ ++import ( ++ "fmt" ++ "github.com/Sirupsen/logrus" ++ "log/syslog" ++ "os" ++) ++ ++// SyslogHook to send logs via syslog. ++type SyslogHook struct { ++ Writer *syslog.Writer ++ SyslogNetwork string ++ SyslogRaddr string ++} ++ ++// Creates a hook to be added to an instance of logger. This is called with ++// `hook, err := NewSyslogHook("udp", "localhost:514", syslog.LOG_DEBUG, "")` ++// `if err == nil { log.Hooks.Add(hook) }` ++func NewSyslogHook(network, raddr string, priority syslog.Priority, tag string) (*SyslogHook, error) { ++ w, err := syslog.Dial(network, raddr, priority, tag) ++ return &SyslogHook{w, network, raddr}, err ++} ++ ++func (hook *SyslogHook) Fire(entry *logrus.Entry) error { ++ line, err := entry.String() ++ if err != nil { ++ fmt.Fprintf(os.Stderr, "Unable to read entry, %v", err) ++ return err ++ } ++ ++ switch entry.Level { ++ case logrus.PanicLevel: ++ return hook.Writer.Crit(line) ++ case logrus.FatalLevel: ++ return hook.Writer.Crit(line) ++ case logrus.ErrorLevel: ++ return hook.Writer.Err(line) ++ case logrus.WarnLevel: ++ return hook.Writer.Warning(line) ++ case logrus.InfoLevel: ++ return hook.Writer.Info(line) ++ case logrus.DebugLevel: ++ return hook.Writer.Debug(line) ++ default: ++ return nil ++ } ++} ++ ++func (hook *SyslogHook) Levels() []logrus.Level { ++ return []logrus.Level{ ++ logrus.PanicLevel, ++ logrus.FatalLevel, ++ logrus.ErrorLevel, ++ logrus.WarnLevel, ++ logrus.InfoLevel, ++ logrus.DebugLevel, ++ } ++} +-- +2.7.4.3 + diff --git a/patch/0061-runc-17-change-golang-build-version-to-make-o.patch b/patch/0061-runc-17-change-golang-build-version-to-make-o.patch new file mode 100644 index 0000000..b0fc5f4 --- /dev/null +++ b/patch/0061-runc-17-change-golang-build-version-to-make-o.patch @@ -0,0 +1,39 @@ +From 6e457e14dcf0960926109c2f89766e893f79b5da Mon Sep 17 00:00:00 2001 +From: caihaomin +Date: Wed, 24 Oct 2018 14:56:01 +0800 +Subject: [PATCH 61/94] runc-17: change golang build version to make + obs happy + +reason:change golang build version to make obs happy + +Change-Id: Ie4b210056b34611bfb37aa6ea8510540f2c79305 +Signed-off-by: caihaomin +--- + script/runc-euleros.spec | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/script/runc-euleros.spec b/script/runc-euleros.spec +index 5318ec2..048ea86 100644 +--- a/script/runc-euleros.spec ++++ b/script/runc-euleros.spec +@@ -2,7 +2,7 @@ + + Name: docker-runc + Version: 1.0.0.rc3 +-Release: 3%{?dist} ++Release: 4%{?dist} + Summary: runc is a CLI tool for spawning and running containers according to the OCF specification + + License: ASL 2.0 +@@ -12,7 +12,7 @@ URL: https://www.opencontainers.org/ + Vendor: OCI + Packager: OCI + +-BuildRequires: golang == 1.8.3 ++BuildRequires: golang >= 1.8.3 + BuildRequires: glibc-static + BuildRequires: make + BuildRequires: libseccomp-devel +-- +2.7.4.3 + diff --git a/patch/0062-runc-Check-the-hook-timeout-in-case-overflow.patch b/patch/0062-runc-Check-the-hook-timeout-in-case-overflow.patch new file mode 100644 index 0000000..805c000 --- /dev/null +++ b/patch/0062-runc-Check-the-hook-timeout-in-case-overflow.patch @@ -0,0 +1,47 @@ +From ccd2660d85f36695032ed075f8f669ccad17bfc3 Mon Sep 17 00:00:00 2001 +From: panwenxiang +Date: Tue, 23 Oct 2018 16:43:20 +0800 +Subject: [PATCH 62/94] runc: Check the hook timeout in case overflow + +reason:the hook timeout is meaningless when more than 120s + +Change-Id: Ibabf059bd9ba5e68b10189ae4e813d47dcec7ec5 +--- + libcontainer/configs/config.go | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/libcontainer/configs/config.go b/libcontainer/configs/config.go +index d6bc603..9049924 100644 +--- a/libcontainer/configs/config.go ++++ b/libcontainer/configs/config.go +@@ -14,6 +14,7 @@ import ( + const ( + minHookTimeOut = 1 * time.Second + defaultHookTimeOut = 5 * time.Second ++ maxHookTimeOut = 120 * time.Second + //the runc default timeout is 120s, so set the defaultWarnTime to 80% of the default timeout. + defaultWarnTime = 96 * time.Second + ) +@@ -355,6 +356,10 @@ func (c Command) Run(s HookState) error { + if c.Timeout != nil && *c.Timeout < minHookTimeOut { + *c.Timeout = defaultHookTimeOut + } ++ if c.Timeout != nil && *c.Timeout > maxHookTimeOut { ++ logrus.Warnf("hook timeout: %s is too long, ContainerID: %s", *c.Timeout, s.ID) ++ *c.Timeout = maxHookTimeOut ++ } + errC := make(chan error, 1) + var ( + timerCh <-chan time.Time +@@ -382,7 +387,7 @@ func (c Command) Run(s HookState) error { + timer := time.NewTimer(*c.Timeout) + defer timer.Stop() + timerCh = timer.C +- warnTime = float64(*c.Timeout) * 0.8 ++ warnTime = (*c.Timeout).Seconds() * 0.8 + } + for { + select { +-- +2.7.4.3 + diff --git a/patch/0063-docker-close-openchan-immediately-to-avoid-er.patch b/patch/0063-docker-close-openchan-immediately-to-avoid-er.patch new file mode 100644 index 0000000..3a12ead --- /dev/null +++ b/patch/0063-docker-close-openchan-immediately-to-avoid-er.patch @@ -0,0 +1,58 @@ +From 256b247e9fa9844c8e0760679411427d43b661c9 Mon Sep 17 00:00:00 2001 +From: wangfengtu +Date: Wed, 5 Sep 2018 15:16:28 +0800 +Subject: [PATCH 63/94] docker: close openchan immediately to avoid + error + +reason: close openchan immediately to avoid error + +Change-Id: I20664570518ea424088a4eb6a5aac3d38ac08449 +Signed-off-by: wangfengtu +--- + libcontainer/container_linux.go | 13 +++++++++---- + 1 file changed, 9 insertions(+), 4 deletions(-) + +diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go +index ba5dcd6..61ffb76 100644 +--- a/libcontainer/container_linux.go ++++ b/libcontainer/container_linux.go +@@ -245,8 +245,7 @@ func (c *linuxContainer) exec() error { + select { + case <-awaitProcessExit(c.initProcess.pid(), fifoOpen): + return errors.New("container process is already dead") +- case result := <-awaitFifoOpen(path): +- close(fifoOpen) ++ case result := <-awaitFifoOpen(path, fifoOpen): + if result.err != nil { + return result.err + } +@@ -283,7 +282,12 @@ func awaitProcessExit(pid int, exit <-chan struct{}) <-chan struct{} { + case <-time.After(time.Millisecond * 100): + stat, err := system.GetProcessState(pid) + if err != nil || stat == system.Zombie { +- close(isDead) ++ select { ++ case <-exit: ++ return ++ default: ++ close(isDead) ++ } + return + } + } +@@ -292,10 +296,11 @@ func awaitProcessExit(pid int, exit <-chan struct{}) <-chan struct{} { + return isDead + } + +-func awaitFifoOpen(path string) <-chan openResult { ++func awaitFifoOpen(path string, fifoOpen chan struct{}) <-chan openResult { + fifoOpened := make(chan openResult) + go func() { + f, err := os.OpenFile(path, os.O_RDONLY, 0) ++ close(fifoOpen) + if err != nil { + fifoOpened <- openResult{err: newSystemErrorWithCause(err, "open exec fifo for reading")} + return +-- +2.7.4.3 + diff --git a/patch/0064-runc-bump-to-v1.0.0.rc3.4-after-normalization.patch b/patch/0064-runc-bump-to-v1.0.0.rc3.4-after-normalization.patch new file mode 100644 index 0000000..3b3f49f --- /dev/null +++ b/patch/0064-runc-bump-to-v1.0.0.rc3.4-after-normalization.patch @@ -0,0 +1,30 @@ +From f7c4eae61c9d532ff9ea77aba147976d05235dba Mon Sep 17 00:00:00 2001 +From: lujingxiao +Date: Tue, 30 Oct 2018 15:24:47 +0800 +Subject: [PATCH 64/94] runc: bump to v1.0.0.rc3.4 after normalization + +reason:bump version to v1.0.0.rc3.4 after making runc and +runc-17 into one project + +Change-Id: I9045945c81f9b21aff53659dac98b4461dea4199 +Signed-off-by: lujingxiao +--- + script/runc-euleros.spec | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/script/runc-euleros.spec b/script/runc-euleros.spec +index 048ea86..0ba07be 100644 +--- a/script/runc-euleros.spec ++++ b/script/runc-euleros.spec +@@ -2,7 +2,7 @@ + + Name: docker-runc + Version: 1.0.0.rc3 +-Release: 4%{?dist} ++Release: 5%{?dist} + Summary: runc is a CLI tool for spawning and running containers according to the OCF specification + + License: ASL 2.0 +-- +2.7.4.3 + diff --git a/patch/0065-runc-support-namespaced-kernel-params-can-be-.patch b/patch/0065-runc-support-namespaced-kernel-params-can-be-.patch new file mode 100644 index 0000000..b964176 --- /dev/null +++ b/patch/0065-runc-support-namespaced-kernel-params-can-be-.patch @@ -0,0 +1,94 @@ +From c5f152a9dc851e0297f63a73c3e59890da135352 Mon Sep 17 00:00:00 2001 +From: zhangsong34 +Date: Fri, 19 Oct 2018 10:53:33 +0800 +Subject: [PATCH 65/94] runc: support namespaced kernel params can be + changed in system container + +reason:support namespaced kernel files can be written in container, +when docker run a system container specify '--ns-change-opt' param, +net or ipc namespaced kernel params can be changed in this container. + +Conflicts: + libcontainer/rootfs_linux.go + script/runc-euleros.spec + +Change-Id: I051b274117abd9745a27577e14a23c906ff7cca3 +Signed-off-by: jingrui +--- + libcontainer/rootfs_linux.go | 26 ++++++++++++++++++++++++++ + libcontainer/standard_init_linux.go | 8 ++++++++ + 2 files changed, 34 insertions(+) + +diff --git a/libcontainer/rootfs_linux.go b/libcontainer/rootfs_linux.go +index 7cf5edd..38bdd1b 100644 +--- a/libcontainer/rootfs_linux.go ++++ b/libcontainer/rootfs_linux.go +@@ -160,6 +160,9 @@ func mountToRootfs(m *configs.Mount, rootfs, mountLabel string) error { + + switch m.Device { + case "proc", "sysfs": ++ if strings.HasPrefix(m.Destination, "/proc/sys/") { ++ return nil ++ } + if err := os.MkdirAll(dest, 0755); err != nil { + return err + } +@@ -729,6 +732,29 @@ func readonlyPath(path string) error { + return syscall.Mount(path, path, "", syscall.MS_BIND|syscall.MS_REMOUNT|syscall.MS_RDONLY|syscall.MS_REC, "") + } + ++// remountReadWrite will bind over the top of an existing path and ensure that it is read-write. ++func remountReadWrite(path string) error { ++ for i := 0; i < 5; i++ { ++ if err := syscall.Mount("", path, "", syscall.MS_REMOUNT, ""); err != nil && !os.IsNotExist(err) { ++ switch err { ++ case syscall.EINVAL: ++ // Probably not a mountpoint, use bind-mount ++ if err := syscall.Mount(path, path, "", syscall.MS_BIND, ""); err != nil { ++ return err ++ } ++ return syscall.Mount(path, path, "", syscall.MS_BIND|syscall.MS_REMOUNT|syscall.MS_REC|defaultMountFlags, "") ++ case syscall.EBUSY: ++ time.Sleep(100 * time.Millisecond) ++ continue ++ default: ++ return err ++ } ++ } ++ return nil ++ } ++ return fmt.Errorf("unable to mount %s as readwrite max retries reached", path) ++} ++ + // remountReadonly will remount an existing mount point and ensure that it is read-only. + func remountReadonly(m *configs.Mount) error { + var ( +diff --git a/libcontainer/standard_init_linux.go b/libcontainer/standard_init_linux.go +index 484ba42..18506af 100644 +--- a/libcontainer/standard_init_linux.go ++++ b/libcontainer/standard_init_linux.go +@@ -6,6 +6,7 @@ import ( + "fmt" + "os" + "os/exec" ++ "strings" + "syscall" + "time" + +@@ -117,6 +118,13 @@ func (l *linuxStandardInit) Init() error { + return err + } + } ++ for _, m := range l.config.Config.Mounts { ++ if m.Flags&syscall.MS_RDONLY == 0 && m.Device == "proc" && strings.HasPrefix(m.Destination, "/proc/sys/") { ++ if err := remountReadWrite(m.Destination); err != nil { ++ return err ++ } ++ } ++ } + for _, path := range l.config.Config.MaskPaths { + if err := maskPath(path); err != nil { + return err +-- +2.7.4.3 + diff --git a/patch/0066-runc-bump-to-v1.0.0.rc3.6.patch b/patch/0066-runc-bump-to-v1.0.0.rc3.6.patch new file mode 100644 index 0000000..c94e0e3 --- /dev/null +++ b/patch/0066-runc-bump-to-v1.0.0.rc3.6.patch @@ -0,0 +1,29 @@ +From c8e1e988fa6509070411c7dbab50edb40092aaf9 Mon Sep 17 00:00:00 2001 +From: jingrui +Date: Sat, 23 Feb 2019 14:13:49 +0800 +Subject: [PATCH 66/94] runc: bump to v1.0.0.rc3.6 + +reason:bump version to v1.0.0.rc3.6 + +Change-Id: I79890c41c7934f96ee6e1d676450d7832cc90f73 +Signed-off-by: jingrui +--- + script/runc-euleros.spec | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/script/runc-euleros.spec b/script/runc-euleros.spec +index 0ba07be..08fceee 100644 +--- a/script/runc-euleros.spec ++++ b/script/runc-euleros.spec +@@ -2,7 +2,7 @@ + + Name: docker-runc + Version: 1.0.0.rc3 +-Release: 5%{?dist} ++Release: 6%{?dist} + Summary: runc is a CLI tool for spawning and running containers according to the OCF specification + + License: ASL 2.0 +-- +2.7.4.3 + diff --git a/patch/0067-runc-make-the-runc-log-more-useful.patch b/patch/0067-runc-make-the-runc-log-more-useful.patch new file mode 100644 index 0000000..1705ecb --- /dev/null +++ b/patch/0067-runc-make-the-runc-log-more-useful.patch @@ -0,0 +1,137 @@ +From 6bc094ef27ebb55f22c5a1b63ab40a66bf73cc35 Mon Sep 17 00:00:00 2001 +From: panwenxiang +Date: Sat, 3 Nov 2018 12:42:49 +0800 +Subject: [PATCH 67/94] runc: make the runc log more useful. + +reason:changed some log infomation. + +Change-Id: Ib6cda4b8a0ef3a441c45f6c435fe11430f8eada8 +Signed-off-by: panwenxiang +--- + libcontainer/configs/config.go | 13 +++++++++---- + libcontainer/container_linux.go | 1 - + libcontainer/process_linux.go | 4 +--- + libcontainer/state_linux.go | 1 - + main.go | 2 +- + script/runc-euleros.spec | 2 +- + 6 files changed, 12 insertions(+), 11 deletions(-) + +diff --git a/libcontainer/configs/config.go b/libcontainer/configs/config.go +index 9049924..f8f9d05 100644 +--- a/libcontainer/configs/config.go ++++ b/libcontainer/configs/config.go +@@ -12,7 +12,7 @@ import ( + ) + + const ( +- minHookTimeOut = 1 * time.Second ++ minHookTimeOut = 0 + defaultHookTimeOut = 5 * time.Second + maxHookTimeOut = 120 * time.Second + //the runc default timeout is 120s, so set the defaultWarnTime to 80% of the default timeout. +@@ -353,11 +353,12 @@ func (c Command) Run(s HookState) error { + if err := cmd.Start(); err != nil { + return err + } +- if c.Timeout != nil && *c.Timeout < minHookTimeOut { ++ if c.Timeout != nil && *c.Timeout <= minHookTimeOut { + *c.Timeout = defaultHookTimeOut ++ logrus.Warnf("hook timeout should not be negative or zero, set hook timeout as 5s") + } + if c.Timeout != nil && *c.Timeout > maxHookTimeOut { +- logrus.Warnf("hook timeout: %s is too long, ContainerID: %s", *c.Timeout, s.ID) ++ logrus.Warnf("hook timeout: %s is too long, use 120s as timeout. ContainerID: %s", *c.Timeout, s.ID) + *c.Timeout = maxHookTimeOut + } + errC := make(chan error, 1) +@@ -398,7 +399,11 @@ func (c Command) Run(s HookState) error { + cmd.Wait() + return fmt.Errorf("hook ran past specified timeout of %.1fs", c.Timeout.Seconds()) + case <-time.After(time.Duration(warnTime) * time.Second): +- logrus.Warnf("hook ran more than 80%% of the default timeout, ContainerID: %s", s.ID) ++ if c.Timeout != nil { ++ logrus.Warnf("hook ran more than 80%% of the timeout %s, ContainerID: %s", *c.Timeout, s.ID) ++ } else { ++ logrus.Warnf("hook ran more than 80%% of the default timeout 120s, ContainerID: %s", s.ID) ++ } + } + } + } +diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go +index 61ffb76..8e0ad12 100644 +--- a/libcontainer/container_linux.go ++++ b/libcontainer/container_linux.go +@@ -358,7 +358,6 @@ func (c *linuxContainer) start(process *Process, isInit bool) error { + } + return newSystemErrorWithCausef(err, "running poststart hook %d:%s, ContainerID: %s", i, hook.Info(), s.ID) + } +- logrus.Infof("poststart hook %d:%s done", i, hook.Info()) + } + } + } else { +diff --git a/libcontainer/process_linux.go b/libcontainer/process_linux.go +index 79b1c4e..4a7321c 100644 +--- a/libcontainer/process_linux.go ++++ b/libcontainer/process_linux.go +@@ -312,7 +312,6 @@ func (p *initProcess) start() error { + if err := hook.Run(s); err != nil { + return newSystemErrorWithCausef(err, "running prestart hook %d:%s, ContainerID: %s", i, hook.Info(), s.ID) + } +- logrus.Infof("prestart hook %d:%s done", i, hook.Info()) + } + } + } +@@ -337,11 +336,10 @@ func (p *initProcess) start() error { + Root: p.config.Config.Rootfs, + } + for i, hook := range p.config.Config.Hooks.Prestart { +- logrus.Infof("run prestart hook %d:%s, ContainerID :%s", i, hook.Info(), s.ID) ++ logrus.Infof("run prestart hook %d:%s, ContainerID: %s", i, hook.Info(), s.ID) + if err := hook.Run(s); err != nil { + return newSystemErrorWithCausef(err, "running prestart hook %d:%s, ContainerID: %s", i, hook.Info(), s.ID) + } +- logrus.Infof("prestart hook %d:%s done", i, hook.Info()) + } + } + // Sync with child. +diff --git a/libcontainer/state_linux.go b/libcontainer/state_linux.go +index 26e091b..6fa62c0 100644 +--- a/libcontainer/state_linux.go ++++ b/libcontainer/state_linux.go +@@ -71,7 +71,6 @@ func runPoststopHooks(c *linuxContainer) error { + logrus.Errorf("running poststop hook %d: %s failed: %s", i, hook.Info(), err) + return newSystemErrorWithCausef(err, "running poststop hook %d:%s, ContainerID: %s", i, hook.Info(), s.ID) + } +- logrus.Infof("poststop hook %d:%s done", i, hook.Info()) + } + } + return nil +diff --git a/main.go b/main.go +index f15a4ac..e55ff82 100644 +--- a/main.go ++++ b/main.go +@@ -78,7 +78,7 @@ func main() { + }, + cli.StringFlag{ + Name: "log-level", +- Usage: "Set the logging level [debug, info, warn, error, fatal, panic]", ++ Usage: "set the logging level [debug, info, warn, error, fatal, panic]", + }, + cli.StringFlag{ + Name: "root", +diff --git a/script/runc-euleros.spec b/script/runc-euleros.spec +index 08fceee..e829cb9 100644 +--- a/script/runc-euleros.spec ++++ b/script/runc-euleros.spec +@@ -2,7 +2,7 @@ + + Name: docker-runc + Version: 1.0.0.rc3 +-Release: 6%{?dist} ++Release: 7%{?dist} + Summary: runc is a CLI tool for spawning and running containers according to the OCF specification + + License: ASL 2.0 +-- +2.7.4.3 + diff --git a/patch/0068-runc-reduced-the-same-log-when-the-hook-exect.patch b/patch/0068-runc-reduced-the-same-log-when-the-hook-exect.patch new file mode 100644 index 0000000..a3b1d4b --- /dev/null +++ b/patch/0068-runc-reduced-the-same-log-when-the-hook-exect.patch @@ -0,0 +1,52 @@ +From 940d7088701fbfe6c2d636251490a1d28f90dbdc Mon Sep 17 00:00:00 2001 +From: panwenxiang +Date: Thu, 8 Nov 2018 10:19:23 +0800 +Subject: [PATCH 68/94] runc: reduced the same log when the hook + exected long time. + +reason:runc would print a lot of same logs when the hook executed long time + +Change-Id: I7d0b07cca68590c560580967f8d70143764f53d9 +Signed-off-by: panwenxiang +--- + libcontainer/configs/config.go | 3 ++- + script/runc-euleros.spec | 2 +- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/libcontainer/configs/config.go b/libcontainer/configs/config.go +index f8f9d05..78a7d1d 100644 +--- a/libcontainer/configs/config.go ++++ b/libcontainer/configs/config.go +@@ -390,6 +390,7 @@ func (c Command) Run(s HookState) error { + timerCh = timer.C + warnTime = (*c.Timeout).Seconds() * 0.8 + } ++ timeAfter := time.After(time.Duration(warnTime) * time.Second) + for { + select { + case err := <-errC: +@@ -398,7 +399,7 @@ func (c Command) Run(s HookState) error { + cmd.Process.Kill() + cmd.Wait() + return fmt.Errorf("hook ran past specified timeout of %.1fs", c.Timeout.Seconds()) +- case <-time.After(time.Duration(warnTime) * time.Second): ++ case <-timeAfter: + if c.Timeout != nil { + logrus.Warnf("hook ran more than 80%% of the timeout %s, ContainerID: %s", *c.Timeout, s.ID) + } else { +diff --git a/script/runc-euleros.spec b/script/runc-euleros.spec +index e829cb9..025b621 100644 +--- a/script/runc-euleros.spec ++++ b/script/runc-euleros.spec +@@ -2,7 +2,7 @@ + + Name: docker-runc + Version: 1.0.0.rc3 +-Release: 7%{?dist} ++Release: 8%{?dist} + Summary: runc is a CLI tool for spawning and running containers according to the OCF specification + + License: ASL 2.0 +-- +2.7.4.3 + diff --git a/patch/0069-runc-Change-Files-to-LinuxFiles-for-file-limi.patch b/patch/0069-runc-Change-Files-to-LinuxFiles-for-file-limi.patch new file mode 100644 index 0000000..b50ea47 --- /dev/null +++ b/patch/0069-runc-Change-Files-to-LinuxFiles-for-file-limi.patch @@ -0,0 +1,92 @@ +From 4b8a7b69792c22c1ee3abf3bee88af3590b144cb Mon Sep 17 00:00:00 2001 +From: lujingxiao +Date: Thu, 8 Nov 2018 11:14:01 +0800 +Subject: [PATCH 69/94] runc: Change Files to LinuxFiles for + --file-limit + +reason: after runc-1.0.0.rc3, struct Files should be renamed +to LinuxFiles. + +--file-limit related commits: +- 0c540de runc: change read value of cgroup files.limit into string +- fb2de87 runc: Modify max files.limit to max because of the +change of kernel. +- 5fc9474 Add file fds limit +all are already merged. + +Change-Id: Ida75dd6a7ccd225f6ac851bf4a28ef77d5a3944f +Signed-off-by: lujingxiao +--- + libcontainer/specconv/spec_linux.go | 4 ++-- + script/runc-euleros.spec | 2 +- + vendor/github.com/opencontainers/runtime-spec/Checklist | 1 + + .../github.com/opencontainers/runtime-spec/specs-go/config.go | 10 +++++----- + 4 files changed, 9 insertions(+), 8 deletions(-) + create mode 100644 vendor/github.com/opencontainers/runtime-spec/Checklist + +diff --git a/libcontainer/specconv/spec_linux.go b/libcontainer/specconv/spec_linux.go +index a8cf114..8ef9574 100644 +--- a/libcontainer/specconv/spec_linux.go ++++ b/libcontainer/specconv/spec_linux.go +@@ -408,8 +408,8 @@ func createCgroupConfig(opts *CreateOpts) (*configs.Cgroup, error) { + if r.Pids != nil { + c.Resources.PidsLimit = r.Pids.Limit + } +- if r.Files != nil && r.Files.Limit != nil { +- c.Resources.FilesLimit = *r.Files.Limit ++ if r.Files != nil { ++ c.Resources.FilesLimit = r.Files.Limit + } + if r.BlockIO != nil { + if r.BlockIO.Weight != nil { +diff --git a/script/runc-euleros.spec b/script/runc-euleros.spec +index 025b621..19cdc42 100644 +--- a/script/runc-euleros.spec ++++ b/script/runc-euleros.spec +@@ -2,7 +2,7 @@ + + Name: docker-runc + Version: 1.0.0.rc3 +-Release: 8%{?dist} ++Release: 9%{?dist} + Summary: runc is a CLI tool for spawning and running containers according to the OCF specification + + License: ASL 2.0 +diff --git a/vendor/github.com/opencontainers/runtime-spec/Checklist b/vendor/github.com/opencontainers/runtime-spec/Checklist +new file mode 100644 +index 0000000..be85bc8 +--- /dev/null ++++ b/vendor/github.com/opencontainers/runtime-spec/Checklist +@@ -0,0 +1 @@ ++Add struct LinuxFiles to vendor/src/github.com/opencontainers/runtime-spec/specs-go/config.go for supporting --files-limit +diff --git a/vendor/github.com/opencontainers/runtime-spec/specs-go/config.go b/vendor/github.com/opencontainers/runtime-spec/specs-go/config.go +index 603ecf4..fe3c5b6 100644 +--- a/vendor/github.com/opencontainers/runtime-spec/specs-go/config.go ++++ b/vendor/github.com/opencontainers/runtime-spec/specs-go/config.go +@@ -318,10 +318,10 @@ type LinuxPids struct { + Limit int64 `json:"limit"` + } + +-// Files for Linux cgroup 'files' resource management (https://lwn.net/Articles/604129/) +-type Files struct { +- // Maximum number of open files". +- Limit *int64 `json:"limit,omitempty"` ++// LinuxFiles for Linux cgroup 'files' resource management (https://lwn.net/Articles/604129/) ++type LinuxFiles struct { ++ // Maximum number of open files. Default is "no limit". ++ Limit int64 `json:"limit,omitempty"` + } + + // LinuxNetwork identification and priority configuration +@@ -347,7 +347,7 @@ type LinuxResources struct { + // Task resource restriction configuration. + Pids *LinuxPids `json:"pids,omitempty"` + // Files resource restriction configuration. +- Files *Files `json:"files,omitempty"` ++ Files *LinuxFiles `json:"files,omitempty"` + // BlockIO restriction configuration + BlockIO *LinuxBlockIO `json:"blockIO,omitempty"` + // Hugetlb limit (in bytes) +-- +2.7.4.3 + diff --git a/patch/0070-runc-not-print-no-such-file-when-cli-err.patch b/patch/0070-runc-not-print-no-such-file-when-cli-err.patch new file mode 100644 index 0000000..0944073 --- /dev/null +++ b/patch/0070-runc-not-print-no-such-file-when-cli-err.patch @@ -0,0 +1,48 @@ +From e0f78c86d05f7af62aef49c8c495f417d1bf7beb Mon Sep 17 00:00:00 2001 +From: lujingxiao +Date: Fri, 9 Nov 2018 15:01:27 +0800 +Subject: [PATCH 70/94] runc: not print "no such file" when cli err + +reason: when container does not exists, runc will cannot find +state.json, so "state.json: no such file or directory" is expected. +but user may call runc command anytime, so we should not print such +log to syslog. Just return it with stderr is ok. + +Change-Id: Ia26824d0339f69d8db3ef86c0f8344f60963a177 +Signed-off-by: lujingxiao +--- + main.go | 5 ++++- + script/runc-euleros.spec | 2 +- + 2 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/main.go b/main.go +index e55ff82..be3fba6 100644 +--- a/main.go ++++ b/main.go +@@ -163,6 +163,9 @@ type FatalWriter struct { + } + + func (f *FatalWriter) Write(p []byte) (n int, err error) { +- logrus.Error(string(p)) ++ errStr := string(p) ++ if !strings.Contains(errStr, "state.json: no such file or directory") { ++ logrus.Error(errStr) ++ } + return f.cliErrWriter.Write(p) + } +diff --git a/script/runc-euleros.spec b/script/runc-euleros.spec +index 19cdc42..acadd9e 100644 +--- a/script/runc-euleros.spec ++++ b/script/runc-euleros.spec +@@ -2,7 +2,7 @@ + + Name: docker-runc + Version: 1.0.0.rc3 +-Release: 9%{?dist} ++Release: 10%{?dist} + Summary: runc is a CLI tool for spawning and running containers according to the OCF specification + + License: ASL 2.0 +-- +2.7.4.3 + diff --git a/patch/0071-runc-revert-Change-Files-to-LinuxFiles-for-fi.patch b/patch/0071-runc-revert-Change-Files-to-LinuxFiles-for-fi.patch new file mode 100644 index 0000000..09423be --- /dev/null +++ b/patch/0071-runc-revert-Change-Files-to-LinuxFiles-for-fi.patch @@ -0,0 +1,88 @@ +From a667acd5325633858ae671f27075d58345b12619 Mon Sep 17 00:00:00 2001 +From: leizhongkai +Date: Fri, 9 Nov 2018 20:06:31 +0800 +Subject: [PATCH 71/94] runc: [revert]Change Files to LinuxFiles for + --file-limit + +reason:This reverts commit 1695b25310c490fe5038cf5a49e4c17ffc85af0e. + +Signed-off-by: leizhongkai + +Conflicts: + script/runc-euleros.spec + +Change-Id: Iddbcc7eca095b4b8e5d062e06f2f332a2c07caf8 +--- + libcontainer/specconv/spec_linux.go | 4 ++-- + script/runc-euleros.spec | 2 +- + vendor/github.com/opencontainers/runtime-spec/Checklist | 1 - + .../github.com/opencontainers/runtime-spec/specs-go/config.go | 10 +++++----- + 4 files changed, 8 insertions(+), 9 deletions(-) + delete mode 100644 vendor/github.com/opencontainers/runtime-spec/Checklist + +diff --git a/libcontainer/specconv/spec_linux.go b/libcontainer/specconv/spec_linux.go +index 8ef9574..a8cf114 100644 +--- a/libcontainer/specconv/spec_linux.go ++++ b/libcontainer/specconv/spec_linux.go +@@ -408,8 +408,8 @@ func createCgroupConfig(opts *CreateOpts) (*configs.Cgroup, error) { + if r.Pids != nil { + c.Resources.PidsLimit = r.Pids.Limit + } +- if r.Files != nil { +- c.Resources.FilesLimit = r.Files.Limit ++ if r.Files != nil && r.Files.Limit != nil { ++ c.Resources.FilesLimit = *r.Files.Limit + } + if r.BlockIO != nil { + if r.BlockIO.Weight != nil { +diff --git a/script/runc-euleros.spec b/script/runc-euleros.spec +index acadd9e..16fb43c 100644 +--- a/script/runc-euleros.spec ++++ b/script/runc-euleros.spec +@@ -2,7 +2,7 @@ + + Name: docker-runc + Version: 1.0.0.rc3 +-Release: 10%{?dist} ++Release: 11%{?dist} + Summary: runc is a CLI tool for spawning and running containers according to the OCF specification + + License: ASL 2.0 +diff --git a/vendor/github.com/opencontainers/runtime-spec/Checklist b/vendor/github.com/opencontainers/runtime-spec/Checklist +deleted file mode 100644 +index be85bc8..0000000 +--- a/vendor/github.com/opencontainers/runtime-spec/Checklist ++++ /dev/null +@@ -1 +0,0 @@ +-Add struct LinuxFiles to vendor/src/github.com/opencontainers/runtime-spec/specs-go/config.go for supporting --files-limit +diff --git a/vendor/github.com/opencontainers/runtime-spec/specs-go/config.go b/vendor/github.com/opencontainers/runtime-spec/specs-go/config.go +index fe3c5b6..603ecf4 100644 +--- a/vendor/github.com/opencontainers/runtime-spec/specs-go/config.go ++++ b/vendor/github.com/opencontainers/runtime-spec/specs-go/config.go +@@ -318,10 +318,10 @@ type LinuxPids struct { + Limit int64 `json:"limit"` + } + +-// LinuxFiles for Linux cgroup 'files' resource management (https://lwn.net/Articles/604129/) +-type LinuxFiles struct { +- // Maximum number of open files. Default is "no limit". +- Limit int64 `json:"limit,omitempty"` ++// Files for Linux cgroup 'files' resource management (https://lwn.net/Articles/604129/) ++type Files struct { ++ // Maximum number of open files". ++ Limit *int64 `json:"limit,omitempty"` + } + + // LinuxNetwork identification and priority configuration +@@ -347,7 +347,7 @@ type LinuxResources struct { + // Task resource restriction configuration. + Pids *LinuxPids `json:"pids,omitempty"` + // Files resource restriction configuration. +- Files *LinuxFiles `json:"files,omitempty"` ++ Files *Files `json:"files,omitempty"` + // BlockIO restriction configuration + BlockIO *LinuxBlockIO `json:"blockIO,omitempty"` + // Hugetlb limit (in bytes) +-- +2.7.4.3 + diff --git a/patch/0072-Revert-runc-not-print-no-such-file-when-cli-e.patch b/patch/0072-Revert-runc-not-print-no-such-file-when-cli-e.patch new file mode 100644 index 0000000..40825f2 --- /dev/null +++ b/patch/0072-Revert-runc-not-print-no-such-file-when-cli-e.patch @@ -0,0 +1,32 @@ +From b736c8d450f52150db3b8f7a6a247338028b57bf Mon Sep 17 00:00:00 2001 +From: jingrui +Date: Tue, 13 Nov 2018 17:21:19 +0800 +Subject: [PATCH 72/94] Revert "runc: not print "no such file" when cli + err" + +reason: This reverts commit 21c62a431c2795f59a82312dd9b8a437a1b2ca28. + +Change-Id: Ice19acd48ef916a3d992d9f4d06cf056361565e5 +Signed-off-by: jingrui +--- + main.go | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/main.go b/main.go +index be3fba6..e55ff82 100644 +--- a/main.go ++++ b/main.go +@@ -163,9 +163,6 @@ type FatalWriter struct { + } + + func (f *FatalWriter) Write(p []byte) (n int, err error) { +- errStr := string(p) +- if !strings.Contains(errStr, "state.json: no such file or directory") { +- logrus.Error(errStr) +- } ++ logrus.Error(string(p)) + return f.cliErrWriter.Write(p) + } +-- +2.7.4.3 + diff --git a/patch/0073-runc-fix-state.json-no-such-file-or-directory.patch b/patch/0073-runc-fix-state.json-no-such-file-or-directory.patch new file mode 100644 index 0000000..433e67e --- /dev/null +++ b/patch/0073-runc-fix-state.json-no-such-file-or-directory.patch @@ -0,0 +1,80 @@ +From 3c0c0adf121e44ee00b7191a2693575676eb90be Mon Sep 17 00:00:00 2001 +From: jingrui +Date: Tue, 13 Nov 2018 15:38:05 +0800 +Subject: [PATCH 73/94] runc: fix state.json: no such file or directory + +reason: fix 8c14d652 * runc-17: add compatibility for docker-1.11.2 + +Change-Id: I8ff0b3ae90611dfb6e1f5fbd1b8170c460d9ea2d +Signed-off-by: jingrui +--- + libcontainer/factory_linux.go | 14 +++++++------- + script/runc-euleros.spec | 2 +- + 2 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/libcontainer/factory_linux.go b/libcontainer/factory_linux.go +index b533346..fe9ce24 100644 +--- a/libcontainer/factory_linux.go ++++ b/libcontainer/factory_linux.go +@@ -368,11 +368,11 @@ func (l *LinuxFactory) updateStateCapabilites(compatState *CompatState, configPa + return errors.New("updateStateCapabilites unexpected format for capabilities") + } + +-func (l *LinuxFactory) loadOriginState(configPath string) (*State, error) { ++func (l *LinuxFactory) loadOriginState(configPath, id string) (*State, error) { + f, err := os.Open(configPath) + if err != nil { + if os.IsNotExist(err) { +- return nil, newGenericError(err, ContainerNotExists) ++ return nil, newGenericError(fmt.Errorf("container %q does not exist", id), ContainerNotExists) + } + return nil, newGenericError(err, SystemError) + } +@@ -384,11 +384,11 @@ func (l *LinuxFactory) loadOriginState(configPath string) (*State, error) { + return state, nil + } + +-func (l *LinuxFactory) loadCompatState(configPath string) (*State, error) { ++func (l *LinuxFactory) loadCompatState(configPath, id string) (*State, error) { + dt, err := ioutil.ReadFile(configPath) + if err != nil { + if os.IsNotExist(err) { +- return nil, newGenericError(err, ContainerNotExists) ++ return nil, newGenericError(fmt.Errorf("container %q does not exist", id), ContainerNotExists) + } + return nil, newGenericError(err, SystemError) + } +@@ -403,14 +403,14 @@ func (l *LinuxFactory) loadCompatState(configPath string) (*State, error) { + return nil, newGenericError(err, SystemError) + } + +- return l.loadOriginState(configPath) ++ return l.loadOriginState(configPath, id) + } + + func (l *LinuxFactory) loadState(root, id string) (*State, error) { + configPath := filepath.Join(root, stateFilename) +- state, err := l.loadOriginState(configPath) ++ state, err := l.loadOriginState(configPath, id) + if err != nil { +- return l.loadCompatState(configPath) ++ return l.loadCompatState(configPath, id) + } + return state, nil + } +diff --git a/script/runc-euleros.spec b/script/runc-euleros.spec +index 16fb43c..536678d 100644 +--- a/script/runc-euleros.spec ++++ b/script/runc-euleros.spec +@@ -2,7 +2,7 @@ + + Name: docker-runc + Version: 1.0.0.rc3 +-Release: 11%{?dist} ++Release: 12%{?dist} + Summary: runc is a CLI tool for spawning and running containers according to the OCF specification + + License: ASL 2.0 +-- +2.7.4.3 + diff --git a/patch/0074-runc-fix-check-sysctl-in-host-network-mode.patch b/patch/0074-runc-fix-check-sysctl-in-host-network-mode.patch new file mode 100644 index 0000000..c75dccb --- /dev/null +++ b/patch/0074-runc-fix-check-sysctl-in-host-network-mode.patch @@ -0,0 +1,78 @@ +From 0a760e4753e743a0fe874471584d378b81a02d07 Mon Sep 17 00:00:00 2001 +From: zhangyuyun +Date: Thu, 15 Nov 2018 01:10:44 -0500 +Subject: [PATCH 74/94] runc: fix check sysctl in host network mode + +reason:it's found failed in runc to check if the container is in + the host namespace,which introduced by + https://github.com/opencontainers/runc/pull/1138 + https://github.com/opencontainers/runc/pull/1221 + +Change-Id: If1374c081cea93c700d627b40d2ca1ad58b5fb83 +--- + libcontainer/configs/validate/validator.go | 27 ++++++++++++++++++--------- + script/runc-euleros.spec | 2 +- + 2 files changed, 19 insertions(+), 10 deletions(-) + +diff --git a/libcontainer/configs/validate/validator.go b/libcontainer/configs/validate/validator.go +index 8284345..5cb50fb 100644 +--- a/libcontainer/configs/validate/validator.go ++++ b/libcontainer/configs/validate/validator.go +@@ -5,6 +5,7 @@ import ( + "os" + "path/filepath" + "strings" ++ "syscall" + + "github.com/opencontainers/runc/libcontainer/configs" + selinux "github.com/opencontainers/selinux/go-selinux" +@@ -177,16 +178,24 @@ func checkHostNs(sysctlConfig string, path string) error { + return fmt.Errorf("could not check that %q is a symlink: %v", path, err) + } + ++ var destOfContainer string + if symLink == false { +- // The provided namespace is not a symbolic link, +- // it is not the host namespace. +- return nil +- } +- +- // readlink on the path provided in the struct +- destOfContainer, err := os.Readlink(path) +- if err != nil { +- return fmt.Errorf("read soft link %q error", path) ++ // try getting inode number for comparsion ++ f, err := os.Stat(path) ++ if err != nil { ++ return err ++ } ++ stat, ok := f.Sys().(*syscall.Stat_t) ++ if !ok { ++ return fmt.Errorf("cannot convert stat value of %q to syscall.Stat_t", path) ++ } ++ destOfContainer = fmt.Sprintf("net:[%d]", stat.Ino) ++ } else { ++ // readlink on the path provided in the struct ++ destOfContainer, err = os.Readlink(path) ++ if err != nil { ++ return fmt.Errorf("read soft link %q error", path) ++ } + } + if destOfContainer == destOfCurrentProcess { + return fmt.Errorf("sysctl %q is not allowed in the hosts network namespace", sysctlConfig) +diff --git a/script/runc-euleros.spec b/script/runc-euleros.spec +index 536678d..0e92bf0 100644 +--- a/script/runc-euleros.spec ++++ b/script/runc-euleros.spec +@@ -2,7 +2,7 @@ + + Name: docker-runc + Version: 1.0.0.rc3 +-Release: 12%{?dist} ++Release: 13%{?dist} + Summary: runc is a CLI tool for spawning and running containers according to the OCF specification + + License: ASL 2.0 +-- +2.7.4.3 + diff --git a/patch/0075-runc-Fix-systemd-journald-service-dependency.patch b/patch/0075-runc-Fix-systemd-journald-service-dependency.patch new file mode 100644 index 0000000..57fc63d --- /dev/null +++ b/patch/0075-runc-Fix-systemd-journald-service-dependency.patch @@ -0,0 +1,62 @@ +From b35de14c25e51f98c3e61636ed79ba91e6259596 Mon Sep 17 00:00:00 2001 +From: zhangsong34 +Date: Thu, 6 Dec 2018 19:44:58 +0800 +Subject: [PATCH 75/94] runc: Fix systemd-journald service dependency + +reason:runc logs forwarding to syslog only when systemd-journald service +status is active and running. + +Change-Id: Ib95f0269c6905642050be1c4d195e95919245159 +Signed-off-by: zhangsong34 +--- + main.go | 12 ++++++++---- + script/runc-euleros.spec | 2 +- + 2 files changed, 9 insertions(+), 5 deletions(-) + +diff --git a/main.go b/main.go +index e55ff82..dcc2925 100644 +--- a/main.go ++++ b/main.go +@@ -8,6 +8,7 @@ import ( + "github.com/urfave/cli" + "io" + "log/syslog" ++ "net" + "os" + "strings" + ) +@@ -121,11 +122,14 @@ func main() { + return err + } + logrus.SetOutput(f) +- hook, serr := logrus_syslog.NewSyslogHook("", "", syslog.LOG_INFO|syslog.LOG_USER, "docker-runc") +- if serr != nil { +- fmt.Fprint(f, fmt.Sprintf("Leo: new syslog hook get %s", serr)) ++ if conn, err := net.Dial("unixgram", "/run/systemd/journal/socket"); err == nil { ++ defer conn.Close() ++ hook, serr := logrus_syslog.NewSyslogHook("", "", syslog.LOG_INFO|syslog.LOG_USER, "docker-runc") ++ if serr != nil { ++ fmt.Fprint(f, fmt.Sprintf("new syslog hook get %s", serr)) ++ } ++ logrus.AddHook(hook) + } +- logrus.AddHook(hook) + } + switch context.GlobalString("log-format") { + case "text": +diff --git a/script/runc-euleros.spec b/script/runc-euleros.spec +index 0e92bf0..354bb24 100644 +--- a/script/runc-euleros.spec ++++ b/script/runc-euleros.spec +@@ -2,7 +2,7 @@ + + Name: docker-runc + Version: 1.0.0.rc3 +-Release: 13%{?dist} ++Release: 14%{?dist} + Summary: runc is a CLI tool for spawning and running containers according to the OCF specification + + License: ASL 2.0 +-- +2.7.4.3 + diff --git a/patch/0076-runc-Fix-syslog-hook-bug.patch b/patch/0076-runc-Fix-syslog-hook-bug.patch new file mode 100644 index 0000000..321bc41 --- /dev/null +++ b/patch/0076-runc-Fix-syslog-hook-bug.patch @@ -0,0 +1,60 @@ +From e42b9955244945b3571aad2e2a612b827f6cafa2 Mon Sep 17 00:00:00 2001 +From: zhangsong34 +Date: Thu, 6 Dec 2018 21:41:59 +0800 +Subject: [PATCH 76/94] runc: Fix syslog hook bug + +reason:If NewSyslogHook() function returns error, it indicates that +systemd-journald service is not running, do not add this hook. + +Change-Id: Ifd6c9a79a4055da275a8c4c867195f220b0cdffd +Signed-off-by: zhangsong34 +--- + main.go | 11 ++++------- + script/runc-euleros.spec | 2 +- + 2 files changed, 5 insertions(+), 8 deletions(-) + +diff --git a/main.go b/main.go +index dcc2925..5f0ec91 100644 +--- a/main.go ++++ b/main.go +@@ -8,7 +8,6 @@ import ( + "github.com/urfave/cli" + "io" + "log/syslog" +- "net" + "os" + "strings" + ) +@@ -122,12 +121,10 @@ func main() { + return err + } + logrus.SetOutput(f) +- if conn, err := net.Dial("unixgram", "/run/systemd/journal/socket"); err == nil { +- defer conn.Close() +- hook, serr := logrus_syslog.NewSyslogHook("", "", syslog.LOG_INFO|syslog.LOG_USER, "docker-runc") +- if serr != nil { +- fmt.Fprint(f, fmt.Sprintf("new syslog hook get %s", serr)) +- } ++ hook, serr := logrus_syslog.NewSyslogHook("", "", syslog.LOG_INFO|syslog.LOG_USER, "docker-runc") ++ if serr != nil { ++ fmt.Fprint(f, fmt.Sprintf("new syslog hook get %s", serr)) ++ } else { + logrus.AddHook(hook) + } + } +diff --git a/script/runc-euleros.spec b/script/runc-euleros.spec +index 354bb24..34f9d22 100644 +--- a/script/runc-euleros.spec ++++ b/script/runc-euleros.spec +@@ -2,7 +2,7 @@ + + Name: docker-runc + Version: 1.0.0.rc3 +-Release: 14%{?dist} ++Release: 15%{?dist} + Summary: runc is a CLI tool for spawning and running containers according to the OCF specification + + License: ASL 2.0 +-- +2.7.4.3 + diff --git a/patch/0077-runc-Require-libseccomp-static-lib-for-upgrade-f.patch b/patch/0077-runc-Require-libseccomp-static-lib-for-upgrade-f.patch new file mode 100644 index 0000000..2d72192 --- /dev/null +++ b/patch/0077-runc-Require-libseccomp-static-lib-for-upgrade-f.patch @@ -0,0 +1,38 @@ +From 2f064ca54d3e1fcc41bc8f97c3ac8a354de34fff Mon Sep 17 00:00:00 2001 +From: zhangsong34 +Date: Wed, 12 Dec 2018 18:53:48 +0800 +Subject: [PATCH 77/94] runc: Require libseccomp-static lib for + upgrade + +reason:Require libseccomp-static lib for upgrade + +Change-Id: Ie80603197c95ab36ce23c11c8b0807b43d0fb916 +Signed-off-by: zhangsong34 +--- + script/runc-euleros.spec | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/script/runc-euleros.spec b/script/runc-euleros.spec +index 34f9d22..f21ac08 100644 +--- a/script/runc-euleros.spec ++++ b/script/runc-euleros.spec +@@ -2,7 +2,7 @@ + + Name: docker-runc + Version: 1.0.0.rc3 +-Release: 15%{?dist} ++Release: 16%{?dist} + Summary: runc is a CLI tool for spawning and running containers according to the OCF specification + + License: ASL 2.0 +@@ -18,6 +18,7 @@ BuildRequires: make + BuildRequires: libseccomp-devel + BuildRequires: libselinux-devel + ++BuildRequires: libseccomp-static + + %description + runc is a CLI tool for spawning and running containers according to the OCF specification +-- +2.7.4.3 + diff --git a/patch/0078-runc-Fix-race-in-runc-exec.patch b/patch/0078-runc-Fix-race-in-runc-exec.patch new file mode 100644 index 0000000..0a96a80 --- /dev/null +++ b/patch/0078-runc-Fix-race-in-runc-exec.patch @@ -0,0 +1,499 @@ +From 7bef8ad8bbe3fed26c02b070b6ba09d484ec514b Mon Sep 17 00:00:00 2001 +From: wangfengtu +Date: Fri, 1 Jun 2018 12:56:13 -0700 +Subject: [PATCH 78/94] runc: Fix race in runc exec + +reason:There is a race in runc exec when the init process stops just before +the check for the container status. It is then wrongly assumed that +we are trying to start an init process instead of an exec process. + +This commit add an Init field to libcontainer Process to distinguish +between init and exec processes to prevent this race. + +cherry-picked from upstream https://github.com/opencontainers/runc/pull/1812 + +conflicts: + exec.go + libcontainer/container_linux.go + utils_linux.go + +Change-Id: I945a5f663914e652cc117aa33885d687f70a51e4 +Signed-off-by: Mrunal Patel +Signed-off-by: wangfengtu +--- + exec.go | 1 + + libcontainer/container_linux.go | 29 +++++++++-------------------- + libcontainer/integration/checkpoint_test.go | 2 ++ + libcontainer/integration/exec_test.go | 19 +++++++++++++++++++ + libcontainer/integration/execin_test.go | 11 +++++++++++ + libcontainer/integration/seccomp_test.go | 3 +++ + libcontainer/integration/utils_test.go | 1 + + libcontainer/process.go | 3 +++ + utils_linux.go | 7 +++++-- + 9 files changed, 54 insertions(+), 22 deletions(-) + +diff --git a/exec.go b/exec.go +index 22f2689..9ed90ea 100644 +--- a/exec.go ++++ b/exec.go +@@ -135,6 +135,7 @@ func execProcess(context *cli.Context) (int, error) { + consoleSocket: context.String("console-socket"), + detach: detach, + pidFile: context.String("pid-file"), ++ init: false, + } + return r.run(p) + } +diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go +index 8e0ad12..8100aca 100644 +--- a/libcontainer/container_linux.go ++++ b/libcontainer/container_linux.go +@@ -197,17 +197,13 @@ func (c *linuxContainer) Set(config configs.Config) error { + func (c *linuxContainer) Start(process *Process) error { + c.m.Lock() + defer c.m.Unlock() +- status, err := c.currentStatus() +- if err != nil { +- return err +- } +- if status == Stopped { ++ if process.Init { + if err := c.createExecFifo(); err != nil { + return err + } + } +- if err := c.start(process, status == Stopped); err != nil { +- if status == Stopped { ++ if err := c.start(process); err != nil { ++ if process.Init { + c.deleteExecFifo() + } + return err +@@ -216,17 +212,10 @@ func (c *linuxContainer) Start(process *Process) error { + } + + func (c *linuxContainer) Run(process *Process) error { +- c.m.Lock() +- status, err := c.currentStatus() +- if err != nil { +- c.m.Unlock() +- return err +- } +- c.m.Unlock() + if err := c.Start(process); err != nil { + return err + } +- if status == Stopped { ++ if process.Init { + return c.exec() + } + return nil +@@ -315,8 +304,8 @@ type openResult struct { + err error + } + +-func (c *linuxContainer) start(process *Process, isInit bool) error { +- parent, err := c.newParentProcess(process, isInit) ++func (c *linuxContainer) start(process *Process) error { ++ parent, err := c.newParentProcess(process) + if err != nil { + return newSystemErrorWithCause(err, "creating new parent process") + } +@@ -329,7 +318,7 @@ func (c *linuxContainer) start(process *Process, isInit bool) error { + } + // generate a timestamp indicating when the container was started + c.created = time.Now().UTC() +- if isInit { ++ if process.Init { + c.state = &createdState{ + c: c, + } +@@ -409,7 +398,7 @@ func (c *linuxContainer) deleteExecFifo() { + os.Remove(fifoName) + } + +-func (c *linuxContainer) newParentProcess(p *Process, doInit bool) (parentProcess, error) { ++func (c *linuxContainer) newParentProcess(p *Process) (parentProcess, error) { + parentPipe, childPipe, err := utils.NewSockPair("init") + if err != nil { + return nil, newSystemErrorWithCause(err, "creating new init pipe") +@@ -418,7 +407,7 @@ func (c *linuxContainer) newParentProcess(p *Process, doInit bool) (parentProces + if err != nil { + return nil, newSystemErrorWithCause(err, "creating new command template") + } +- if !doInit { ++ if !p.Init { + return c.newSetnsProcess(p, cmd, parentPipe, childPipe) + } + +diff --git a/libcontainer/integration/checkpoint_test.go b/libcontainer/integration/checkpoint_test.go +index bc5b0a3..b4d55e0 100644 +--- a/libcontainer/integration/checkpoint_test.go ++++ b/libcontainer/integration/checkpoint_test.go +@@ -87,6 +87,7 @@ func TestCheckpoint(t *testing.T) { + Env: standardEnvironment, + Stdin: stdinR, + Stdout: &stdout, ++ Init: true, + } + + err = container.Run(&pconfig) +@@ -182,6 +183,7 @@ func TestCheckpoint(t *testing.T) { + Cwd: "/", + Stdin: restoreStdinR, + Stdout: &stdout, ++ Init: true, + } + + err = container.Restore(restoreProcessConfig, checkpointOpts) +diff --git a/libcontainer/integration/exec_test.go b/libcontainer/integration/exec_test.go +index f3dd72a..583b04a 100644 +--- a/libcontainer/integration/exec_test.go ++++ b/libcontainer/integration/exec_test.go +@@ -230,6 +230,7 @@ func TestEnter(t *testing.T) { + Env: standardEnvironment, + Stdin: stdinR, + Stdout: &stdout, ++ Init: true, + } + err = container.Run(&pconfig) + stdinR.Close() +@@ -319,6 +320,7 @@ func TestProcessEnv(t *testing.T) { + }, + Stdin: nil, + Stdout: &stdout, ++ Init: true, + } + err = container.Run(&pconfig) + ok(t, err) +@@ -365,6 +367,7 @@ func TestProcessEmptyCaps(t *testing.T) { + Env: standardEnvironment, + Stdin: nil, + Stdout: &stdout, ++ Init: true, + } + err = container.Run(&pconfig) + ok(t, err) +@@ -416,6 +419,7 @@ func TestProcessCaps(t *testing.T) { + Stdin: nil, + Stdout: &stdout, + Capabilities: &configs.Capabilities{}, ++ Init: true, + } + pconfig.Capabilities.Bounding = append(config.Capabilities.Bounding, "CAP_NET_ADMIN") + pconfig.Capabilities.Permitted = append(config.Capabilities.Permitted, "CAP_NET_ADMIN") +@@ -490,6 +494,7 @@ func TestAdditionalGroups(t *testing.T) { + Stdin: nil, + Stdout: &stdout, + AdditionalGroups: []string{"plugdev", "audio"}, ++ Init: true, + } + err = container.Run(&pconfig) + ok(t, err) +@@ -550,6 +555,7 @@ func testFreeze(t *testing.T, systemd bool) { + Args: []string{"cat"}, + Env: standardEnvironment, + Stdin: stdinR, ++ Init: true, + } + err = container.Run(pconfig) + stdinR.Close() +@@ -761,6 +767,7 @@ func TestContainerState(t *testing.T) { + Args: []string{"cat"}, + Env: standardEnvironment, + Stdin: stdinR, ++ Init: true, + } + err = container.Run(p) + if err != nil { +@@ -814,6 +821,7 @@ func TestPassExtraFiles(t *testing.T) { + ExtraFiles: []*os.File{pipein1, pipein2}, + Stdin: nil, + Stdout: &stdout, ++ Init: true, + } + err = container.Run(&process) + if err != nil { +@@ -895,6 +903,7 @@ func TestMountCmds(t *testing.T) { + Cwd: "/", + Args: []string{"sh", "-c", "env"}, + Env: standardEnvironment, ++ Init: true, + } + err = container.Run(&pconfig) + if err != nil { +@@ -944,6 +953,7 @@ func TestSysctl(t *testing.T) { + Env: standardEnvironment, + Stdin: nil, + Stdout: &stdout, ++ Init: true, + } + err = container.Run(&pconfig) + ok(t, err) +@@ -1084,6 +1094,7 @@ func TestOomScoreAdj(t *testing.T) { + Env: standardEnvironment, + Stdin: nil, + Stdout: &stdout, ++ Init: true, + } + err = container.Run(&pconfig) + ok(t, err) +@@ -1189,6 +1200,7 @@ func TestHook(t *testing.T) { + Env: standardEnvironment, + Stdin: nil, + Stdout: &stdout, ++ Init: true, + } + err = container.Run(&pconfig) + ok(t, err) +@@ -1305,6 +1317,7 @@ func TestRootfsPropagationSlaveMount(t *testing.T) { + Args: []string{"cat"}, + Env: standardEnvironment, + Stdin: stdinR, ++ Init: true, + } + + err = container.Run(pconfig) +@@ -1422,6 +1435,7 @@ func TestRootfsPropagationSharedMount(t *testing.T) { + Args: []string{"cat"}, + Env: standardEnvironment, + Stdin: stdinR, ++ Init: true, + } + + err = container.Run(pconfig) +@@ -1530,6 +1544,7 @@ func TestInitJoinPID(t *testing.T) { + Args: []string{"cat"}, + Env: standardEnvironment, + Stdin: stdinR1, ++ Init: true, + } + err = container1.Run(init1) + stdinR1.Close() +@@ -1556,6 +1571,7 @@ func TestInitJoinPID(t *testing.T) { + Args: []string{"cat"}, + Env: standardEnvironment, + Stdin: stdinR2, ++ Init: true, + } + err = container2.Run(init2) + stdinR2.Close() +@@ -1635,6 +1651,7 @@ func TestInitJoinNetworkAndUser(t *testing.T) { + Args: []string{"cat"}, + Env: standardEnvironment, + Stdin: stdinR1, ++ Init: true, + } + err = container1.Run(init1) + stdinR1.Close() +@@ -1669,6 +1686,7 @@ func TestInitJoinNetworkAndUser(t *testing.T) { + Args: []string{"cat"}, + Env: standardEnvironment, + Stdin: stdinR2, ++ Init: true, + } + err = container2.Run(init2) + stdinR2.Close() +@@ -1736,6 +1754,7 @@ func TestTmpfsCopyUp(t *testing.T) { + Env: standardEnvironment, + Stdin: nil, + Stdout: &stdout, ++ Init: true, + } + err = container.Run(&pconfig) + ok(t, err) +diff --git a/libcontainer/integration/execin_test.go b/libcontainer/integration/execin_test.go +index f06075e..988b667 100644 +--- a/libcontainer/integration/execin_test.go ++++ b/libcontainer/integration/execin_test.go +@@ -36,6 +36,7 @@ func TestExecIn(t *testing.T) { + Args: []string{"cat"}, + Env: standardEnvironment, + Stdin: stdinR, ++ Init: true, + } + err = container.Run(process) + stdinR.Close() +@@ -103,6 +104,7 @@ func testExecInRlimit(t *testing.T, userns bool) { + Args: []string{"cat"}, + Env: standardEnvironment, + Stdin: stdinR, ++ Init: true, + } + err = container.Run(process) + stdinR.Close() +@@ -121,6 +123,7 @@ func testExecInRlimit(t *testing.T, userns bool) { + // increase process rlimit higher than container rlimit to test per-process limit + {Type: syscall.RLIMIT_NOFILE, Hard: 1026, Soft: 1026}, + }, ++ Init: true, + } + err = container.Run(ps) + ok(t, err) +@@ -157,6 +160,7 @@ func TestExecInAdditionalGroups(t *testing.T) { + Args: []string{"cat"}, + Env: standardEnvironment, + Stdin: stdinR, ++ Init: true, + } + err = container.Run(process) + stdinR.Close() +@@ -213,6 +217,7 @@ func TestExecInError(t *testing.T) { + Args: []string{"cat"}, + Env: standardEnvironment, + Stdin: stdinR, ++ Init: true, + } + err = container.Run(process) + stdinR.Close() +@@ -265,6 +270,7 @@ func TestExecInTTY(t *testing.T) { + Args: []string{"cat"}, + Env: standardEnvironment, + Stdin: stdinR, ++ Init: true, + } + err = container.Run(process) + stdinR.Close() +@@ -349,6 +355,7 @@ func TestExecInEnvironment(t *testing.T) { + Args: []string{"cat"}, + Env: standardEnvironment, + Stdin: stdinR, ++ Init: true, + } + err = container.Run(process) + stdinR.Close() +@@ -368,6 +375,7 @@ func TestExecInEnvironment(t *testing.T) { + Stdin: buffers.Stdin, + Stdout: buffers.Stdout, + Stderr: buffers.Stderr, ++ Init: true, + } + err = container.Run(process2) + ok(t, err) +@@ -413,6 +421,7 @@ func TestExecinPassExtraFiles(t *testing.T) { + Args: []string{"cat"}, + Env: standardEnvironment, + Stdin: stdinR, ++ Init: true, + } + err = container.Run(process) + stdinR.Close() +@@ -486,6 +495,7 @@ func TestExecInOomScoreAdj(t *testing.T) { + Args: []string{"cat"}, + Env: standardEnvironment, + Stdin: stdinR, ++ Init: true, + } + err = container.Run(process) + stdinR.Close() +@@ -541,6 +551,7 @@ func TestExecInUserns(t *testing.T) { + Args: []string{"cat"}, + Env: standardEnvironment, + Stdin: stdinR, ++ Init: true, + } + err = container.Run(process) + stdinR.Close() +diff --git a/libcontainer/integration/seccomp_test.go b/libcontainer/integration/seccomp_test.go +index 055f887..8e2c7cd 100644 +--- a/libcontainer/integration/seccomp_test.go ++++ b/libcontainer/integration/seccomp_test.go +@@ -48,6 +48,7 @@ func TestSeccompDenyGetcwd(t *testing.T) { + Stdin: buffers.Stdin, + Stdout: buffers.Stdout, + Stderr: buffers.Stderr, ++ Init: true, + } + + err = container.Run(pwd) +@@ -123,6 +124,7 @@ func TestSeccompPermitWriteConditional(t *testing.T) { + Stdin: buffers.Stdin, + Stdout: buffers.Stdout, + Stderr: buffers.Stderr, ++ Init: true, + } + + err = container.Run(dmesg) +@@ -184,6 +186,7 @@ func TestSeccompDenyWriteConditional(t *testing.T) { + Stdin: buffers.Stdin, + Stdout: buffers.Stdout, + Stderr: buffers.Stderr, ++ Init: true, + } + + err = container.Run(dmesg) +diff --git a/libcontainer/integration/utils_test.go b/libcontainer/integration/utils_test.go +index 74d9413..dc6a4d8 100644 +--- a/libcontainer/integration/utils_test.go ++++ b/libcontainer/integration/utils_test.go +@@ -148,6 +148,7 @@ func runContainer(config *configs.Config, console string, args ...string) (buffe + Stdin: buffers.Stdin, + Stdout: buffers.Stdout, + Stderr: buffers.Stderr, ++ Init: true, + } + + err = container.Run(process) +diff --git a/libcontainer/process.go b/libcontainer/process.go +index f1ad081..150510d 100644 +--- a/libcontainer/process.go ++++ b/libcontainer/process.go +@@ -68,6 +68,9 @@ type Process struct { + // ConsoleSocket provides the masterfd console. + ConsoleSocket *os.File + ++ // Init specifies whether the process is the first process in the container. ++ Init bool ++ + ops processOperations + } + +diff --git a/utils_linux.go b/utils_linux.go +index c6a8c02..df98cf9 100644 +--- a/utils_linux.go ++++ b/utils_linux.go +@@ -72,7 +72,7 @@ func getDefaultImagePath(context *cli.Context) string { + + // newProcess returns a new libcontainer Process with the arguments from the + // spec and stdio from the current process. +-func newProcess(p specs.Process) (*libcontainer.Process, error) { ++func newProcess(p specs.Process, init bool) (*libcontainer.Process, error) { + lp := &libcontainer.Process{ + Args: p.Args, + Env: p.Env, +@@ -82,6 +82,7 @@ func newProcess(p specs.Process) (*libcontainer.Process, error) { + Label: p.SelinuxLabel, + NoNewPrivileges: &p.NoNewPrivileges, + AppArmorProfile: p.ApparmorProfile, ++ Init: init, + } + if p.Capabilities != nil { + lp.Capabilities = &configs.Capabilities{} +@@ -212,6 +213,7 @@ func createContainer(context *cli.Context, id string, spec *specs.Spec) (libcont + } + + type runner struct { ++ init bool + enableSubreaper bool + shouldDestroy bool + detach bool +@@ -229,7 +231,7 @@ func (r *runner) run(config *specs.Process) (int, error) { + r.destroy() + return -1, err + } +- process, err := newProcess(*config) ++ process, err := newProcess(*config, r.init) + if err != nil { + r.destroy() + return -1, err +@@ -373,6 +375,7 @@ func startContainer(context *cli.Context, spec *specs.Spec, create bool) (int, e + pidFile: context.String("pid-file"), + preserveFDs: context.Int("preserve-fds"), + create: create, ++ init: true, + } + return r.run(&spec.Process) + } +-- +2.7.4.3 + diff --git a/patch/0079-runc-modify-spec-file-for-upgrade.patch b/patch/0079-runc-modify-spec-file-for-upgrade.patch new file mode 100644 index 0000000..30c0d4f --- /dev/null +++ b/patch/0079-runc-modify-spec-file-for-upgrade.patch @@ -0,0 +1,29 @@ +From 912f3b9001459f118fd85f04d7614cbaaa1c351b Mon Sep 17 00:00:00 2001 +From: zhangsong34 +Date: Tue, 25 Dec 2018 19:13:32 +0800 +Subject: [PATCH 79/94] runc: modify spec file for upgrade + +reason:modify spec file for upgrade + +Change-Id: Ifad62b1e80bf67bb0a043bdd98e5ac03233727f5 +Signed-off-by: zhangsong34 +--- + script/runc-euleros.spec | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/script/runc-euleros.spec b/script/runc-euleros.spec +index f21ac08..faccbf6 100644 +--- a/script/runc-euleros.spec ++++ b/script/runc-euleros.spec +@@ -2,7 +2,7 @@ + + Name: docker-runc + Version: 1.0.0.rc3 +-Release: 16%{?dist} ++Release: 17%{?dist} + Summary: runc is a CLI tool for spawning and running containers according to the OCF specification + + License: ASL 2.0 +-- +2.7.4.3 + diff --git a/patch/0080-runc-support-specify-umask.patch b/patch/0080-runc-support-specify-umask.patch new file mode 100644 index 0000000..4f351a6 --- /dev/null +++ b/patch/0080-runc-support-specify-umask.patch @@ -0,0 +1,73 @@ +From 18f5c5e20e342af002b0edb2295f64ea12632cc4 Mon Sep 17 00:00:00 2001 +From: wangfengtu +Date: Fri, 21 Dec 2018 15:02:16 +0800 +Subject: [PATCH 80/94] runc: support specify umask + +reason:support specify umask. +Umask can be 0022 or 0027(default) by specify umask when +start container by command `docker create/run` or start +daemon by command `dockerd`. For example: +$ dockerd --annotation native.umask=normal +$ dockerd --annotation native.umask=secure +$ docker run --exec-opt native.umask=normal +$ docker run --exec-opt native.umask=secure +`normal` reparent umask is 0022, `secure` +reparent umask is 0027. + +Change-Id: I49166759ad42dca0ac1f9755f85592e93951c249 +Signed-off-by: lujingxiao +Signed-off-by: wangfengtu +--- + libcontainer/rootfs_linux.go | 7 ++++++- + libcontainer/setns_init_linux.go | 10 ++++++++-- + 2 files changed, 14 insertions(+), 3 deletions(-) + +diff --git a/libcontainer/rootfs_linux.go b/libcontainer/rootfs_linux.go +index 38bdd1b..3dd5113 100644 +--- a/libcontainer/rootfs_linux.go ++++ b/libcontainer/rootfs_linux.go +@@ -136,7 +136,12 @@ func finalizeRootfs(config *configs.Config) (err error) { + } + } + +- syscall.Umask(0027) ++ umask := libcontainerUtils.SearchLabels(config.Labels, "native.umask") ++ if umask == "normal" { ++ syscall.Umask(0022) ++ } else { ++ syscall.Umask(0027) ++ } + return nil + } + +diff --git a/libcontainer/setns_init_linux.go b/libcontainer/setns_init_linux.go +index e8e969a..b3fab21 100644 +--- a/libcontainer/setns_init_linux.go ++++ b/libcontainer/setns_init_linux.go +@@ -11,6 +11,7 @@ import ( + "github.com/opencontainers/runc/libcontainer/keys" + "github.com/opencontainers/runc/libcontainer/seccomp" + "github.com/opencontainers/runc/libcontainer/system" ++ "github.com/opencontainers/runc/libcontainer/utils" + "github.com/opencontainers/selinux/go-selinux/label" + ) + +@@ -41,8 +42,13 @@ func (l *linuxSetnsInit) Init() error { + return err + } + } +- // set exec process umask to 0027 according to secure policy +- syscall.Umask(0027) ++ // set exec process umask to 0027 or 0022 according to container's config ++ umask := utils.SearchLabels(l.config.Config.Labels, "native.umask") ++ if umask == "normal" { ++ syscall.Umask(0022) ++ } else { ++ syscall.Umask(0027) ++ } + if l.config.NoNewPrivileges { + if err := system.Prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0); err != nil { + return err +-- +2.7.4.3 + diff --git a/patch/0081-runc-fix-oom-killer-disable-unhandled-due-t.patch b/patch/0081-runc-fix-oom-killer-disable-unhandled-due-t.patch new file mode 100644 index 0000000..fb9e530 --- /dev/null +++ b/patch/0081-runc-fix-oom-killer-disable-unhandled-due-t.patch @@ -0,0 +1,151 @@ +From 1948bc88664ef018f87bd16c004ea2de32be3ec3 Mon Sep 17 00:00:00 2001 +From: caihaomin +Date: Mon, 21 Jan 2019 13:50:35 +0800 +Subject: [PATCH 81/94] runc: fix oom-killer-disable unhandled due to + the spec + +reason:fix oom-killer-disable unhandled due to the spec + +Change-Id: I646b0420f8c387906afb80536352259ec1482729 +Signed-off-by: caihaomin +--- + spec.go | 100 +++++++++++++++++++++++++++++++++++++++++++++++++++++----------- + 1 file changed, 83 insertions(+), 17 deletions(-) + +diff --git a/spec.go b/spec.go +index a15c84e..b33e44c 100644 +--- a/spec.go ++++ b/spec.go +@@ -7,7 +7,6 @@ import ( + "fmt" + "io/ioutil" + "os" +- "runtime" + + "github.com/opencontainers/runc/libcontainer/configs" + "github.com/opencontainers/runc/libcontainer/specconv" +@@ -117,24 +116,101 @@ generate a proper rootless spec file.`, + + func sPtr(s string) *string { return &s } + ++type compatSpec struct { ++ specs.Spec ++ Linux *linux `json:"linux,omitempty" platform:"linux"` ++} ++ ++type linux struct { ++ specs.Linux ++ Resources *linuxResources `json:"resources,omitempty"` ++} ++ ++type linuxResources struct { ++ specs.LinuxResources ++ Memory *linuxMemory `json:"memory,omitempty"` ++} ++ ++type linuxMemory struct { ++ // Memory limit (in bytes). ++ Limit *int64 `json:"limit,omitempty"` ++ // Memory reservation or soft_limit (in bytes). ++ Reservation *int64 `json:"reservation,omitempty"` ++ // Total memory limit (memory + swap). ++ Swap *int64 `json:"swap,omitempty"` ++ // Kernel memory limit (in bytes). ++ Kernel *int64 `json:"kernel,omitempty"` ++ // Kernel memory limit for tcp (in bytes) ++ KernelTCP *int64 `json:"kernelTCP,omitempty"` ++ // How aggressive the kernel will swap memory pages. ++ Swappiness *uint64 `json:"swappiness,omitempty"` ++ // DisableOOMKiller disables the OOM killer for out of memory conditions ++ DisableOOMKiller *bool `json:"disableOOMKiller,omitempty"` ++} ++ + // loadSpec loads the specification from the provided path. + func loadSpec(cPath string) (spec *specs.Spec, err error) { +- cf, err := os.Open(cPath) +- if err != nil { ++ spec, err = loadOriginSpec(cPath) ++ if err != nil || spec.Linux.Resources.DisableOOMKiller == nil { ++ return loadCompactSpec(cPath) ++ } ++ ++ return spec, validateProcessSpec(&spec.Process) ++} ++ ++func loadOriginSpec(cPath string) (*specs.Spec, error) { ++ var spec specs.Spec ++ if _, err := os.Stat(cPath); err != nil { + if os.IsNotExist(err) { + return nil, fmt.Errorf("JSON specification file %s not found", cPath) + } + return nil, err + } +- defer cf.Close() + +- if err = json.NewDecoder(cf).Decode(&spec); err != nil { ++ cData, err := ioutil.ReadFile(cPath) ++ if err != nil { ++ return nil, err ++ } ++ if err := json.Unmarshal(cData, &spec); err != nil { ++ return nil, fmt.Errorf("config.json %q error :%v", cPath, err) ++ } ++ ++ return &spec, nil ++} ++ ++func loadCompactSpec(cPath string) (*specs.Spec, error) { ++ var compatSpec compatSpec ++ cData, err := ioutil.ReadFile(cPath) ++ if err != nil { ++ if os.IsNotExist(err) { ++ return nil, fmt.Errorf("JSON specification file %s not found", cPath) ++ } + return nil, err + } +- if err = validatePlatform(&spec.Platform); err != nil { ++ if err := json.Unmarshal(cData, &compatSpec); err != nil { ++ return nil, fmt.Errorf("config.json %q error :%v", cPath, err) ++ } ++ ++ var spec *specs.Spec ++ if spec, err = updateCompactSpec(&compatSpec); err != nil { + return nil, err + } +- return spec, validateProcessSpec(&spec.Process) ++ ++ return spec, nil ++ ++} ++ ++func updateCompactSpec(compatSpec *compatSpec) (*specs.Spec, error) { ++ compatjson, _ := json.Marshal(compatSpec) ++ var spec specs.Spec ++ err := json.Unmarshal(compatjson, &spec) ++ if err != nil { ++ return nil, fmt.Errorf("update config failed %v", err) ++ } ++ ++ spec.Linux.Resources.DisableOOMKiller = compatSpec.Linux.Resources.Memory.DisableOOMKiller ++ ++ return &spec, nil + } + + func createLibContainerRlimit(rlimit specs.LinuxRlimit) (configs.Rlimit, error) { +@@ -148,13 +224,3 @@ func createLibContainerRlimit(rlimit specs.LinuxRlimit) (configs.Rlimit, error) + Soft: rlimit.Soft, + }, nil + } +- +-func validatePlatform(platform *specs.Platform) error { +- if platform.OS != runtime.GOOS { +- return fmt.Errorf("target os %s mismatch with current os %s", platform.OS, runtime.GOOS) +- } +- if platform.Arch != runtime.GOARCH { +- return fmt.Errorf("target arch %s mismatch with current arch %s", platform.Arch, runtime.GOARCH) +- } +- return nil +-} +-- +2.7.4.3 + diff --git a/patch/0082-runc-make-runc-spec-and-docker-18.9-compati.patch b/patch/0082-runc-make-runc-spec-and-docker-18.9-compati.patch new file mode 100644 index 0000000..5e02756 --- /dev/null +++ b/patch/0082-runc-make-runc-spec-and-docker-18.9-compati.patch @@ -0,0 +1,118 @@ +From e8e1ec218358495648893370e19eec093681766d Mon Sep 17 00:00:00 2001 +From: leizhongkai +Date: Thu, 24 Jan 2019 20:18:14 +0800 +Subject: [PATCH 82/94] runc: make runc spec and docker-18.9 + compatible + +reason:make runc spec and docker-18.9 compatible + +Change-Id: I794c936579a4decc1d0cd92e3483c6378dba5bfd +Signed-off-by: leizhongkai +--- + spec.go | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 75 insertions(+), 1 deletion(-) + +diff --git a/spec.go b/spec.go +index b33e44c..0bbe967 100644 +--- a/spec.go ++++ b/spec.go +@@ -121,6 +121,30 @@ type compatSpec struct { + Linux *linux `json:"linux,omitempty" platform:"linux"` + } + ++// linuxBlockIODevice holds major:minor format supported in blkio cgroup ++type linuxBlockIODevice struct { ++ // Major is the device's major number. ++ Major int64 `json:"major"` ++ // Minor is the device's minor number. ++ Minor int64 `json:"minor"` ++} ++ ++// LinuxWeightDevice struct holds a `major:minor weight` pair for blkioWeightDevice ++type LinuxWeightDevice struct { ++ linuxBlockIODevice ++ // Weight is the bandwidth rate for the device, range is from 10 to 1000 ++ Weight *uint16 `json:"weight,omitempty"` ++ // LeafWeight is the bandwidth rate for the device while competing with the cgroup's child cgroups, range is from 10 to 1000, CFQ scheduler only ++ LeafWeight *uint16 `json:"leafWeight,omitempty"` ++} ++ ++// LinuxThrottleDevice struct holds a `major:minor rate_per_second` pair ++type LinuxThrottleDevice struct { ++ linuxBlockIODevice ++ // Rate is the IO rate limit per cgroup per device ++ Rate uint64 `json:"rate"` ++} ++ + type linux struct { + specs.Linux + Resources *linuxResources `json:"resources,omitempty"` +@@ -128,7 +152,26 @@ type linux struct { + + type linuxResources struct { + specs.LinuxResources +- Memory *linuxMemory `json:"memory,omitempty"` ++ Memory *linuxMemory `json:"memory,omitempty"` ++ BlockIO *LinuxBlockIO `json:"blockIO,omitempty"` ++} ++ ++// LinuxBlockIO for Linux cgroup 'blkio' resource management ++type LinuxBlockIO struct { ++ // Specifies per cgroup weight ++ Weight *uint16 `json:"weight,omitempty"` ++ // Specifies tasks' weight in the given cgroup while competing with the cgroup's child cgroups, CFQ scheduler only ++ LeafWeight *uint16 `json:"leafWeight,omitempty"` ++ // Weight per cgroup per device, can override BlkioWeight ++ WeightDevice []LinuxWeightDevice `json:"weightDevice,omitempty"` ++ // IO read rate limit per cgroup per device, bytes per second ++ ThrottleReadBpsDevice []LinuxThrottleDevice `json:"throttleReadBpsDevice,omitempty"` ++ // IO write rate limit per cgroup per device, bytes per second ++ ThrottleWriteBpsDevice []LinuxThrottleDevice `json:"throttleWriteBpsDevice,omitempty"` ++ // IO read rate limit per cgroup per device, IO per second ++ ThrottleReadIOPSDevice []LinuxThrottleDevice `json:"throttleReadIOPSDevice,omitempty"` ++ // IO write rate limit per cgroup per device, IO per second ++ ThrottleWriteIOPSDevice []LinuxThrottleDevice `json:"throttleWriteIOPSDevice,omitempty"` + } + + type linuxMemory struct { +@@ -209,6 +252,37 @@ func updateCompactSpec(compatSpec *compatSpec) (*specs.Spec, error) { + } + + spec.Linux.Resources.DisableOOMKiller = compatSpec.Linux.Resources.Memory.DisableOOMKiller ++ if compatSpec.Linux.Resources.BlockIO != nil { ++ spec.Linux.Resources.BlockIO.Weight = compatSpec.Linux.Resources.BlockIO.Weight ++ spec.Linux.Resources.BlockIO.LeafWeight = compatSpec.Linux.Resources.BlockIO.LeafWeight ++ if compatSpec.Linux.Resources.BlockIO.WeightDevice != nil { ++ for _, wd := range compatSpec.Linux.Resources.BlockIO.WeightDevice { ++ wdSpec := specs.LinuxWeightDevice{ ++ Weight: wd.Weight, ++ LeafWeight: wd.LeafWeight, ++ } ++ wdSpec.Major = wd.Major ++ wdSpec.Minor = wd.Minor ++ spec.Linux.Resources.BlockIO.WeightDevice = append(spec.Linux.Resources.BlockIO.WeightDevice, wdSpec) ++ } ++ } ++ procLinuxThrottleDevice := func(src []LinuxThrottleDevice, dest *[]specs.LinuxThrottleDevice) { ++ if src != nil { ++ for _, ltd := range src { ++ ltdSpec := specs.LinuxThrottleDevice{ ++ Rate: ltd.Rate, ++ } ++ ltdSpec.Major = ltd.Major ++ ltdSpec.Minor = ltd.Minor ++ *dest = append(*dest, ltdSpec) ++ } ++ } ++ } ++ procLinuxThrottleDevice(compatSpec.Linux.Resources.BlockIO.ThrottleReadBpsDevice, &spec.Linux.Resources.BlockIO.ThrottleReadBpsDevice) ++ procLinuxThrottleDevice(compatSpec.Linux.Resources.BlockIO.ThrottleWriteBpsDevice, &spec.Linux.Resources.BlockIO.ThrottleWriteBpsDevice) ++ procLinuxThrottleDevice(compatSpec.Linux.Resources.BlockIO.ThrottleReadIOPSDevice, &spec.Linux.Resources.BlockIO.ThrottleReadIOPSDevice) ++ procLinuxThrottleDevice(compatSpec.Linux.Resources.BlockIO.ThrottleWriteIOPSDevice, &spec.Linux.Resources.BlockIO.ThrottleWriteIOPSDevice) ++ } + + return &spec, nil + } +-- +2.7.4.3 + diff --git a/patch/0083-log-fix-runc-log-decode-failed.patch b/patch/0083-log-fix-runc-log-decode-failed.patch new file mode 100644 index 0000000..3403407 --- /dev/null +++ b/patch/0083-log-fix-runc-log-decode-failed.patch @@ -0,0 +1,74 @@ +From 52e08b0e3d4e44d555efde15a4ab698500d060db Mon Sep 17 00:00:00 2001 +From: jingrui +Date: Tue, 15 Jan 2019 15:16:54 +0800 +Subject: [PATCH 83/94] log: fix runc log decode failed + +reason: plain logs can not parsed by containerd, using json formatted +error logs. + +Change-Id: I293454c038c3b4f36a8ac9df07fc3557c51179e1 +Signed-off-by: jingrui +--- + main.go | 30 +++++++++++++++++++++++++----- + 1 file changed, 25 insertions(+), 5 deletions(-) + +diff --git a/main.go b/main.go +index 5f0ec91..0476242 100644 +--- a/main.go ++++ b/main.go +@@ -1,15 +1,18 @@ + package main + + import ( ++ "encoding/json" + "fmt" +- "github.com/Sirupsen/logrus" +- "github.com/Sirupsen/logrus/hooks/syslog" +- "github.com/opencontainers/runtime-spec/specs-go" +- "github.com/urfave/cli" + "io" + "log/syslog" + "os" + "strings" ++ "time" ++ ++ "github.com/Sirupsen/logrus" ++ "github.com/Sirupsen/logrus/hooks/syslog" ++ "github.com/opencontainers/runtime-spec/specs-go" ++ "github.com/urfave/cli" + ) + + // version will be populated by the Makefile, read from +@@ -123,7 +126,7 @@ func main() { + logrus.SetOutput(f) + hook, serr := logrus_syslog.NewSyslogHook("", "", syslog.LOG_INFO|syslog.LOG_USER, "docker-runc") + if serr != nil { +- fmt.Fprint(f, fmt.Sprintf("new syslog hook get %s", serr)) ++ logToFile(f, "error", fmt.Sprintf("new syslog hook get %s", serr)) + } else { + logrus.AddHook(hook) + } +@@ -167,3 +170,20 @@ func (f *FatalWriter) Write(p []byte) (n int, err error) { + logrus.Error(string(p)) + return f.cliErrWriter.Write(p) + } ++ ++func logToFile(f io.Writer, level string, msg string) { ++ var ( ++ log struct { ++ Level string ++ Msg string ++ Time time.Time ++ } ++ ) ++ log.Level = level ++ log.Msg = msg ++ log.Time = time.Now() ++ s, err := json.Marshal(log) ++ if err != nil { ++ fmt.Fprint(f, string(s)) ++ } ++} +-- +2.7.4.3 + diff --git a/patch/0084-oci-fix-runc-panic-and-support-oom-score.patch b/patch/0084-oci-fix-runc-panic-and-support-oom-score.patch new file mode 100644 index 0000000..a522917 --- /dev/null +++ b/patch/0084-oci-fix-runc-panic-and-support-oom-score.patch @@ -0,0 +1,108 @@ +From 19106da5ad20c3b46888a75b08c00d0b0b12e13b Mon Sep 17 00:00:00 2001 +From: jingrui +Date: Wed, 23 Jan 2019 22:40:51 +0800 +Subject: [PATCH 84/94] oci: fix runc panic and support oom score + +reason: see below. + +1. docker plugin using simple spec, should add more check to avoid runc + panic. +2. add oom-score support. + +Change-Id: I0999c8f61209e8127390508577034446d9ae1b4f +Signed-off-by: jingrui +--- + script/runc-euleros.spec | 2 +- + spec.go | 39 ++++++++++++++++++++++++++++++++++++--- + 2 files changed, 37 insertions(+), 4 deletions(-) + +diff --git a/script/runc-euleros.spec b/script/runc-euleros.spec +index faccbf6..bcbcff1 100644 +--- a/script/runc-euleros.spec ++++ b/script/runc-euleros.spec +@@ -2,7 +2,7 @@ + + Name: docker-runc + Version: 1.0.0.rc3 +-Release: 17%{?dist} ++Release: 18%{?dist} + Summary: runc is a CLI tool for spawning and running containers according to the OCF specification + + License: ASL 2.0 +diff --git a/spec.go b/spec.go +index 0bbe967..3b90791 100644 +--- a/spec.go ++++ b/spec.go +@@ -118,7 +118,8 @@ func sPtr(s string) *string { return &s } + + type compatSpec struct { + specs.Spec +- Linux *linux `json:"linux,omitempty" platform:"linux"` ++ Linux *linux `json:"linux,omitempty" platform:"linux"` ++ Process processRc6 `json:"process"` + } + + // linuxBlockIODevice holds major:minor format supported in blkio cgroup +@@ -150,6 +151,11 @@ type linux struct { + Resources *linuxResources `json:"resources,omitempty"` + } + ++type processRc6 struct { ++ specs.Process ++ OOMScoreAdj *int `json:"oomScoreAdj,omitempty" platform:"linux"` ++} ++ + type linuxResources struct { + specs.LinuxResources + Memory *linuxMemory `json:"memory,omitempty"` +@@ -191,10 +197,26 @@ type linuxMemory struct { + DisableOOMKiller *bool `json:"disableOOMKiller,omitempty"` + } + ++func versionRc6Plus(ver string) bool { ++ if len(ver) < 5 { // version should be a.b.c[-rcn][x] ++ return false ++ } ++ ++ // docker-18.09 1.0.1 ++ if ver[:5] >= "1.0.1" { ++ return true ++ } ++ ++ // TODO: add more version detect, support ab.cd.ef format. ++ ++ // < 1.0.0-rc6: include 1.0.0-rc5xxx ++ return false ++} ++ + // loadSpec loads the specification from the provided path. + func loadSpec(cPath string) (spec *specs.Spec, err error) { + spec, err = loadOriginSpec(cPath) +- if err != nil || spec.Linux.Resources.DisableOOMKiller == nil { ++ if err != nil || versionRc6Plus(spec.Version) { + return loadCompactSpec(cPath) + } + +@@ -251,7 +273,18 @@ func updateCompactSpec(compatSpec *compatSpec) (*specs.Spec, error) { + return nil, fmt.Errorf("update config failed %v", err) + } + +- spec.Linux.Resources.DisableOOMKiller = compatSpec.Linux.Resources.Memory.DisableOOMKiller ++ if compatSpec != nil && compatSpec.Linux != nil && ++ compatSpec.Linux.Resources != nil && ++ compatSpec.Linux.Resources.Memory != nil && ++ compatSpec.Linux.Resources.Memory.DisableOOMKiller != nil { ++ spec.Linux.Resources.DisableOOMKiller = compatSpec.Linux.Resources.Memory.DisableOOMKiller ++ } ++ ++ if compatSpec != nil && compatSpec.Process.OOMScoreAdj != nil && ++ spec.Linux != nil && spec.Linux.Resources != nil { ++ spec.Linux.Resources.OOMScoreAdj = compatSpec.Process.OOMScoreAdj ++ } ++ + if compatSpec.Linux.Resources.BlockIO != nil { + spec.Linux.Resources.BlockIO.Weight = compatSpec.Linux.Resources.BlockIO.Weight + spec.Linux.Resources.BlockIO.LeafWeight = compatSpec.Linux.Resources.BlockIO.LeafWeight +-- +2.7.4.3 + diff --git a/patch/0085-runc-do-not-setup-sysctl-in-runc-when-userns-.patch b/patch/0085-runc-do-not-setup-sysctl-in-runc-when-userns-.patch new file mode 100644 index 0000000..3ad4aec --- /dev/null +++ b/patch/0085-runc-do-not-setup-sysctl-in-runc-when-userns-.patch @@ -0,0 +1,40 @@ +From 9421de9838d904c5eea40f0bd0cd50a00157392f Mon Sep 17 00:00:00 2001 +From: zhangsong34 +Date: Mon, 5 Mar 2018 21:15:15 +0800 +Subject: [PATCH 85/94] runc: do not setup sysctl in runc when userns + enabled + +reason:when userns enabled, runc will run as normal user, it has +no rights to setup sysctl even the ipcns sysctl. let docker-hooks do this job. + +Change-Id: Ia77b8c1bf4255973736f04c0962eae722ed9683e +Signed-off-by: gus.gao +Signed-off-by: zhangsong34 +--- + libcontainer/standard_init_linux.go | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/libcontainer/standard_init_linux.go b/libcontainer/standard_init_linux.go +index 18506af..fd836f3 100644 +--- a/libcontainer/standard_init_linux.go ++++ b/libcontainer/standard_init_linux.go +@@ -107,10 +107,12 @@ func (l *linuxStandardInit) Init() error { + if err := label.SetProcessLabel(l.config.ProcessLabel); err != nil { + return err + } +- +- for key, value := range l.config.Config.Sysctl { +- if err := writeSystemProperty(key, value); err != nil { +- return err ++ // when userns enabled, write to sysctl will fail, let docker-hooks do this job ++ if len(l.config.Config.UidMappings) == 0 && len(l.config.Config.GidMappings) == 0 { ++ for key, value := range l.config.Config.Sysctl { ++ if err := writeSystemProperty(key, value); err != nil { ++ return err ++ } + } + } + for _, path := range l.config.Config.ReadonlyPaths { +-- +2.7.4.3 + diff --git a/patch/0086-runc-support-set-seccomp-priority.patch b/patch/0086-runc-support-set-seccomp-priority.patch new file mode 100644 index 0000000..0d3929d --- /dev/null +++ b/patch/0086-runc-support-set-seccomp-priority.patch @@ -0,0 +1,68 @@ +From f0cff0f9ff831b2380d6907ac1b640eb998c4d88 Mon Sep 17 00:00:00 2001 +From: zhangsong34 +Date: Wed, 30 Jan 2019 15:33:44 +0800 +Subject: [PATCH 86/94] runc: support set seccomp priority + +reason:support set seccomp priority + +Change-Id: I73ea0ca4ce5dc7af975c62b56edbae03f9721e76 +Signed-off-by: gus.gao +Signed-off-by: zhangsong34 +--- + libcontainer/configs/config.go | 7 ++++--- + libcontainer/seccomp/seccomp_linux.go | 2 +- + libcontainer/specconv/spec_linux.go | 7 ++++--- + 3 files changed, 9 insertions(+), 7 deletions(-) + +diff --git a/libcontainer/configs/config.go b/libcontainer/configs/config.go +index 78a7d1d..9074c86 100644 +--- a/libcontainer/configs/config.go ++++ b/libcontainer/configs/config.go +@@ -76,9 +76,10 @@ type Arg struct { + + // Syscall is a rule to match a syscall in Seccomp + type Syscall struct { +- Name string `json:"name"` +- Action Action `json:"action"` +- Args []*Arg `json:"args"` ++ Name string `json:"name"` ++ Action Action `json:"action"` ++ Priority uint8 `json:"priority,omitempty"` ++ Args []*Arg `json:"args"` + } + + // TODO Windows. Many of these fields should be factored out into those parts +diff --git a/libcontainer/seccomp/seccomp_linux.go b/libcontainer/seccomp/seccomp_linux.go +index 518d2c3..db4bb4e 100644 +--- a/libcontainer/seccomp/seccomp_linux.go ++++ b/libcontainer/seccomp/seccomp_linux.go +@@ -198,7 +198,7 @@ func matchCall(filter *libseccomp.ScmpFilter, call *configs.Syscall) error { + } + } + +- return nil ++ return filter.SetSyscallPriority(callNum, call.Priority) + } + + func parseStatusFile(path string) (map[string]string, error) { +diff --git a/libcontainer/specconv/spec_linux.go b/libcontainer/specconv/spec_linux.go +index a8cf114..8c4567c 100644 +--- a/libcontainer/specconv/spec_linux.go ++++ b/libcontainer/specconv/spec_linux.go +@@ -757,9 +757,10 @@ func setupSeccomp(config *specs.LinuxSeccomp) (*configs.Seccomp, error) { + + for _, name := range call.Names { + newCall := configs.Syscall{ +- Name: name, +- Action: newAction, +- Args: []*configs.Arg{}, ++ Name: name, ++ Action: newAction, ++ Priority: call.Priority, ++ Args: []*configs.Arg{}, + } + // Loop through all the arguments of the syscall and convert them + for _, arg := range call.Args { +-- +2.7.4.3 + diff --git a/patch/0087-runc-fix-spec-LinuxSyscall-struct.patch b/patch/0087-runc-fix-spec-LinuxSyscall-struct.patch new file mode 100644 index 0000000..8948d51 --- /dev/null +++ b/patch/0087-runc-fix-spec-LinuxSyscall-struct.patch @@ -0,0 +1,48 @@ +From 23829a0c51a77222c842b0a1d277e4738ad22942 Mon Sep 17 00:00:00 2001 +From: zhangsong34 +Date: Sun, 3 Feb 2019 09:26:44 +0800 +Subject: [PATCH 87/94] runc: fix spec LinuxSyscall struct + +reason:fix spec LinuxSyscall struct + +Change-Id: Iab6d095b43c062ad72aad8f7f1f9206f46a4f88d +Signed-off-by: zhangsong34 +--- + script/runc-euleros.spec | 2 +- + vendor/github.com/opencontainers/runtime-spec/specs-go/config.go | 9 +++++---- + 2 files changed, 6 insertions(+), 5 deletions(-) + +diff --git a/script/runc-euleros.spec b/script/runc-euleros.spec +index bcbcff1..b3db2ab 100644 +--- a/script/runc-euleros.spec ++++ b/script/runc-euleros.spec +@@ -2,7 +2,7 @@ + + Name: docker-runc + Version: 1.0.0.rc3 +-Release: 18%{?dist} ++Release: 19%{?dist} + Summary: runc is a CLI tool for spawning and running containers according to the OCF specification + + License: ASL 2.0 +diff --git a/vendor/github.com/opencontainers/runtime-spec/specs-go/config.go b/vendor/github.com/opencontainers/runtime-spec/specs-go/config.go +index 603ecf4..8439744 100644 +--- a/vendor/github.com/opencontainers/runtime-spec/specs-go/config.go ++++ b/vendor/github.com/opencontainers/runtime-spec/specs-go/config.go +@@ -554,8 +554,9 @@ type LinuxSeccompArg struct { + + // LinuxSyscall is used to match a syscall in Seccomp + type LinuxSyscall struct { +- Names []string `json:"names"` +- Action LinuxSeccompAction `json:"action"` +- Args []LinuxSeccompArg `json:"args"` +- Comment string `json:"comment"` ++ Names []string `json:"names"` ++ Action LinuxSeccompAction `json:"action"` ++ Priority uint8 `json:"priority,omitempty"` ++ Args []LinuxSeccompArg `json:"args"` ++ Comment string `json:"comment"` + } +-- +2.7.4.3 + diff --git a/patch/0088-nsenter-clone-proc-self-exe-to-avoid-exposi.patch b/patch/0088-nsenter-clone-proc-self-exe-to-avoid-exposi.patch new file mode 100644 index 0000000..92e0060 --- /dev/null +++ b/patch/0088-nsenter-clone-proc-self-exe-to-avoid-exposi.patch @@ -0,0 +1,306 @@ +From 55dc2797a066480f836baf541a9ab858d9999421 Mon Sep 17 00:00:00 2001 +From: lujingxiao +Date: Mon, 28 Jan 2019 22:12:18 +0800 +Subject: [PATCH 88/94] nsenter: clone /proc/self/exe to avoid + exposing host binary to container + +reason: There are quite a few circumstances where /proc/self/exe pointing to a +pretty important container binary is a _bad_ thing, so to avoid this we +have to make a copy (preferably doing self-clean-up and not being +writeable). + +As a hotfix we require memfd_create(2), but we can always extend this to +use a scratch MNT_DETACH overlayfs or tmpfs. The main downside to this +approach is no page-cache sharing for the runc binary (which overlayfs +would give us) but this is far less complicated. + +This is only done during nsenter so that it happens transparently to the +Go code, and any libcontainer users benefit from it. This also makes +ExtraFiles and --preserve-fds handling trivial (because we don't need to +worry about it). + +Fixes: CVE-2019-5736 +Signed-off-by: Aleksa Sarai + +Change-Id: Id54b4827173affa0f2063eef4159c87343f4d672 +Signed-off-by: lujingxiao +--- + libcontainer/nsenter/cloned_binary.c | 236 +++++++++++++++++++++++++++++++++++ + libcontainer/nsenter/nsexec.c | 11 ++ + 2 files changed, 247 insertions(+) + create mode 100644 libcontainer/nsenter/cloned_binary.c + +diff --git a/libcontainer/nsenter/cloned_binary.c b/libcontainer/nsenter/cloned_binary.c +new file mode 100644 +index 0000000..ec383c1 +--- /dev/null ++++ b/libcontainer/nsenter/cloned_binary.c +@@ -0,0 +1,236 @@ ++#define _GNU_SOURCE ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++#define MEMFD_COMMENT "runc_cloned:/proc/self/exe" ++#define MEMFD_LNKNAME "/memfd:" MEMFD_COMMENT " (deleted)" ++ ++/* Use our own wrapper for memfd_create. */ ++#if !defined(SYS_memfd_create) && defined(__NR_memfd_create) ++# define SYS_memfd_create __NR_memfd_create ++#endif ++#ifndef SYS_memfd_create ++# error "memfd_create(2) syscall not supported by this glibc version" ++#endif ++int memfd_create(const char *name, unsigned int flags) ++{ ++ return syscall(SYS_memfd_create, name, flags); ++} ++ ++/* This comes directly from . */ ++#ifndef F_LINUX_SPECIFIC_BASE ++# define F_LINUX_SPECIFIC_BASE 1024 ++#endif ++#ifndef F_ADD_SEALS ++# define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9) ++# define F_GET_SEALS (F_LINUX_SPECIFIC_BASE + 10) ++#endif ++#ifndef F_SEAL_SEAL ++# define F_SEAL_SEAL 0x0001 /* prevent further seals from being set */ ++# define F_SEAL_SHRINK 0x0002 /* prevent file from shrinking */ ++# define F_SEAL_GROW 0x0004 /* prevent file from growing */ ++# define F_SEAL_WRITE 0x0008 /* prevent writes */ ++#endif ++ ++/* ++ * Verify whether we are currently in a self-cloned program. It's not really ++ * possible to trivially identify a memfd compared to a regular tmpfs file, so ++ * the best we can do is to check whether the readlink(2) looks okay and that ++ * it is on a tmpfs. ++ */ ++static int is_self_cloned(void) ++{ ++ struct statfs statfsbuf = {0}; ++ char linkname[PATH_MAX + 1] = {0}; ++ ++ if (statfs("/proc/self/exe", &statfsbuf) < 0) ++ return -1; ++ if (readlink("/proc/self/exe", linkname, PATH_MAX) < 0) ++ return -1; ++ ++ return statfsbuf.f_type == TMPFS_MAGIC && ++ !strncmp(linkname, MEMFD_LNKNAME, PATH_MAX); ++} ++ ++/* ++ * Basic wrapper around mmap(2) that gives you the file length so you can ++ * safely treat it as an ordinary buffer. Only gives you read access. ++ */ ++static char *read_file(char *path, size_t *length) ++{ ++ int fd; ++ char buf[4096], *copy = NULL; ++ ++ if (!length) ++ goto err; ++ *length = 0; ++ ++ fd = open(path, O_RDONLY|O_CLOEXEC); ++ if (fd < 0) ++ goto err_free; ++ ++ for (;;) { ++ int n; ++ char *old = copy; ++ ++ n = read(fd, buf, sizeof(buf)); ++ if (n < 0) ++ goto err_fd; ++ if (!n) ++ break; ++ ++ do { ++ copy = realloc(old, (*length + n) * sizeof(*old)); ++ } while(!copy); ++ ++ memcpy(copy + *length, buf, n); ++ *length += n; ++ } ++ close(fd); ++ return copy; ++ ++err_fd: ++ close(fd); ++err_free: ++ free(copy); ++err: ++ return NULL; ++} ++ ++/* ++ * A poor-man's version of "xargs -0". Basically parses a given block of ++ * NUL-delimited data, within the given length and adds a pointer to each entry ++ * to the array of pointers. ++ */ ++static int parse_xargs(char *data, int data_length, char ***output) ++{ ++ int num = 0; ++ char *cur = data; ++ ++ if (!data || *output) ++ return -1; ++ ++ do { ++ *output = malloc(sizeof(**output)); ++ } while (!*output); ++ ++ while (cur < data + data_length) { ++ char **old = *output; ++ ++ num++; ++ do { ++ *output = realloc(old, (num + 1) * sizeof(*old)); ++ } while (!*output); ++ ++ (*output)[num - 1] = cur; ++ cur += strlen(cur) + 1; ++ } ++ (*output)[num] = NULL; ++ return num; ++} ++ ++/* ++ * "Parse" out argv and envp from /proc/self/cmdline and /proc/self/environ. ++ * This is necessary because we are running in a context where we don't have a ++ * main() that we can just get the arguments from. ++ */ ++static int fetchve(char ***argv, char ***envp) ++{ ++ char *cmdline, *environ; ++ size_t cmdline_size, environ_size; ++ ++ cmdline = read_file("/proc/self/cmdline", &cmdline_size); ++ if (!cmdline) ++ goto err; ++ environ = read_file("/proc/self/environ", &environ_size); ++ if (!environ) ++ goto err_free; ++ ++ if (parse_xargs(cmdline, cmdline_size, argv) <= 0) ++ goto err_free_both; ++ if (parse_xargs(environ, environ_size, envp) <= 0) ++ goto err_free_both; ++ ++ return 0; ++ ++err_free_both: ++ free(environ); ++err_free: ++ free(cmdline); ++err: ++ return -1; ++} ++ ++static int clone_binary(void) ++{ ++ int binfd, memfd, err; ++ ssize_t sent = 0; ++ struct stat statbuf = {0}; ++ ++ binfd = open("/proc/self/exe", O_RDONLY|O_CLOEXEC); ++ if (binfd < 0) ++ goto err; ++ if (fstat(binfd, &statbuf) < 0) ++ goto err_binfd; ++ ++ memfd = memfd_create(MEMFD_COMMENT, MFD_CLOEXEC|MFD_ALLOW_SEALING); ++ if (memfd < 0) ++ goto err_binfd; ++ ++ while (sent < statbuf.st_size) { ++ ssize_t n = sendfile(memfd, binfd, NULL, statbuf.st_size - sent); ++ if (n < 0) ++ goto err_memfd; ++ sent += n; ++ } ++ ++ err = fcntl(memfd, F_ADD_SEALS, F_SEAL_SHRINK|F_SEAL_GROW|F_SEAL_WRITE|F_SEAL_SEAL); ++ if (err < 0) ++ goto err_memfd; ++ ++ close(binfd); ++ return memfd; ++ ++err_memfd: ++ close(memfd); ++err_binfd: ++ close(binfd); ++err: ++ return -1; ++} ++ ++int ensure_cloned_binary(void) ++{ ++ int execfd; ++ char **argv = NULL, **envp = NULL; ++ ++ /* Check that we're not self-cloned, and if we are then bail. */ ++ int cloned = is_self_cloned(); ++ if (cloned != 0) ++ return cloned; ++ ++ if (fetchve(&argv, &envp) < 0) ++ return -1; ++ ++ execfd = clone_binary(); ++ if (execfd < 0) ++ return -1; ++ ++ fexecve(execfd, argv, envp); ++ return -1; ++} +diff --git a/libcontainer/nsenter/nsexec.c b/libcontainer/nsenter/nsexec.c +index 0ad6883..75211c8 100644 +--- a/libcontainer/nsenter/nsexec.c ++++ b/libcontainer/nsenter/nsexec.c +@@ -432,6 +432,9 @@ void join_namespaces(char *nslist) + free(namespaces); + } + ++/* Defined in cloned_binary.c. */ ++int ensure_cloned_binary(void); ++ + void nsexec(void) + { + int pipenum; +@@ -447,6 +450,14 @@ void nsexec(void) + if (pipenum == -1) + return; + ++ /* ++ * We need to re-exec if we are not in a cloned binary. This is necessary ++ * to ensure that containers won't be able to access the host binary ++ * through /proc/self/exe. See CVE-2019-5736. ++ */ ++ if (ensure_cloned_binary() < 0) ++ bail("could not ensure we are a cloned binary"); ++ + /* Parse all of the netlink configuration. */ + nl_parse(pipenum, &config); + +-- +2.7.4.3 + diff --git a/patch/0089-Revert-nsenter-clone-proc-self-exe-to-avoid.patch b/patch/0089-Revert-nsenter-clone-proc-self-exe-to-avoid.patch new file mode 100644 index 0000000..f374607 --- /dev/null +++ b/patch/0089-Revert-nsenter-clone-proc-self-exe-to-avoid.patch @@ -0,0 +1,294 @@ +From eb6c73cc11d6f8da5f19ef6d0794c41374dbfae4 Mon Sep 17 00:00:00 2001 +From: lujingxiao +Date: Tue, 12 Feb 2019 19:07:09 +0800 +Subject: [PATCH 89/94] Revert "nsenter: clone /proc/self/exe to + avoid exposing host binary to container" + +reason: This reverts commit 275c8d34e6a6fa915ea4a4e47c45ce4c246a2410. +The origin patch is from discussion email, it is the early version, +which is different with the upstream: +https://github.com/opencontainers/runc/commit/0a8e4117e7f715d5fbeef398405813ce8e88558b +So revert this patch, and recommit with newer patch + +Change-Id: Idb9250ce6dc86bd1a7640015b746c7afe8b03f49 +Signed-off-by: lujingxiao +--- + libcontainer/nsenter/cloned_binary.c | 236 ----------------------------------- + libcontainer/nsenter/nsexec.c | 11 -- + 2 files changed, 247 deletions(-) + delete mode 100644 libcontainer/nsenter/cloned_binary.c + +diff --git a/libcontainer/nsenter/cloned_binary.c b/libcontainer/nsenter/cloned_binary.c +deleted file mode 100644 +index ec383c1..0000000 +--- a/libcontainer/nsenter/cloned_binary.c ++++ /dev/null +@@ -1,236 +0,0 @@ +-#define _GNU_SOURCE +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-#include +-#include +-#include +-#include +-#include +-#include +- +-#include +-#include +- +-#define MEMFD_COMMENT "runc_cloned:/proc/self/exe" +-#define MEMFD_LNKNAME "/memfd:" MEMFD_COMMENT " (deleted)" +- +-/* Use our own wrapper for memfd_create. */ +-#if !defined(SYS_memfd_create) && defined(__NR_memfd_create) +-# define SYS_memfd_create __NR_memfd_create +-#endif +-#ifndef SYS_memfd_create +-# error "memfd_create(2) syscall not supported by this glibc version" +-#endif +-int memfd_create(const char *name, unsigned int flags) +-{ +- return syscall(SYS_memfd_create, name, flags); +-} +- +-/* This comes directly from . */ +-#ifndef F_LINUX_SPECIFIC_BASE +-# define F_LINUX_SPECIFIC_BASE 1024 +-#endif +-#ifndef F_ADD_SEALS +-# define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9) +-# define F_GET_SEALS (F_LINUX_SPECIFIC_BASE + 10) +-#endif +-#ifndef F_SEAL_SEAL +-# define F_SEAL_SEAL 0x0001 /* prevent further seals from being set */ +-# define F_SEAL_SHRINK 0x0002 /* prevent file from shrinking */ +-# define F_SEAL_GROW 0x0004 /* prevent file from growing */ +-# define F_SEAL_WRITE 0x0008 /* prevent writes */ +-#endif +- +-/* +- * Verify whether we are currently in a self-cloned program. It's not really +- * possible to trivially identify a memfd compared to a regular tmpfs file, so +- * the best we can do is to check whether the readlink(2) looks okay and that +- * it is on a tmpfs. +- */ +-static int is_self_cloned(void) +-{ +- struct statfs statfsbuf = {0}; +- char linkname[PATH_MAX + 1] = {0}; +- +- if (statfs("/proc/self/exe", &statfsbuf) < 0) +- return -1; +- if (readlink("/proc/self/exe", linkname, PATH_MAX) < 0) +- return -1; +- +- return statfsbuf.f_type == TMPFS_MAGIC && +- !strncmp(linkname, MEMFD_LNKNAME, PATH_MAX); +-} +- +-/* +- * Basic wrapper around mmap(2) that gives you the file length so you can +- * safely treat it as an ordinary buffer. Only gives you read access. +- */ +-static char *read_file(char *path, size_t *length) +-{ +- int fd; +- char buf[4096], *copy = NULL; +- +- if (!length) +- goto err; +- *length = 0; +- +- fd = open(path, O_RDONLY|O_CLOEXEC); +- if (fd < 0) +- goto err_free; +- +- for (;;) { +- int n; +- char *old = copy; +- +- n = read(fd, buf, sizeof(buf)); +- if (n < 0) +- goto err_fd; +- if (!n) +- break; +- +- do { +- copy = realloc(old, (*length + n) * sizeof(*old)); +- } while(!copy); +- +- memcpy(copy + *length, buf, n); +- *length += n; +- } +- close(fd); +- return copy; +- +-err_fd: +- close(fd); +-err_free: +- free(copy); +-err: +- return NULL; +-} +- +-/* +- * A poor-man's version of "xargs -0". Basically parses a given block of +- * NUL-delimited data, within the given length and adds a pointer to each entry +- * to the array of pointers. +- */ +-static int parse_xargs(char *data, int data_length, char ***output) +-{ +- int num = 0; +- char *cur = data; +- +- if (!data || *output) +- return -1; +- +- do { +- *output = malloc(sizeof(**output)); +- } while (!*output); +- +- while (cur < data + data_length) { +- char **old = *output; +- +- num++; +- do { +- *output = realloc(old, (num + 1) * sizeof(*old)); +- } while (!*output); +- +- (*output)[num - 1] = cur; +- cur += strlen(cur) + 1; +- } +- (*output)[num] = NULL; +- return num; +-} +- +-/* +- * "Parse" out argv and envp from /proc/self/cmdline and /proc/self/environ. +- * This is necessary because we are running in a context where we don't have a +- * main() that we can just get the arguments from. +- */ +-static int fetchve(char ***argv, char ***envp) +-{ +- char *cmdline, *environ; +- size_t cmdline_size, environ_size; +- +- cmdline = read_file("/proc/self/cmdline", &cmdline_size); +- if (!cmdline) +- goto err; +- environ = read_file("/proc/self/environ", &environ_size); +- if (!environ) +- goto err_free; +- +- if (parse_xargs(cmdline, cmdline_size, argv) <= 0) +- goto err_free_both; +- if (parse_xargs(environ, environ_size, envp) <= 0) +- goto err_free_both; +- +- return 0; +- +-err_free_both: +- free(environ); +-err_free: +- free(cmdline); +-err: +- return -1; +-} +- +-static int clone_binary(void) +-{ +- int binfd, memfd, err; +- ssize_t sent = 0; +- struct stat statbuf = {0}; +- +- binfd = open("/proc/self/exe", O_RDONLY|O_CLOEXEC); +- if (binfd < 0) +- goto err; +- if (fstat(binfd, &statbuf) < 0) +- goto err_binfd; +- +- memfd = memfd_create(MEMFD_COMMENT, MFD_CLOEXEC|MFD_ALLOW_SEALING); +- if (memfd < 0) +- goto err_binfd; +- +- while (sent < statbuf.st_size) { +- ssize_t n = sendfile(memfd, binfd, NULL, statbuf.st_size - sent); +- if (n < 0) +- goto err_memfd; +- sent += n; +- } +- +- err = fcntl(memfd, F_ADD_SEALS, F_SEAL_SHRINK|F_SEAL_GROW|F_SEAL_WRITE|F_SEAL_SEAL); +- if (err < 0) +- goto err_memfd; +- +- close(binfd); +- return memfd; +- +-err_memfd: +- close(memfd); +-err_binfd: +- close(binfd); +-err: +- return -1; +-} +- +-int ensure_cloned_binary(void) +-{ +- int execfd; +- char **argv = NULL, **envp = NULL; +- +- /* Check that we're not self-cloned, and if we are then bail. */ +- int cloned = is_self_cloned(); +- if (cloned != 0) +- return cloned; +- +- if (fetchve(&argv, &envp) < 0) +- return -1; +- +- execfd = clone_binary(); +- if (execfd < 0) +- return -1; +- +- fexecve(execfd, argv, envp); +- return -1; +-} +diff --git a/libcontainer/nsenter/nsexec.c b/libcontainer/nsenter/nsexec.c +index 75211c8..0ad6883 100644 +--- a/libcontainer/nsenter/nsexec.c ++++ b/libcontainer/nsenter/nsexec.c +@@ -432,9 +432,6 @@ void join_namespaces(char *nslist) + free(namespaces); + } + +-/* Defined in cloned_binary.c. */ +-int ensure_cloned_binary(void); +- + void nsexec(void) + { + int pipenum; +@@ -450,14 +447,6 @@ void nsexec(void) + if (pipenum == -1) + return; + +- /* +- * We need to re-exec if we are not in a cloned binary. This is necessary +- * to ensure that containers won't be able to access the host binary +- * through /proc/self/exe. See CVE-2019-5736. +- */ +- if (ensure_cloned_binary() < 0) +- bail("could not ensure we are a cloned binary"); +- + /* Parse all of the netlink configuration. */ + nl_parse(pipenum, &config); + +-- +2.7.4.3 + diff --git a/patch/0090-nsenter-clone-proc-self-exe-to-avoid-exposi.patch b/patch/0090-nsenter-clone-proc-self-exe-to-avoid-exposi.patch new file mode 100644 index 0000000..c822adb --- /dev/null +++ b/patch/0090-nsenter-clone-proc-self-exe-to-avoid-exposi.patch @@ -0,0 +1,357 @@ +From 2f3550fa67d6e2eb21276775e05ba145f8b5768b Mon Sep 17 00:00:00 2001 +From: lujingxiao +Date: Tue, 12 Feb 2019 19:15:11 +0800 +Subject: [PATCH 90/94] nsenter: clone /proc/self/exe to avoid + exposing host binary to container + +reason: There are quite a few circumstances where /proc/self/exe pointing to a +pretty important container binary is a _bad_ thing, so to avoid this we +have to make a copy (preferably doing self-clean-up and not being +writeable). + +We require memfd_create(2) -- though there is an O_TMPFILE fallback -- +but we can always extend this to use a scratch MNT_DETACH overlayfs or +tmpfs. The main downside to this approach is no page-cache sharing for +the runc binary (which overlayfs would give us) but this is far less +complicated. + +This is only done during nsenter so that it happens transparently to the +Go code, and any libcontainer users benefit from it. This also makes +ExtraFiles and --preserve-fds handling trivial (because we don't need to +worry about it). + +Fixes: CVE-2019-5736 +Co-developed-by: Christian Brauner +Signed-off-by: Aleksa Sarai + +Recommit this patch with the upstream one: +https://github.com/opencontainers/runc/commit/0a8e4117e7f715d5fbeef398405813ce8e88558b + +Change-Id: I4d4d87d480c12a7844b9ef6bd955457cb152ba51 +Signed-off-by: lujingxiao +--- + libcontainer/nsenter/cloned_binary.c | 268 +++++++++++++++++++++++++++++++++++ + libcontainer/nsenter/nsexec.c | 11 ++ + script/runc-euleros.spec | 2 +- + 3 files changed, 280 insertions(+), 1 deletion(-) + create mode 100644 libcontainer/nsenter/cloned_binary.c + +diff --git a/libcontainer/nsenter/cloned_binary.c b/libcontainer/nsenter/cloned_binary.c +new file mode 100644 +index 0000000..c8a42c2 +--- /dev/null ++++ b/libcontainer/nsenter/cloned_binary.c +@@ -0,0 +1,268 @@ ++/* ++ * Copyright (C) 2019 Aleksa Sarai ++ * Copyright (C) 2019 SUSE LLC ++ * ++ * Licensed under the Apache License, Version 2.0 (the "License"); ++ * you may not use this file except in compliance with the License. ++ * You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, software ++ * distributed under the License is distributed on an "AS IS" BASIS, ++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++ * See the License for the specific language governing permissions and ++ * limitations under the License. ++ */ ++ ++#define _GNU_SOURCE ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++/* Use our own wrapper for memfd_create. */ ++#if !defined(SYS_memfd_create) && defined(__NR_memfd_create) ++# define SYS_memfd_create __NR_memfd_create ++#endif ++#ifdef SYS_memfd_create ++# define HAVE_MEMFD_CREATE ++/* memfd_create(2) flags -- copied from . */ ++# ifndef MFD_CLOEXEC ++# define MFD_CLOEXEC 0x0001U ++# define MFD_ALLOW_SEALING 0x0002U ++# endif ++int memfd_create(const char *name, unsigned int flags) ++{ ++ return syscall(SYS_memfd_create, name, flags); ++} ++#endif ++ ++/* This comes directly from . */ ++#ifndef F_LINUX_SPECIFIC_BASE ++# define F_LINUX_SPECIFIC_BASE 1024 ++#endif ++#ifndef F_ADD_SEALS ++# define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9) ++# define F_GET_SEALS (F_LINUX_SPECIFIC_BASE + 10) ++#endif ++#ifndef F_SEAL_SEAL ++# define F_SEAL_SEAL 0x0001 /* prevent further seals from being set */ ++# define F_SEAL_SHRINK 0x0002 /* prevent file from shrinking */ ++# define F_SEAL_GROW 0x0004 /* prevent file from growing */ ++# define F_SEAL_WRITE 0x0008 /* prevent writes */ ++#endif ++ ++#define RUNC_SENDFILE_MAX 0x7FFFF000 /* sendfile(2) is limited to 2GB. */ ++#ifdef HAVE_MEMFD_CREATE ++# define RUNC_MEMFD_COMMENT "runc_cloned:/proc/self/exe" ++# define RUNC_MEMFD_SEALS \ ++ (F_SEAL_SEAL | F_SEAL_SHRINK | F_SEAL_GROW | F_SEAL_WRITE) ++#endif ++ ++static void *must_realloc(void *ptr, size_t size) ++{ ++ void *old = ptr; ++ do { ++ ptr = realloc(old, size); ++ } while(!ptr); ++ return ptr; ++} ++ ++/* ++ * Verify whether we are currently in a self-cloned program (namely, is ++ * /proc/self/exe a memfd). F_GET_SEALS will only succeed for memfds (or rather ++ * for shmem files), and we want to be sure it's actually sealed. ++ */ ++static int is_self_cloned(void) ++{ ++ int fd, ret, is_cloned = 0; ++ ++ fd = open("/proc/self/exe", O_RDONLY|O_CLOEXEC); ++ if (fd < 0) ++ return -ENOTRECOVERABLE; ++ ++#ifdef HAVE_MEMFD_CREATE ++ ret = fcntl(fd, F_GET_SEALS); ++ is_cloned = (ret == RUNC_MEMFD_SEALS); ++#else ++ struct stat statbuf = {0}; ++ ret = fstat(fd, &statbuf); ++ if (ret >= 0) ++ is_cloned = (statbuf.st_nlink == 0); ++#endif ++ close(fd); ++ return is_cloned; ++} ++ ++/* ++ * Basic wrapper around mmap(2) that gives you the file length so you can ++ * safely treat it as an ordinary buffer. Only gives you read access. ++ */ ++static char *read_file(char *path, size_t *length) ++{ ++ int fd; ++ char buf[4096], *copy = NULL; ++ ++ if (!length) ++ return NULL; ++ ++ fd = open(path, O_RDONLY | O_CLOEXEC); ++ if (fd < 0) ++ return NULL; ++ ++ *length = 0; ++ for (;;) { ++ int n; ++ ++ n = read(fd, buf, sizeof(buf)); ++ if (n < 0) ++ goto error; ++ if (!n) ++ break; ++ ++ copy = must_realloc(copy, (*length + n) * sizeof(*copy)); ++ memcpy(copy + *length, buf, n); ++ *length += n; ++ } ++ close(fd); ++ return copy; ++ ++error: ++ close(fd); ++ free(copy); ++ return NULL; ++} ++ ++/* ++ * A poor-man's version of "xargs -0". Basically parses a given block of ++ * NUL-delimited data, within the given length and adds a pointer to each entry ++ * to the array of pointers. ++ */ ++static int parse_xargs(char *data, int data_length, char ***output) ++{ ++ int num = 0; ++ char *cur = data; ++ ++ if (!data || *output != NULL) ++ return -1; ++ ++ while (cur < data + data_length) { ++ num++; ++ *output = must_realloc(*output, (num + 1) * sizeof(**output)); ++ (*output)[num - 1] = cur; ++ cur += strlen(cur) + 1; ++ } ++ (*output)[num] = NULL; ++ return num; ++} ++ ++/* ++ * "Parse" out argv and envp from /proc/self/cmdline and /proc/self/environ. ++ * This is necessary because we are running in a context where we don't have a ++ * main() that we can just get the arguments from. ++ */ ++static int fetchve(char ***argv, char ***envp) ++{ ++ char *cmdline = NULL, *environ = NULL; ++ size_t cmdline_size, environ_size; ++ ++ cmdline = read_file("/proc/self/cmdline", &cmdline_size); ++ if (!cmdline) ++ goto error; ++ environ = read_file("/proc/self/environ", &environ_size); ++ if (!environ) ++ goto error; ++ ++ if (parse_xargs(cmdline, cmdline_size, argv) <= 0) ++ goto error; ++ if (parse_xargs(environ, environ_size, envp) <= 0) ++ goto error; ++ ++ return 0; ++ ++error: ++ free(environ); ++ free(cmdline); ++ return -EINVAL; ++} ++ ++static int clone_binary(void) ++{ ++ int binfd, memfd; ++ ssize_t sent = 0; ++ ++#ifdef HAVE_MEMFD_CREATE ++ memfd = memfd_create(RUNC_MEMFD_COMMENT, MFD_CLOEXEC | MFD_ALLOW_SEALING); ++#else ++ memfd = open("/tmp", O_TMPFILE | O_EXCL | O_RDWR | O_CLOEXEC, 0711); ++#endif ++ if (memfd < 0) ++ return -ENOTRECOVERABLE; ++ ++ binfd = open("/proc/self/exe", O_RDONLY | O_CLOEXEC); ++ if (binfd < 0) ++ goto error; ++ ++ sent = sendfile(memfd, binfd, NULL, RUNC_SENDFILE_MAX); ++ close(binfd); ++ if (sent < 0) ++ goto error; ++ ++#ifdef HAVE_MEMFD_CREATE ++ int err = fcntl(memfd, F_ADD_SEALS, RUNC_MEMFD_SEALS); ++ if (err < 0) ++ goto error; ++#else ++ /* Need to re-open "memfd" as read-only to avoid execve(2) giving -EXTBUSY. */ ++ int newfd; ++ char *fdpath = NULL; ++ ++ if (asprintf(&fdpath, "/proc/self/fd/%d", memfd) < 0) ++ goto error; ++ newfd = open(fdpath, O_RDONLY | O_CLOEXEC); ++ free(fdpath); ++ if (newfd < 0) ++ goto error; ++ ++ close(memfd); ++ memfd = newfd; ++#endif ++ return memfd; ++ ++error: ++ close(memfd); ++ return -EIO; ++} ++ ++int ensure_cloned_binary(void) ++{ ++ int execfd; ++ char **argv = NULL, **envp = NULL; ++ ++ /* Check that we're not self-cloned, and if we are then bail. */ ++ int cloned = is_self_cloned(); ++ if (cloned > 0 || cloned == -ENOTRECOVERABLE) ++ return cloned; ++ ++ if (fetchve(&argv, &envp) < 0) ++ return -EINVAL; ++ ++ execfd = clone_binary(); ++ if (execfd < 0) ++ return -EIO; ++ ++ fexecve(execfd, argv, envp); ++ return -ENOEXEC; ++} +diff --git a/libcontainer/nsenter/nsexec.c b/libcontainer/nsenter/nsexec.c +index 0ad6883..64ed76f 100644 +--- a/libcontainer/nsenter/nsexec.c ++++ b/libcontainer/nsenter/nsexec.c +@@ -432,6 +432,9 @@ void join_namespaces(char *nslist) + free(namespaces); + } + ++/* Defined in cloned_binary.c. */ ++extern int ensure_cloned_binary(void); ++ + void nsexec(void) + { + int pipenum; +@@ -447,6 +450,14 @@ void nsexec(void) + if (pipenum == -1) + return; + ++ /* ++ * We need to re-exec if we are not in a cloned binary. This is necessary ++ * to ensure that containers won't be able to access the host binary ++ * through /proc/self/exe. See CVE-2019-5736. ++ */ ++ if (ensure_cloned_binary() < 0) ++ bail("could not ensure we are a cloned binary"); ++ + /* Parse all of the netlink configuration. */ + nl_parse(pipenum, &config); + +diff --git a/script/runc-euleros.spec b/script/runc-euleros.spec +index b3db2ab..2448078 100644 +--- a/script/runc-euleros.spec ++++ b/script/runc-euleros.spec +@@ -2,7 +2,7 @@ + + Name: docker-runc + Version: 1.0.0.rc3 +-Release: 19%{?dist} ++Release: 20%{?dist} + Summary: runc is a CLI tool for spawning and running containers according to the OCF specification + + License: ASL 2.0 +-- +2.7.4.3 + diff --git a/patch/0091-runc-cve-2019-5736-workaround-if-memfd_create.patch b/patch/0091-runc-cve-2019-5736-workaround-if-memfd_create.patch new file mode 100644 index 0000000..bd015b2 --- /dev/null +++ b/patch/0091-runc-cve-2019-5736-workaround-if-memfd_create.patch @@ -0,0 +1,207 @@ +From 621c01059536ec167da8c9d5571e8bf860b4dadb Mon Sep 17 00:00:00 2001 +From: wangfengtu +Date: Wed, 13 Feb 2019 05:26:38 -0500 +Subject: [PATCH 91/94] runc: cve-2019-5736: workaround if + memfd_create and O_TMPFILE not work + +[Changelog]: create tmpfile using mkostemp when memfd_create and +O_TMPFILE not work +[Author]: git + +Change-Id: I785295b19759487ddaa5e0dcb5c11e4aa9ace838 +Signed-off-by: sdu.liu +Signed-off-by: wangfengtu +--- + libcontainer/nsenter/cloned_binary.c | 117 +++++++++++++++++++++++++---------- + script/runc-euleros.spec | 2 +- + 2 files changed, 87 insertions(+), 32 deletions(-) + +diff --git a/libcontainer/nsenter/cloned_binary.c b/libcontainer/nsenter/cloned_binary.c +index c8a42c2..e59d434 100644 +--- a/libcontainer/nsenter/cloned_binary.c ++++ b/libcontainer/nsenter/cloned_binary.c +@@ -71,6 +71,14 @@ int memfd_create(const char *name, unsigned int flags) + (F_SEAL_SEAL | F_SEAL_SHRINK | F_SEAL_GROW | F_SEAL_WRITE) + #endif + ++enum clone_type ++{ ++ USING_MEMFD = 0, ++ USING_UNAMED_FILE, ++ USING_TMPFILE, ++}; ++ ++ + static void *must_realloc(void *ptr, size_t size) + { + void *old = ptr; +@@ -80,6 +88,23 @@ static void *must_realloc(void *ptr, size_t size) + return ptr; + } + ++static int get_clone_type() ++{ ++ int memfd = 0; ++#ifdef HAVE_MEMFD_CREATE ++ memfd = memfd_create(RUNC_MEMFD_COMMENT, MFD_CLOEXEC | MFD_ALLOW_SEALING); ++ if (memfd > 0 || memfd == 0) { ++ close(memfd); ++ return USING_MEMFD; ++ } ++#else ++#ifdef O_TMPFILE ++ return USING_UNAMED_FILE; ++#endif ++#endif ++ return USING_TMPFILE; ++} ++ + /* + * Verify whether we are currently in a self-cloned program (namely, is + * /proc/self/exe a memfd). F_GET_SEALS will only succeed for memfds (or rather +@@ -87,21 +112,23 @@ static void *must_realloc(void *ptr, size_t size) + */ + static int is_self_cloned(void) + { +- int fd, ret, is_cloned = 0; ++ int fd, ret, type, is_cloned = 0; + + fd = open("/proc/self/exe", O_RDONLY|O_CLOEXEC); + if (fd < 0) + return -ENOTRECOVERABLE; ++ type = get_clone_type(); ++ ++ if (type == USING_MEMFD) { ++ ret = fcntl(fd, F_GET_SEALS); ++ is_cloned = (ret == RUNC_MEMFD_SEALS); ++ } else { ++ struct stat statbuf = {0}; ++ ret = fstat(fd, &statbuf); ++ if (ret >= 0) ++ is_cloned = (statbuf.st_nlink == 0); ++ } + +-#ifdef HAVE_MEMFD_CREATE +- ret = fcntl(fd, F_GET_SEALS); +- is_cloned = (ret == RUNC_MEMFD_SEALS); +-#else +- struct stat statbuf = {0}; +- ret = fstat(fd, &statbuf); +- if (ret >= 0) +- is_cloned = (statbuf.st_nlink == 0); +-#endif + close(fd); + return is_cloned; + } +@@ -198,16 +225,37 @@ error: + return -EINVAL; + } + ++ + static int clone_binary(void) + { + int binfd, memfd; + ssize_t sent = 0; ++ char template[] = "/tmp/runc.XXXXXX"; ++ int type = 0; ++ char *tmpfile = NULL; ++ ++ type = get_clone_type(); ++ switch (type) { ++ case USING_MEMFD: ++ memfd = memfd_create(RUNC_MEMFD_COMMENT, MFD_CLOEXEC | MFD_ALLOW_SEALING); ++ break; ++ case USING_UNAMED_FILE: ++ memfd = open("/tmp", O_TMPFILE | O_EXCL | O_RDWR | O_CLOEXEC, 0711); ++ break; ++ case USING_TMPFILE: ++ memfd = mkostemp(template,O_EXCL | O_RDWR | O_CLOEXEC); ++ if (memfd < 0) { ++ goto error; ++ } ++ tmpfile = template; ++ if (fchmod(memfd, 0711)) { ++ goto error; ++ } ++ break; ++ default: ++ return -ENOTRECOVERABLE; ++ } + +-#ifdef HAVE_MEMFD_CREATE +- memfd = memfd_create(RUNC_MEMFD_COMMENT, MFD_CLOEXEC | MFD_ALLOW_SEALING); +-#else +- memfd = open("/tmp", O_TMPFILE | O_EXCL | O_RDWR | O_CLOEXEC, 0711); +-#endif + if (memfd < 0) + return -ENOTRECOVERABLE; + +@@ -220,29 +268,36 @@ static int clone_binary(void) + if (sent < 0) + goto error; + +-#ifdef HAVE_MEMFD_CREATE +- int err = fcntl(memfd, F_ADD_SEALS, RUNC_MEMFD_SEALS); +- if (err < 0) +- goto error; +-#else ++ if (type == USING_MEMFD) { ++ int err = fcntl(memfd, F_ADD_SEALS, RUNC_MEMFD_SEALS); ++ if (err < 0) ++ goto error; ++ } else { + /* Need to re-open "memfd" as read-only to avoid execve(2) giving -EXTBUSY. */ +- int newfd; +- char *fdpath = NULL; ++ int newfd; ++ char *fdpath = NULL; + +- if (asprintf(&fdpath, "/proc/self/fd/%d", memfd) < 0) +- goto error; +- newfd = open(fdpath, O_RDONLY | O_CLOEXEC); +- free(fdpath); +- if (newfd < 0) +- goto error; ++ if (asprintf(&fdpath, "/proc/self/fd/%d", memfd) < 0) ++ goto error; ++ newfd = open(fdpath, O_RDONLY | O_CLOEXEC); ++ free(fdpath); ++ if (newfd < 0) ++ goto error; ++ close(memfd); + +- close(memfd); +- memfd = newfd; +-#endif ++ memfd = newfd; ++ } ++ ++ if(tmpfile) { ++ remove(tmpfile); ++ } + return memfd; + + error: + close(memfd); ++ if(tmpfile) { ++ remove(tmpfile); ++ } + return -EIO; + } + +diff --git a/script/runc-euleros.spec b/script/runc-euleros.spec +index 2448078..b577d1a 100644 +--- a/script/runc-euleros.spec ++++ b/script/runc-euleros.spec +@@ -2,7 +2,7 @@ + + Name: docker-runc + Version: 1.0.0.rc3 +-Release: 20%{?dist} ++Release: 21%{?dist} + Summary: runc is a CLI tool for spawning and running containers according to the OCF specification + + License: ASL 2.0 +-- +2.7.4.3 + diff --git a/patch/0092-runc-cve-2019-5736-fix-build-failure.patch b/patch/0092-runc-cve-2019-5736-fix-build-failure.patch new file mode 100644 index 0000000..4c5509d --- /dev/null +++ b/patch/0092-runc-cve-2019-5736-fix-build-failure.patch @@ -0,0 +1,47 @@ +From 096172d15e1d29ba177a39d8ded3ca6b5b1c0ac4 Mon Sep 17 00:00:00 2001 +From: wangfengtu +Date: Thu, 14 Feb 2019 00:08:01 +0800 +Subject: [PATCH 92/94] runc: cve-2019-5736 fix build failure + +[Changelog]: fix build failure +[Author]: git + +Change-Id: Ie422758618726d9e98a7f9ec9a14e34d4479251f +Signed-off-by: wangfengtu +--- + libcontainer/nsenter/cloned_binary.c | 2 ++ + script/runc-euleros.spec | 2 +- + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/libcontainer/nsenter/cloned_binary.c b/libcontainer/nsenter/cloned_binary.c +index e59d434..ff7ecb0 100644 +--- a/libcontainer/nsenter/cloned_binary.c ++++ b/libcontainer/nsenter/cloned_binary.c +@@ -239,9 +239,11 @@ static int clone_binary(void) + case USING_MEMFD: + memfd = memfd_create(RUNC_MEMFD_COMMENT, MFD_CLOEXEC | MFD_ALLOW_SEALING); + break; ++#ifdef O_TMPFILE + case USING_UNAMED_FILE: + memfd = open("/tmp", O_TMPFILE | O_EXCL | O_RDWR | O_CLOEXEC, 0711); + break; ++#endif + case USING_TMPFILE: + memfd = mkostemp(template,O_EXCL | O_RDWR | O_CLOEXEC); + if (memfd < 0) { +diff --git a/script/runc-euleros.spec b/script/runc-euleros.spec +index b577d1a..6e96326 100644 +--- a/script/runc-euleros.spec ++++ b/script/runc-euleros.spec +@@ -2,7 +2,7 @@ + + Name: docker-runc + Version: 1.0.0.rc3 +-Release: 21%{?dist} ++Release: 22%{?dist} + Summary: runc is a CLI tool for spawning and running containers according to the OCF specification + + License: ASL 2.0 +-- +2.7.4.3 + diff --git a/patch/0093-runc-fix-error-when-check-the-init-process.patch b/patch/0093-runc-fix-error-when-check-the-init-process.patch new file mode 100644 index 0000000..dc9b0f9 --- /dev/null +++ b/patch/0093-runc-fix-error-when-check-the-init-process.patch @@ -0,0 +1,46 @@ +From 20ce68df5145a8c56a53322fcf8c6a149d9df535 Mon Sep 17 00:00:00 2001 +From: zhangyu235 +Date: Sun, 24 Feb 2019 17:49:09 +0800 +Subject: [PATCH 93/94] runc: fix error when check the init process + +reason:We shoule ensure the porcess is still the original init process +using doesInitProcessExist(). But it could happen when the process exited +just when we call function doesInitProcessExist(). Due to this reason, +we shoule not return error in this case. + +Change-Id: If515af5beed73adf19b2c31eae919c5a39911a18 +Signed-off-by: zhangyu235 +--- + libcontainer/container_linux.go | 2 +- + script/runc-euleros.spec | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go +index 8100aca..5a3705e 100644 +--- a/libcontainer/container_linux.go ++++ b/libcontainer/container_linux.go +@@ -1411,7 +1411,7 @@ func (c *linuxContainer) refreshState() error { + func (c *linuxContainer) doesInitProcessExist(initPid int) (bool, error) { + startTime, err := system.GetProcessStartTime(initPid) + if err != nil { +- return false, newSystemErrorWithCausef(err, "getting init process %d start time", initPid) ++ return false, nil + } + if c.initProcessStartTime != startTime { + return false, nil +diff --git a/script/runc-euleros.spec b/script/runc-euleros.spec +index 6e96326..09be036 100644 +--- a/script/runc-euleros.spec ++++ b/script/runc-euleros.spec +@@ -2,7 +2,7 @@ + + Name: docker-runc + Version: 1.0.0.rc3 +-Release: 22%{?dist} ++Release: 23%{?dist} + Summary: runc is a CLI tool for spawning and running containers according to the OCF specification + + License: ASL 2.0 +-- +2.7.4.3 + diff --git a/patch/0094-runc-If-tmp-is-mounted-by-option-noexec-docke.patch b/patch/0094-runc-If-tmp-is-mounted-by-option-noexec-docke.patch new file mode 100644 index 0000000..0f3626c --- /dev/null +++ b/patch/0094-runc-If-tmp-is-mounted-by-option-noexec-docke.patch @@ -0,0 +1,30 @@ +From 662893f67295028a128885544d4a0ee25491da95 Mon Sep 17 00:00:00 2001 +From: wangfengtu +Date: Sat, 2 Mar 2019 19:51:08 +0800 +Subject: [PATCH 94/94] runc: If /tmp is mounted by option + noexec,docker run will fail + +reason: Change /tmp to /run for storage temporary runc + +Change-Id: Ia442b489dc1b57c6e4fd720b98b5061f83a88214 +Signed-off-by: wangfengtu +--- + libcontainer/nsenter/cloned_binary.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libcontainer/nsenter/cloned_binary.c b/libcontainer/nsenter/cloned_binary.c +index ff7ecb0..8e8b70e 100644 +--- a/libcontainer/nsenter/cloned_binary.c ++++ b/libcontainer/nsenter/cloned_binary.c +@@ -230,7 +230,7 @@ static int clone_binary(void) + { + int binfd, memfd; + ssize_t sent = 0; +- char template[] = "/tmp/runc.XXXXXX"; ++ char template[] = "/run/runc.XXXXXX"; + int type = 0; + char *tmpfile = NULL; + +-- +2.7.4.3 + diff --git a/patch/0095-runc-just-warning-when-poststart-and-poststop.patch b/patch/0095-runc-just-warning-when-poststart-and-poststop.patch new file mode 100644 index 0000000..b27e595 --- /dev/null +++ b/patch/0095-runc-just-warning-when-poststart-and-poststop.patch @@ -0,0 +1,50 @@ +From a854b14193b62c93bd62ccddebca29a77c8c07a2 Mon Sep 17 00:00:00 2001 +From: zhangsong34 +Date: Fri, 8 Mar 2019 14:32:39 +0800 +Subject: [PATCH] runc: just warning when poststart and poststop + failed + +reason:just warning when poststart and poststop failed. + +Change-Id: I65e816c344506bbf9ea2f8c5ff4dc2d47cc0a35e +Signed-off-by: mashimiao +Signed-off-by: zhangsong34 +--- + libcontainer/container_linux.go | 3 +-- + libcontainer/state_linux.go | 3 +-- + 2 files changed, 2 insertions(+), 4 deletions(-) + +diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go +index 5a3705e..1f587c7 100644 +--- a/libcontainer/container_linux.go ++++ b/libcontainer/container_linux.go +@@ -341,11 +341,10 @@ func (c *linuxContainer) start(process *Process) error { + for i, hook := range c.config.Hooks.Poststart { + logrus.Infof("run poststart hook %d:%s, ContainerID: %s", i, hook.Info(), s.ID) + if err := hook.Run(s); err != nil { +- logrus.Errorf("running poststart hook(%d:%s) failed: %s", i, hook.Info(), err) ++ logrus.Warnf("running poststart hook %d:%s failed: %s, ContainerId: %s", i, hook.Info(), err, s.ID) + if err := parent.terminate(); err != nil { + logrus.Warnf("run poststart hook failed: %s, ContainerID: %s", err, s.ID) + } +- return newSystemErrorWithCausef(err, "running poststart hook %d:%s, ContainerID: %s", i, hook.Info(), s.ID) + } + } + } +diff --git a/libcontainer/state_linux.go b/libcontainer/state_linux.go +index 6fa62c0..b570a24 100644 +--- a/libcontainer/state_linux.go ++++ b/libcontainer/state_linux.go +@@ -68,8 +68,7 @@ func runPoststopHooks(c *linuxContainer) error { + for i, hook := range c.config.Hooks.Poststop { + logrus.Infof("run poststop hook %d:%s, ContainerID: %s", i, hook.Info(), s.ID) + if err := hook.Run(s); err != nil { +- logrus.Errorf("running poststop hook %d: %s failed: %s", i, hook.Info(), err) +- return newSystemErrorWithCausef(err, "running poststop hook %d:%s, ContainerID: %s", i, hook.Info(), s.ID) ++ logrus.Warnf("running poststop hook %d:%s failed: %s, ContainerID: %s", i, hook.Info(), err, s.ID) + } + } + } +-- +1.8.3.1 + diff --git a/patch/0096-runc-do-not-kill-container-if-poststart-hooks.patch b/patch/0096-runc-do-not-kill-container-if-poststart-hooks.patch new file mode 100644 index 0000000..8adb55a --- /dev/null +++ b/patch/0096-runc-do-not-kill-container-if-poststart-hooks.patch @@ -0,0 +1,31 @@ +From 5a4335581b0ccf28342f3e48639ba38b611a02fe Mon Sep 17 00:00:00 2001 +From: zhangsong34 +Date: Wed, 13 Mar 2019 15:40:12 +0800 +Subject: [PATCH] runc: do not kill container if poststart hooks + execute failed + +reason:do not kill container if poststart hooks execute failed. + +Change-Id: Ieb1e1e7eeefe4bbd3cdb38fbba5a2a003297a5b3 +Signed-off-by: zhangsong34 +--- + libcontainer/container_linux.go | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go +index 1f587c7..914da7f 100644 +--- a/libcontainer/container_linux.go ++++ b/libcontainer/container_linux.go +@@ -342,9 +342,6 @@ func (c *linuxContainer) start(process *Process) error { + logrus.Infof("run poststart hook %d:%s, ContainerID: %s", i, hook.Info(), s.ID) + if err := hook.Run(s); err != nil { + logrus.Warnf("running poststart hook %d:%s failed: %s, ContainerId: %s", i, hook.Info(), err, s.ID) +- if err := parent.terminate(); err != nil { +- logrus.Warnf("run poststart hook failed: %s, ContainerID: %s", err, s.ID) +- } + } + } + } +-- +1.8.3.1 + diff --git a/patch/0097-runc-Fix-mountpoint-leak-and-pivot_root-error.patch b/patch/0097-runc-Fix-mountpoint-leak-and-pivot_root-error.patch new file mode 100644 index 0000000..08cfe01 --- /dev/null +++ b/patch/0097-runc-Fix-mountpoint-leak-and-pivot_root-error.patch @@ -0,0 +1,120 @@ +From 0b0bb50e4ecdebfb2646adb57e53972663947320 Mon Sep 17 00:00:00 2001 +From: wangfengtu +Date: Wed, 27 Mar 2019 15:28:03 +0800 +Subject: [PATCH] runc: Fix mountpoint leak and pivot_root error + +reason:We have no way to get exact /proc/self/mountinfo infomation +because it can change if other process mount/umount mountpoint. So +runc sometimes cannot get container's mountpoint when runc try to +make mountpoint private. This can cause mountpoint leak and pivot_root +error, runc error out like this: +``` +Handler for POST +/v1.23/containers/1d265651cb1d5475bcb7d5db21679757d5527d44a41c102c6aa4bddaa518c547/start +returned error: oci runtime error: container_linux.go:317: starting +container process caused \"process_linux.go:358: container init caused +\\\"rootfs_linux.go:105: jailing process inside rootfs caused +\\\\\\\"pivot_root invalid argument\\\\\\\"\\\"\"\n +``` + +Change-Id: Icde1638af6ad45c762c11fc8a2b8a969b6306ca5 +Signed-off-by: wangfengtu +--- + libcontainer/rootfs_linux.go | 32 ++++++++++++---------- + .../docker/docker/pkg/mount/mountinfo_linux.go | 7 +++-- + 2 files changed, 21 insertions(+), 18 deletions(-) + +diff --git a/libcontainer/rootfs_linux.go b/libcontainer/rootfs_linux.go +index 3dd5113..53797e9 100644 +--- a/libcontainer/rootfs_linux.go ++++ b/libcontainer/rootfs_linux.go +@@ -24,7 +24,10 @@ import ( + "github.com/opencontainers/selinux/go-selinux/label" + ) + +-const defaultMountFlags = syscall.MS_NOEXEC | syscall.MS_NOSUID | syscall.MS_NODEV ++const ( ++ defaultMountFlags = syscall.MS_NOEXEC | syscall.MS_NOSUID | syscall.MS_NODEV ++ maxRetryTimes = 5 ++) + + // needsSetupDev returns true if /dev needs to be set up. + func needsSetupDev(config *configs.Config) bool { +@@ -545,23 +548,16 @@ func getMountInfo(mountinfo []*mount.Info, dir string) *mount.Info { + // Get the parent mount point of directory passed in as argument. Also return + // optional fields. + func getParentMount(rootfs string) (string, string, error) { +- var path string +- +- mountinfos, err := mount.GetMounts() +- if err != nil { +- return "", "", err +- } +- +- mountinfo := getMountInfo(mountinfos, rootfs) +- if mountinfo != nil { +- return rootfs, mountinfo.Optional, nil +- } ++ retryTimes := maxRetryTimes ++ path := rootfs + +- path = rootfs + for { +- path = filepath.Dir(path) ++ mountinfos, err := mount.GetMounts() ++ if err != nil { ++ return "", "", err ++ } + +- mountinfo = getMountInfo(mountinfos, path) ++ mountinfo := getMountInfo(mountinfos, path) + if mountinfo != nil { + return path, mountinfo.Optional, nil + } +@@ -569,6 +565,12 @@ func getParentMount(rootfs string) (string, string, error) { + if path == "/" { + break + } ++ ++ retryTimes-- ++ if retryTimes == 0 { ++ retryTimes = maxRetryTimes ++ path = filepath.Dir(path) ++ } + } + + // If we are here, we did not find parent mount. Something is wrong. +diff --git a/vendor/github.com/docker/docker/pkg/mount/mountinfo_linux.go b/vendor/github.com/docker/docker/pkg/mount/mountinfo_linux.go +index be69fee..b74773f 100644 +--- a/vendor/github.com/docker/docker/pkg/mount/mountinfo_linux.go ++++ b/vendor/github.com/docker/docker/pkg/mount/mountinfo_linux.go +@@ -4,8 +4,10 @@ package mount + + import ( + "bufio" ++ "bytes" + "fmt" + "io" ++ "io/ioutil" + "os" + "strings" + ) +@@ -31,13 +33,12 @@ const ( + // Parse /proc/self/mountinfo because comparing Dev and ino does not work from + // bind mounts + func parseMountTable() ([]*Info, error) { +- f, err := os.Open("/proc/self/mountinfo") ++ content, err := ioutil.ReadFile("/proc/self/mountinfo") + if err != nil { + return nil, err + } +- defer f.Close() + +- return parseInfoFile(f) ++ return parseInfoFile(bytes.NewReader(content)) + } + + func parseInfoFile(r io.Reader) ([]*Info, error) { +-- +2.7.4 + diff --git a/patch/0098-runc-fix-read-only-containers-under-userns-.patch b/patch/0098-runc-fix-read-only-containers-under-userns-.patch new file mode 100644 index 0000000..0d745dc --- /dev/null +++ b/patch/0098-runc-fix-read-only-containers-under-userns-.patch @@ -0,0 +1,40 @@ +From 6e35f145221347264ea5d4814308ab0624725024 Mon Sep 17 00:00:00 2001 +From: zhangsong34 +Date: Tue, 2 Apr 2019 10:00:20 +0800 +Subject: [PATCH] runc: fix --read-only containers under + --userns-remap + +reason:fix --read-only containers under --userns-remap +cherry-pick from: + https://github.com/opencontainers/runc/pull/1572 + +Change-Id: I0f823caf1e72e4d61df9abe5f97fa5605425fd2c +Signed-off-by: Tycho Andersen +Signed-off-by: zhangsong34 +--- + libcontainer/rootfs_linux.go | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/libcontainer/rootfs_linux.go b/libcontainer/rootfs_linux.go +index 53797e9..18a25f2 100644 +--- a/libcontainer/rootfs_linux.go ++++ b/libcontainer/rootfs_linux.go +@@ -769,7 +769,14 @@ func remountReadonly(m *configs.Mount) error { + flags = m.Flags + ) + for i := 0; i < 5; i++ { +- if err := syscall.Mount("", dest, "", uintptr(flags|syscall.MS_REMOUNT|syscall.MS_RDONLY), ""); err != nil { ++ // There is a special case in the kernel for ++ // MS_REMOUNT | MS_BIND, which allows us to change only the ++ // flags even as an unprivileged user (i.e. user namespace) ++ // assuming we don't drop any security related flags (nodev, ++ // nosuid, etc.). So, let's use that case so that we can do ++ // this re-mount without failing in a userns. ++ flags |= syscall.MS_REMOUNT | syscall.MS_BIND | syscall.MS_RDONLY ++ if err := syscall.Mount("", dest, "", uintptr(flags), ""); err != nil { + switch err { + case syscall.EBUSY: + time.Sleep(100 * time.Millisecond) +-- +1.8.3.1 + diff --git a/patch/0099-runc-enable-bep-ldflags.patch b/patch/0099-runc-enable-bep-ldflags.patch new file mode 100644 index 0000000..0d2c78b --- /dev/null +++ b/patch/0099-runc-enable-bep-ldflags.patch @@ -0,0 +1,49 @@ +From e2d3a9925386b07e15db79ceee1e5430eed13c26 Mon Sep 17 00:00:00 2001 +From: jingrui +Date: Thu, 11 Apr 2019 23:32:01 +0800 +Subject: [PATCH] runc: enable bep ldflags + +Change-Id: I9221cb54e470b6c511f7962294bf405de00549c7 +Signed-off-by: jingrui +--- + Makefile | 13 +++++++++---- + 1 file changed, 9 insertions(+), 4 deletions(-) + +diff --git a/Makefile b/Makefile +index f043d0bc..76423d83 100644 +--- a/Makefile ++++ b/Makefile +@@ -24,21 +24,26 @@ VERSION := ${shell cat ./VERSION} + + SHELL := $(shell command -v bash 2>/dev/null) + ++BEP_DIR := "/tmp/runc-build-bep" ++BEP_FLAG := "-tmpdir=${BEP_DIR}" ++ + .DEFAULT: runc + + runc: $(SOURCES) +- go build -i -ldflags "-X main.gitCommit=${COMMIT} -X main.version=${VERSION}" -tags "$(BUILDTAGS)" -o runc . ++ mkdir -p ${BEP_DIR} ++ go build -i -ldflags " ${BEP_FLAG} -X main.gitCommit=${COMMIT} -X main.version=${VERSION}" -tags "$(BUILDTAGS)" -o runc . + + all: runc recvtty + + recvtty: contrib/cmd/recvtty/recvtty + + contrib/cmd/recvtty/recvtty: $(SOURCES) +- go build -i -ldflags "-X main.gitCommit=${COMMIT} -X main.version=${VERSION}" -tags "$(BUILDTAGS)" -o contrib/cmd/recvtty/recvtty ./contrib/cmd/recvtty ++ go build -i -ldflags " ${BEP_FLAG} -X main.gitCommit=${COMMIT} -X main.version=${VERSION}" -tags "$(BUILDTAGS)" -o contrib/cmd/recvtty/recvtty ./contrib/cmd/recvtty + + static: $(SOURCES) +- CGO_ENABLED=1 go build -i -tags "$(BUILDTAGS) cgo static_build" -ldflags "-w -extldflags -static -X main.gitCommit=${COMMIT} -X main.version=${VERSION}" -o runc . +- CGO_ENABLED=1 go build -i -tags "$(BUILDTAGS) cgo static_build" -ldflags "-w -extldflags -static -X main.gitCommit=${COMMIT} -X main.version=${VERSION}" -o contrib/cmd/recvtty/recvtty ./contrib/cmd/recvtty ++ mkdir -p ${BEP_DIR} ++ CGO_ENABLED=1 go build -i -tags "$(BUILDTAGS) cgo static_build" -ldflags "-w -extldflags -static ${BEP_FLAG} -X main.gitCommit=${COMMIT} -X main.version=${VERSION}" -o runc . ++ CGO_ENABLED=1 go build -i -tags "$(BUILDTAGS) cgo static_build" -ldflags "-w -extldflags -static ${BEP_FLAG} -X main.gitCommit=${COMMIT} -X main.version=${VERSION}" -o contrib/cmd/recvtty/recvtty ./contrib/cmd/recvtty + + release: + @flag_list=(seccomp selinux apparmor static); \ +-- +2.17.1 + diff --git a/patch/0100-runc-set-makefile-buildid.patch b/patch/0100-runc-set-makefile-buildid.patch new file mode 100644 index 0000000..0688c89 --- /dev/null +++ b/patch/0100-runc-set-makefile-buildid.patch @@ -0,0 +1,44 @@ +From 0a64bd10e05937427255dada4b6e1b12f31265f0 Mon Sep 17 00:00:00 2001 +From: xiadanni1 +Date: Tue, 23 Apr 2019 22:35:45 +0800 +Subject: [PATCH] runc: set makefile buildid + +reason: set makefile buildid + +Change-Id: Ia547dbc383bffe6532168881a7376df1d990fd30 +Signed-off-by: xiadanni1 +--- + Makefile | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/Makefile b/Makefile +index 76423d8..0352e40 100644 +--- a/Makefile ++++ b/Makefile +@@ -31,19 +31,19 @@ BEP_FLAG := "-tmpdir=${BEP_DIR}" + + runc: $(SOURCES) + mkdir -p ${BEP_DIR} +- go build -i -ldflags " ${BEP_FLAG} -X main.gitCommit=${COMMIT} -X main.version=${VERSION}" -tags "$(BUILDTAGS)" -o runc . ++ go build -i -ldflags " -buildid=IdByIsula ${BEP_FLAG} -X main.gitCommit=${COMMIT} -X main.version=${VERSION}" -tags "$(BUILDTAGS)" -o runc . + + all: runc recvtty + + recvtty: contrib/cmd/recvtty/recvtty + + contrib/cmd/recvtty/recvtty: $(SOURCES) +- go build -i -ldflags " ${BEP_FLAG} -X main.gitCommit=${COMMIT} -X main.version=${VERSION}" -tags "$(BUILDTAGS)" -o contrib/cmd/recvtty/recvtty ./contrib/cmd/recvtty ++ go build -i -ldflags " -buildid=IdByIsula ${BEP_FLAG} -X main.gitCommit=${COMMIT} -X main.version=${VERSION}" -tags "$(BUILDTAGS)" -o contrib/cmd/recvtty/recvtty ./contrib/cmd/recvtty + + static: $(SOURCES) + mkdir -p ${BEP_DIR} +- CGO_ENABLED=1 go build -i -tags "$(BUILDTAGS) cgo static_build" -ldflags "-w -extldflags -static ${BEP_FLAG} -X main.gitCommit=${COMMIT} -X main.version=${VERSION}" -o runc . +- CGO_ENABLED=1 go build -i -tags "$(BUILDTAGS) cgo static_build" -ldflags "-w -extldflags -static ${BEP_FLAG} -X main.gitCommit=${COMMIT} -X main.version=${VERSION}" -o contrib/cmd/recvtty/recvtty ./contrib/cmd/recvtty ++ CGO_ENABLED=1 go build -i -tags "$(BUILDTAGS) cgo static_build" -ldflags "-w -buildid=IdByIsula -extldflags -static ${BEP_FLAG} -X main.gitCommit=${COMMIT} -X main.version=${VERSION}" -o runc . ++ CGO_ENABLED=1 go build -i -tags "$(BUILDTAGS) cgo static_build" -ldflags "-w -buildid=IdByIsula -extldflags -static ${BEP_FLAG} -X main.gitCommit=${COMMIT} -X main.version=${VERSION}" -o contrib/cmd/recvtty/recvtty ./contrib/cmd/recvtty + + release: + @flag_list=(seccomp selinux apparmor static); \ +-- +1.8.3.1 + diff --git a/patch/0101-runc-print-memory-info-when-syscall.Exec-fail.patch b/patch/0101-runc-print-memory-info-when-syscall.Exec-fail.patch new file mode 100644 index 0000000..39bb3a0 --- /dev/null +++ b/patch/0101-runc-print-memory-info-when-syscall.Exec-fail.patch @@ -0,0 +1,63 @@ +From 574f88a1801656869b69408cf2eb0f32c6c0e4aa Mon Sep 17 00:00:00 2001 +From: xiadanni1 +Date: Mon, 6 May 2019 02:49:36 +0800 +Subject: [PATCH] runc: print memory info when syscall.Exec failed +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +reason: print system and cgroup memory info when syscall.Exec failed. + +Change-Id: I4aef0ea3da16849ab82adf45db5a828c758b33ea +Signed-off-by: xiadanni1 +--- + libcontainer/standard_init_linux.go | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +diff --git a/libcontainer/standard_init_linux.go b/libcontainer/standard_init_linux.go +index fd836f3..b25669f 100644 +--- a/libcontainer/standard_init_linux.go ++++ b/libcontainer/standard_init_linux.go +@@ -4,12 +4,14 @@ package libcontainer + + import ( + "fmt" ++ "io/ioutil" + "os" + "os/exec" + "strings" + "syscall" + "time" + ++ "github.com/Sirupsen/logrus" + "github.com/opencontainers/runc/libcontainer/apparmor" + "github.com/opencontainers/runc/libcontainer/configs" + "github.com/opencontainers/runc/libcontainer/keys" +@@ -212,7 +214,24 @@ func (l *linuxStandardInit) Init() error { + // https://github.com/torvalds/linux/blob/v4.9/fs/exec.c#L1290-L1318 + syscall.Close(l.stateDirFD) + if err := syscall.Exec(name, l.config.Args[0:], os.Environ()); err != nil { ++ printMemoryInfo() + return newSystemErrorWithCause(err, "exec user process") + } + return nil + } ++ ++func printMemoryInfo() { ++ output, err := ioutil.ReadFile("/proc/meminfo") ++ if err != nil { ++ logrus.Errorf("Failed to read /proc/meminfo, %v", err) ++ } else { ++ logrus.Infof("print memory info (/proc/meminfo): %s", string(output)) ++ } ++ ++ output, err = ioutil.ReadFile("/sys/fs/cgroup/memory/memory.stat") ++ if err != nil { ++ logrus.Errorf("Failed to read /sys/fs/cgroup/memory/memory.stat, %v", err) ++ } else { ++ logrus.Infof("print memory info (cgroup memory.stat): %s", string(output)) ++ } ++} +-- +1.8.3.1 + diff --git a/patch/0102-runc-add-sysctl-kernel.pid_max-to-whitelist.patch b/patch/0102-runc-add-sysctl-kernel.pid_max-to-whitelist.patch new file mode 100644 index 0000000..8a2114d --- /dev/null +++ b/patch/0102-runc-add-sysctl-kernel.pid_max-to-whitelist.patch @@ -0,0 +1,26 @@ +From fd784bfca82ff0f2383b9488da823fb83d25c63a Mon Sep 17 00:00:00 2001 +From: zhangsong34 +Date: Mon, 6 May 2019 19:29:40 +0800 +Subject: [PATCH] runc: add sysctl kernel.pid_max to whitelist + +reason:add sysctl kernel.pid_max to whitelist + +Signed-off-by: zhangsong34 +--- + libcontainer/configs/validate/validator.go | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/libcontainer/configs/validate/validator.go b/libcontainer/configs/validate/validator.go +index 5cb50fb..e6a97d0 100644 +--- a/libcontainer/configs/validate/validator.go ++++ b/libcontainer/configs/validate/validator.go +@@ -126,6 +126,7 @@ func (v *ConfigValidator) sysctl(config *configs.Config) error { + "kernel.shmmax": true, + "kernel.shmmni": true, + "kernel.shm_rmid_forced": true, ++ "kernel.pid_max": true, + } + + for s := range config.Sysctl { +-- +1.8.3.1 diff --git a/patch/0104-runc-Retry-adding-pids-to-cgroups-when-EINV.patch b/patch/0104-runc-Retry-adding-pids-to-cgroups-when-EINV.patch new file mode 100644 index 0000000..6ac3931 --- /dev/null +++ b/patch/0104-runc-Retry-adding-pids-to-cgroups-when-EINV.patch @@ -0,0 +1,79 @@ +From 5424fc3a4dca03773bd322add2b1528706ea75d3 Mon Sep 17 00:00:00 2001 +From: chenditang +Date: Sun, 30 Jun 2019 21:41:19 -0400 +Subject: [PATCH] runc: Retry adding pids to cgroups when EINVAL + occurs + +reason:The kernel will sometimes return EINVAL when writing a pid +to a cgroup.procs file. It does so when the task being added still +has the state TASK_NEW. +See: https://elixir.bootlin.com/linux/v4.8/source/kernel/sched/core.c#L8286 + +Co-authored-by: Danail Branekov + +Signed-off-by: Tom Godkin +Signed-off-by: Danail Branekov +Signed-off-by: chenditang +--- + libcontainer/cgroups/utils.go | 38 ++++++++++++++++++++++++++++++++++---- + 1 file changed, 34 insertions(+), 4 deletions(-) + +diff --git a/libcontainer/cgroups/utils.go b/libcontainer/cgroups/utils.go +index 5db3734..c9411ee 100644 +--- a/libcontainer/cgroups/utils.go ++++ b/libcontainer/cgroups/utils.go +@@ -14,6 +14,7 @@ import ( + "time" + + "github.com/docker/go-units" ++ "golang.org/x/sys/unix" + ) + + const ( +@@ -438,10 +439,39 @@ func WriteCgroupProc(dir string, pid int) error { + } + + // Dont attach any pid to the cgroup if -1 is specified as a pid +- if pid != -1 { +- if err := ioutil.WriteFile(filepath.Join(dir, CgroupProcesses), []byte(strconv.Itoa(pid)), 0700); err != nil { +- return fmt.Errorf("failed to write %v to %v: %v", pid, CgroupProcesses, err) ++ if pid == -1 { ++ return nil ++ } ++ ++ cgroupProcessesFile, err := os.OpenFile(filepath.Join(dir, CgroupProcesses), os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0700) ++ if err != nil { ++ return fmt.Errorf("failed to write %v to %v: %v", pid, CgroupProcesses, err) ++ } ++ defer cgroupProcessesFile.Close() ++ ++ for i := 0; i < 5; i++ { ++ _, err = cgroupProcessesFile.WriteString(strconv.Itoa(pid)) ++ if err == nil { ++ return nil + } ++ ++ // EINVAL might mean that the task being added to cgroup.procs is in state ++ // TASK_NEW. We should attempt to do so again. ++ if isEINVAL(err) { ++ time.Sleep(30 * time.Millisecond) ++ continue ++ } ++ ++ return fmt.Errorf("failed to write %v to %v: %v", pid, CgroupProcesses, err) ++ } ++ return err ++} ++ ++func isEINVAL(err error) bool { ++ switch err := err.(type) { ++ case *os.PathError: ++ return err.Err == unix.EINVAL ++ default: ++ return false + } +- return nil + } +-- +1.8.3.1 + diff --git a/patch/0105-runc-disable-core-dump-during-pipe-io.patch b/patch/0105-runc-disable-core-dump-during-pipe-io.patch new file mode 100644 index 0000000..78890db --- /dev/null +++ b/patch/0105-runc-disable-core-dump-during-pipe-io.patch @@ -0,0 +1,35 @@ +From a912d31830ec000bc97d400784ea4a9165b0bd84 Mon Sep 17 00:00:00 2001 +From: jingrui +Date: Mon, 8 Jul 2019 19:49:24 +0800 +Subject: [PATCH] docker: disable core dump during exec + +Change-Id: If649738854616c1f448a148aef1f2cc414715616 +Signed-off-by: jingrui +--- + libcontainer/process_linux.go | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/libcontainer/process_linux.go b/libcontainer/process_linux.go +index 4a7321c5..7a3da4fd 100644 +--- a/libcontainer/process_linux.go ++++ b/libcontainer/process_linux.go +@@ -17,6 +17,7 @@ import ( + "path/filepath" + "strconv" + "syscall" ++ "golang.org/x/sys/unix" + ) + + type parentProcess interface { +@@ -66,6 +67,8 @@ func (p *setnsProcess) signal(sig os.Signal) error { + } + + func (p *setnsProcess) start() (err error) { ++ unix.Prctl(unix.PR_SET_DUMPABLE, 0, 0, 0, 0) ++ defer unix.Prctl(unix.PR_SET_DUMPABLE, 1, 0, 0, 0) + defer p.parentPipe.Close() + err = p.cmd.Start() + p.childPipe.Close() +-- +2.17.1 + diff --git a/patch/0106-runc-do-not-override-devices.allow-file-when-.patch b/patch/0106-runc-do-not-override-devices.allow-file-when-.patch new file mode 100644 index 0000000..81e48f3 --- /dev/null +++ b/patch/0106-runc-do-not-override-devices.allow-file-when-.patch @@ -0,0 +1,92 @@ +From 62cc623c6c6f7ae344b3ac3ce2f9fb7b3d16303b Mon Sep 17 00:00:00 2001 +From: zhangsong34 +Date: Mon, 15 Jul 2019 14:47:05 +0800 +Subject: [PATCH] runc: do not override devices.allow content when set + device cgroup + +reason:docker update will call runc device cgroup set function which +will refresh container's devices to devices.allow cgroup file, this +action will override devices.allow content even through some existed +devices in container are not added by --device, for example by docker-tools. + +Change-Id: Ib353437a1d55de260f7724b3b8e085d08c7a3248 +Signed-off-by: zhangsong34 +--- + libcontainer/cgroups/fs/devices.go | 39 ++++++++++++++++++++++++++++++++++++++ + 1 file changed, 39 insertions(+) + +diff --git a/libcontainer/cgroups/fs/devices.go b/libcontainer/cgroups/fs/devices.go +index 0ac5b4e..0ffc2b3 100644 +--- a/libcontainer/cgroups/fs/devices.go ++++ b/libcontainer/cgroups/fs/devices.go +@@ -3,9 +3,13 @@ + package fs + + import ( ++ "bufio" + "github.com/opencontainers/runc/libcontainer/cgroups" + "github.com/opencontainers/runc/libcontainer/configs" + "github.com/opencontainers/runc/libcontainer/system" ++ "io" ++ "os" ++ "path/filepath" + ) + + type DevicesGroup struct { +@@ -25,11 +29,38 @@ func (s *DevicesGroup) Apply(d *cgroupData) error { + return nil + } + ++func readCgroupDeviceMap(dir string) (map[string]bool, error) { ++ res := make(map[string]bool) ++ fi, err := os.Open(filepath.Join(dir, "devices.list")) ++ if err != nil { ++ return nil, err ++ } ++ defer fi.Close() ++ br := bufio.NewReader(fi) ++ for { ++ item, err := br.ReadString('\n') ++ if err != nil { ++ if err == io.EOF { ++ break ++ } else { ++ return nil, err ++ } ++ } ++ res[item] = true ++ } ++ return res, nil ++} ++ + func (s *DevicesGroup) Set(path string, cgroup *configs.Cgroup) error { + if system.RunningInUserNS() { + return nil + } + ++ deviceMap, err := readCgroupDeviceMap(path) ++ if err != nil { ++ return err ++ } ++ + devices := cgroup.Resources.Devices + if len(devices) > 0 { + for _, dev := range devices { +@@ -40,6 +71,14 @@ func (s *DevicesGroup) Set(path string, cgroup *configs.Cgroup) error { + if err := writeFile(path, file, dev.CgroupString()); err != nil { + return err + } ++ delete(deviceMap, dev.CgroupString()) ++ } ++ for item, _ := range deviceMap { ++ if item[0] == 'b' || item[0] == 'c' { ++ if err := writeFile(path, "devices.allow", item); err != nil { ++ return err ++ } ++ } + } + return nil + } +-- +1.8.3.1 + diff --git a/patch/0107-runc-fix-exec-problem-caused-by-libseccomp-up.patch b/patch/0107-runc-fix-exec-problem-caused-by-libseccomp-up.patch new file mode 100644 index 0000000..32fe306 --- /dev/null +++ b/patch/0107-runc-fix-exec-problem-caused-by-libseccomp-up.patch @@ -0,0 +1,41 @@ +From 60153d0c986ed01350a74fb93b39836b59e8f26e Mon Sep 17 00:00:00 2001 +From: xiadanni1 +Date: Tue, 20 Aug 2019 02:40:45 +0800 +Subject: [PATCH] runc: fix exec problem caused by libseccomp updating + +reason: libseccomp updating causes runc exec performance +degradation, which causes container health check failed and container +is killed. So we add an environmental variable to skip this unnecessary +seccomp step. + +related test data: +before fixing, exec "runc exec" 20 times, +start time: 1566210117.193673318 end time: 1566210125.493181368 +takes about 8s +after fixing, exec "runc exec" 20 times, +start time: 1566210059.708669785 end time: 1566210060.879416932 +takes about 1s + +Change-Id: I751ac8354394bd15a420ad8410b12ef3f75622a1 +Signed-off-by: xiadanni +--- + libcontainer/seccomp/seccomp_linux.go | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/libcontainer/seccomp/seccomp_linux.go b/libcontainer/seccomp/seccomp_linux.go +index db4bb4e..0c97da6 100644 +--- a/libcontainer/seccomp/seccomp_linux.go ++++ b/libcontainer/seccomp/seccomp_linux.go +@@ -29,6 +29,9 @@ var ( + // Setns calls, however, require a separate invocation, as they are not children + // of the init until they join the namespace + func InitSeccomp(config *configs.Seccomp) error { ++ os.Setenv("LIBSECCOMP_TRANSACTION_DISABLE", "1") ++ defer os.Unsetenv("LIBSECCOMP_TRANSACTION_DISABLE") ++ + if config == nil { + return fmt.Errorf("cannot initialize Seccomp - nil config passed") + } +-- +1.8.3.1 + diff --git a/patch/0108-runc-print-files-limit-and-usage-when-exec-fa.patch b/patch/0108-runc-print-files-limit-and-usage-when-exec-fa.patch new file mode 100644 index 0000000..b4c9db1 --- /dev/null +++ b/patch/0108-runc-print-files-limit-and-usage-when-exec-fa.patch @@ -0,0 +1,55 @@ +From e0628b7349150e8774a91d495f1203e601450aa9 Mon Sep 17 00:00:00 2001 +From: xiadanni1 +Date: Tue, 20 Aug 2019 09:10:09 +0800 +Subject: [PATCH] runc: print files limit and usage when exec failed + +reason: print files limit and usage when exec failed + +Change-Id: Id5a910f360345b70c29152133991807c233c9872 +Signed-off-by: xiadanni +--- + libcontainer/container_linux.go | 1 + + libcontainer/standard_init_linux.go | 11 +++++++++++ + 2 files changed, 12 insertions(+) + +diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go +index 914da7f..3ee7d5f 100644 +--- a/libcontainer/container_linux.go ++++ b/libcontainer/container_linux.go +@@ -310,6 +310,7 @@ func (c *linuxContainer) start(process *Process) error { + return newSystemErrorWithCause(err, "creating new parent process") + } + if err := parent.start(); err != nil { ++ printFilesInfo(c.id) + // terminate the process to ensure that it properly is reaped. + if err := parent.terminate(); err != nil { + logrus.Warn(err) +diff --git a/libcontainer/standard_init_linux.go b/libcontainer/standard_init_linux.go +index b25669f..ac6b3bf 100644 +--- a/libcontainer/standard_init_linux.go ++++ b/libcontainer/standard_init_linux.go +@@ -215,6 +215,7 @@ func (l *linuxStandardInit) Init() error { + syscall.Close(l.stateDirFD) + if err := syscall.Exec(name, l.config.Args[0:], os.Environ()); err != nil { + printMemoryInfo() ++ printFilesInfo("") + return newSystemErrorWithCause(err, "exec user process") + } + return nil +@@ -235,3 +236,13 @@ func printMemoryInfo() { + logrus.Infof("print memory info (cgroup memory.stat): %s", string(output)) + } + } ++ ++func printFilesInfo(id string) { ++ if id != "" { ++ id = "docker/" + id + "/" ++ } ++ output, err := ioutil.ReadFile("/sys/fs/cgroup/files/" + id + "files.limit") ++ logrus.Errorf("cgroup files.limit: %s, err: %v", string(output), err) ++ output, err = ioutil.ReadFile("/sys/fs/cgroup/files/" + id + "files.usage") ++ logrus.Errorf("cgroup files.usage: %s, err: %v", string(output), err) ++} +-- +1.8.3.1 + diff --git a/patch/0109-runc-add-copyright.patch b/patch/0109-runc-add-copyright.patch new file mode 100644 index 0000000..ee75ece --- /dev/null +++ b/patch/0109-runc-add-copyright.patch @@ -0,0 +1,31 @@ +From 8756ef9699eb7bd2c2ddd6cbff2f0f81d9991c05 Mon Sep 17 00:00:00 2001 +From: xiadanni +Date: Fri, 30 Aug 2019 00:43:29 +0800 +Subject: [PATCH] runc: add copyright + +reason: add copyright + +Change-Id: I9bc9a29de3c6138eee002b26ffd4b56965c0ea0f +Signed-off-by: xiadanni +--- + libcontainer/cgroups/fs/files.go | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/libcontainer/cgroups/fs/files.go b/libcontainer/cgroups/fs/files.go +index da4fd7d..d39b610 100644 +--- a/libcontainer/cgroups/fs/files.go ++++ b/libcontainer/cgroups/fs/files.go +@@ -1,4 +1,9 @@ +-// +build linux ++/* ++Copyright (c) Huawei Technologies Co., Ltd. 2017-2019. All rights reserved. ++Description: files cgroup common functions ++Author: yangshukui ++Create: 2017-09-18 ++*/ + + package fs + +-- +1.8.3.1 + diff --git a/patch/0110-runc-add-lisence.patch b/patch/0110-runc-add-lisence.patch new file mode 100644 index 0000000..85bc12b --- /dev/null +++ b/patch/0110-runc-add-lisence.patch @@ -0,0 +1,28 @@ +From b14e625669a92cf838c8743ecd9ee5bc278b54fe Mon Sep 17 00:00:00 2001 +From: xiadanni1 +Date: Fri, 6 Sep 2019 21:32:31 +0800 +Subject: [PATCH] runc: add lisence + +reason:add lisence + +Change-Id: I7936f07063082ac2b00bf8175d2ab8a5144f6bec +Signed-off-by: xiadanni1 +--- + libcontainer/cgroups/fs/files.go | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/libcontainer/cgroups/fs/files.go b/libcontainer/cgroups/fs/files.go +index d39b610..3315cda 100644 +--- a/libcontainer/cgroups/fs/files.go ++++ b/libcontainer/cgroups/fs/files.go +@@ -1,5 +1,7 @@ + /* + Copyright (c) Huawei Technologies Co., Ltd. 2017-2019. All rights reserved. ++Use of this source code is governed by Apache-2.0 ++license that can be found in the LICENSE file. + Description: files cgroup common functions + Author: yangshukui + Create: 2017-09-18 +-- +1.8.3.1 + diff --git a/patch/0111-runc-add-log-message-for-cgroup-file-check.patch b/patch/0111-runc-add-log-message-for-cgroup-file-check.patch new file mode 100644 index 0000000..38efc55 --- /dev/null +++ b/patch/0111-runc-add-log-message-for-cgroup-file-check.patch @@ -0,0 +1,67 @@ +From 2150d9c48ff9073b0d85e4075b508579d82f3d27 Mon Sep 17 00:00:00 2001 +From: zhangtianyang +Date: Fri, 18 Oct 2019 19:59:21 +0800 +Subject: [PATCH] runc: add log message for cgroup file check + +reason:docker report "no such file" when try to write cpuset.mems, +not sure weather is deleted or not generated by kernel. so add +cgroup file check messages for further maintainance. + +Change-Id: I4c835f62547b0404a9cffeda643fe028f1b4aa0f +Signed-off-by: zhangtianyang +--- + libcontainer/cgroups/fs/apply_raw.go | 7 ++++++- + libcontainer/cgroups/fs/cpuset.go | 13 +++++++++++-- + 2 files changed, 17 insertions(+), 3 deletions(-) + +diff --git a/libcontainer/cgroups/fs/apply_raw.go b/libcontainer/cgroups/fs/apply_raw.go +index 1bf59a47..7677f336 100644 +--- a/libcontainer/cgroups/fs/apply_raw.go ++++ b/libcontainer/cgroups/fs/apply_raw.go +@@ -313,7 +313,12 @@ func writeFile(dir, file, data string) error { + return fmt.Errorf("no such directory for %s", file) + } + if err := ioutil.WriteFile(filepath.Join(dir, file), []byte(data), 0700); err != nil { +- return fmt.Errorf("failed to write %v to %v: %v", data, file, err) ++ ret := fmt.Errorf("failed to write %v to %v: %v", data, file, err) ++ if _, err = os.Stat(dir); err != nil { ++ ret = fmt.Errorf("%v, failed to stat %v, %v", ret, dir, err) ++ } ++ ++ return ret + } + return nil + } +diff --git a/libcontainer/cgroups/fs/cpuset.go b/libcontainer/cgroups/fs/cpuset.go +index 069c4915..bc654948 100644 +--- a/libcontainer/cgroups/fs/cpuset.go ++++ b/libcontainer/cgroups/fs/cpuset.go +@@ -31,14 +31,23 @@ func (s *CpusetGroup) Apply(d *cgroupData) error { + } + + func (s *CpusetGroup) Set(path string, cgroup *configs.Cgroup) error { ++ var ret error + if cgroup.Resources.CpusetCpus != "" { + if err := writeFile(path, "cpuset.cpus", cgroup.Resources.CpusetCpus); err != nil { +- return err ++ ret = fmt.Errorf("failed to set cpuset.cpus, %v", err) ++ if _, err := os.Stat(path); err != nil { ++ ret = fmt.Errorf("%v, failed to stat %v, %v", ret, path, err) ++ } ++ return ret + } + } + if cgroup.Resources.CpusetMems != "" { + if err := writeFile(path, "cpuset.mems", cgroup.Resources.CpusetMems); err != nil { +- return err ++ ret = fmt.Errorf("failed to set cpuset.cpus, %v", err) ++ if _, err := os.Stat(path); err != nil { ++ ret = fmt.Errorf("%v, failed to stat %v, %v", ret, path, err) ++ } ++ return ret + } + } + return nil +-- +2.19.1 + diff --git a/patch/0112-runc-add-log-message-for-cgroup-file-check.patch b/patch/0112-runc-add-log-message-for-cgroup-file-check.patch new file mode 100644 index 0000000..c219484 --- /dev/null +++ b/patch/0112-runc-add-log-message-for-cgroup-file-check.patch @@ -0,0 +1,45 @@ +From f7d616b27608938de3bfdd8f03b9cb38fc404c4e Mon Sep 17 00:00:00 2001 +From: zhangtianyang +Date: Sun, 20 Oct 2019 17:25:23 +0800 +Subject: [PATCH] runc: add log message for cgroup file check + +reason: docker report "no such file" when try to write cpuset.mems, +not sure weather is deleted or not generated by kernel. so add +cgroup file check messages for further maintainance. +write action will not report error when file not exist, actual +reporter is read action in cgroup copy function. + +Change-Id: I8e1620dd67907730f0fc4d4d7004d710c7665aa0 +Signed-off-by: zhangtianyang +--- + libcontainer/cgroups/fs/cpuset.go | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git a/libcontainer/cgroups/fs/cpuset.go b/libcontainer/cgroups/fs/cpuset.go +index bc654948..76cb719b 100644 +--- a/libcontainer/cgroups/fs/cpuset.go ++++ b/libcontainer/cgroups/fs/cpuset.go +@@ -161,10 +161,18 @@ func (s *CpusetGroup) copyIfNeeded(current, parent string) error { + ) + + if currentCpus, currentMems, err = s.getSubsystemSettings(current); err != nil { +- return err ++ ret := fmt.Errorf("failed copy parent cgroup setting, %v", err) ++ if _, err := os.Stat(current); err != nil { ++ ret = fmt.Errorf("%v, %v", ret, err) ++ } ++ return ret + } + if parentCpus, parentMems, err = s.getSubsystemSettings(parent); err != nil { +- return err ++ ret := fmt.Errorf("failed copy parent cgroup setting, %v", err) ++ if _, err := os.Stat(parent); err != nil { ++ ret = fmt.Errorf("%v, %v", ret, err) ++ } ++ return ret + } + + if s.isEmpty(currentCpus) { +-- +2.19.1 + diff --git a/patch/0113-runc-modify-files-cgroup-info-reading-path.patch b/patch/0113-runc-modify-files-cgroup-info-reading-path.patch new file mode 100644 index 0000000..152357f --- /dev/null +++ b/patch/0113-runc-modify-files-cgroup-info-reading-path.patch @@ -0,0 +1,79 @@ +From 6c40c8e9d74a61bbca97b1c98efaa5e1f75a02e1 Mon Sep 17 00:00:00 2001 +From: xiadanni1 +Date: Fri, 1 Nov 2019 00:46:28 +0800 +Subject: [PATCH] runc: modify files cgroup info reading path + +reason: modify files crgoup info reading path in case user sets --cgroup-parent. + +Change-Id: If33fe87cafe813d2e40b664c52c31416c16e4587 +Signed-off-by: xiadanni1 +--- + libcontainer/container_linux.go | 2 +- + libcontainer/standard_init_linux.go | 30 ++++++++++-------------------- + 2 files changed, 11 insertions(+), 21 deletions(-) + +diff --git a/libcontainer/container_linux.go b/libcontainer/container_linux.go +index 3ee7d5f..e7c178b 100644 +--- a/libcontainer/container_linux.go ++++ b/libcontainer/container_linux.go +@@ -310,7 +310,7 @@ func (c *linuxContainer) start(process *Process) error { + return newSystemErrorWithCause(err, "creating new parent process") + } + if err := parent.start(); err != nil { +- printFilesInfo(c.id) ++ printFilesInfo(c.config.Cgroups.Path) + // terminate the process to ensure that it properly is reaped. + if err := parent.terminate(); err != nil { + logrus.Warn(err) +diff --git a/libcontainer/standard_init_linux.go b/libcontainer/standard_init_linux.go +index ac6b3bf..96901ef 100644 +--- a/libcontainer/standard_init_linux.go ++++ b/libcontainer/standard_init_linux.go +@@ -7,6 +7,7 @@ import ( + "io/ioutil" + "os" + "os/exec" ++ "path/filepath" + "strings" + "syscall" + "time" +@@ -222,27 +223,16 @@ func (l *linuxStandardInit) Init() error { + } + + func printMemoryInfo() { +- output, err := ioutil.ReadFile("/proc/meminfo") +- if err != nil { +- logrus.Errorf("Failed to read /proc/meminfo, %v", err) +- } else { +- logrus.Infof("print memory info (/proc/meminfo): %s", string(output)) +- } ++ printFileContent("/proc/meminfo") ++ printFileContent("/sys/fs/cgroup/memory/memory.stat") ++} + +- output, err = ioutil.ReadFile("/sys/fs/cgroup/memory/memory.stat") +- if err != nil { +- logrus.Errorf("Failed to read /sys/fs/cgroup/memory/memory.stat, %v", err) +- } else { +- logrus.Infof("print memory info (cgroup memory.stat): %s", string(output)) +- } ++func printFilesInfo(path string) { ++ printFileContent(filepath.Join("/sys/fs/cgroup/files", path, "/files.limit")) ++ printFileContent(filepath.Join("/sys/fs/cgroup/files", path, "/files.usage")) + } + +-func printFilesInfo(id string) { +- if id != "" { +- id = "docker/" + id + "/" +- } +- output, err := ioutil.ReadFile("/sys/fs/cgroup/files/" + id + "files.limit") +- logrus.Errorf("cgroup files.limit: %s, err: %v", string(output), err) +- output, err = ioutil.ReadFile("/sys/fs/cgroup/files/" + id + "files.usage") +- logrus.Errorf("cgroup files.usage: %s, err: %v", string(output), err) ++func printFileContent(path string) { ++ output, err := ioutil.ReadFile(path) ++ logrus.Infof("content read from %s: %s, err: %v", path, string(output), err) + } +-- +1.8.3.1 + diff --git a/runc-1.0.0-rc3.zip b/runc-1.0.0-rc3.zip new file mode 100644 index 0000000000000000000000000000000000000000..4aa86d9e552a322d512e4e221b6f9101cb7d9a05 GIT binary patch literal 658025 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

H$KxHUO-y-oyLQx_yiaIm~ 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%0ADgw6AM0icp1vh6L9nt1IZn<6 z+^J~7Jhg){Rli42Cp4;%(r(=$PS`L^X{CJUUnH7H8ZhOU%?i`2ivB+HeX%CyICcx# zc>xqEd|)5yHKxH8PF0k~#}B0hsT>s{kMG*)Sm~#3?|CspiAfW=6HtrOdb#O--=GL2 z*y8=(hUnZ8wQyD8k`Q{0gI-ezxDXCM@4o~+{*hQl$(?}NXb^!}{!2#G$K{FT)1iDL z({kWdlZtpT7{IXIz^(N}?Zkgk4BK|>sUf(pfBGcP>+~fA_ zgM{tHS1A0!DKz?mNhQueVZZc;M z`p&&JTgX@pp8&x$2ijOwXUkeEb>!HBG+2~+r!B67V8KI~?F0!kD`KOR8(W5{7L-K& zqWSBbkYGbIIEc^l}@n~?~Cy5*MajP@za}T(AMl+;{GB%KJRv3E!8ld+4cWz#0z<@ z6j82fRQZg4acin#(Ej_s4zT~<X|5$pAcFs~_NcSi?w~2yRh@VhkEZn&UPhoJqBAk@%Jz{}=(pz?gOp@@Zzxz2DzxwoA(hYl zVHyLOXz|NjsOdg{>94dJ!FOv7)=5*kq4K z%wJUzcPa`Mv}@>H7w(e00l#IDf)D&R=r3Y$a45Ypx+(~ZOTnK)Q$gMr6&$vcX|lNY z)s@A=2|$V%IqZ$qZ(_wGK-a%$Z~#rip=F6${(Hs&GOM?y-j=j^rK@KJm8A>pp{}5z z13pZ_^}OX%h4r0OcrfQ&p7`hj{BKy6JkLf%?`Y25xi@(#r4;Pqr{pVha~@@r{NhLE^ZI? z#SY+RpN2AqPM^{TY`<%R!69*9zi}orJTMHtB2=oRy9k5Vrjl^WPW{E*V`**!qS5(;Y^Xx8O$AS`f6`!H>+1N5EGPe`5VoUe_AAuc(8x~6v| zN9Q0At%z&ifs@{N(ry;fYm~0*xC$j{andC*u(5Yi-HV~4P!3mXRn3~B54&z4`T>lp z8s85yL&2#rZ)&U@vdN^lcYs+bbi+xACwW5Y`?yM%Mubz)Jd!ZgYDz94&RYU^HT|0= zQ1;Bj&c$xdGFe8jrf3iYPNm(+QCp&cBG5B@LV8qx%xO|Ai#>1Jkjqe4CTXoc_z;i7 zCF&p@3Hj})vHiYrrH?{Y1&?0R&%N%@Ew!}Kx>7)L^T(X&SExZjUv9z0UaF1kU{@D)2|caU5KE0FyN}*t5*#1f>^5HWU)W5 zznC(ET?ImaJ+jAWKxUM}a_4tv3cPdxrnK!3#C_C3Nhj+jw2zhz7=z-Uze~C{?NJuw z1K!wsKI;P*$S&?L7YEm$+3TY!b}D!xZ#C|_9R6;Or6Y7-YEe#k4V8*D+XAl`k86VP z^RKZOotBRVVc?v(1=PL&7(nZpD#bcuf$G$O5)VtfspOtA+(z#MaygWEog#yQl&vf5 zxvGM|3L;LDhVZ)p$D%;;%DQ4B%FS&_HlhyVz>p};$~x(4j(dswTR18480zGh;SOAC z3gWba;x^T!I~5x2W@P04xqnDlyKTY>9EeCZ7v}69w{lX$Cs;P{Z=P<%j2xi5p6c)R!@Q6%48&ActoTnrq_-GI z2z5t7hqm3h`>)X2^3^2LW31@mk;+w8I|oX)TF7PRzCWQ%{>pz9KWEPLIMacusT5xi zbydYQU~rDP+9&Q;or5D@v=23=^;SL}r>lL5^0(aQIL}T7Y_&WV(LQY)GM@vwI_3wf z<5`)H=^MNYVn?OmY}{G03)ri9YCCs@#3z?s>f7Bt_HH6HpsETUZ+t{5KU24gH;0Ze?I*Lh#>12l`)m_A?3{Ht27?O3-)z z`X{~0{~TYo&NhbsdVe}8PTLNJ5ivOX_Iq%ZT1wT+(U+|WX%n6Z`xhXW#kvV?Jzi9W zFW29ZT7Z4H4y6Z4yX~2ErHvW_B7Ee1g=BRgfT#)GND}RbQUFD05R0A9^t5zx9=Sit zX+J06;@^h2$4pw1XvAM=uv!LLJBUUx-FI>;1&L`#n>=nZTgnOl3KOcRRVi<>__ROo z&_fj?@6r}JWv`KZ!{;UNKNwV07+iBUp zEvS16&~au#7FoReX>fw|?-agM(>v*IM~r0GOUHryZML>MhG6du?q%m5BtF)IOr3wx zwa24&xGywtvp?=qWyDsG$p5vvbb;`!FutoR@q0P?C%uD-qvO9uPkO6J+pROe@`-l` zj8L`~JOgvX>cSkv|Co%(WDU0sTFWDx9S_L;>+SJESZqu0FYJTQ-!-6Crv4hBkiH#3 zBW*MbW$-5%w|{L$E3BQ{%|2#>*8*(ce;RT-#UZPH=$5 zW{8&YTZysN3f!%B?Yz_b$t1PYN^D^pO+!#m+IV~;r}BL4?#mh`%! z3*IBHlcD9h_P(-NWi36xXj-mMTpYR+-vnVn+o!=tqS9g{*uSr7v7p!o2=RHs4OR#%rX3GdNmz60Gcb`m<<-8hk4NeaRE9&V}NU zbpllA>l~Qd?l>wzSAld|pvA&aGPP)iOkXg~Qcp<%YKC((isOqUcJPvR>>d7%gnAnh6&Y9dXg=QfX>o5+5jT=q) zb&c~0;{&6MLD()QuJkVqWCW&d<&R0yjN;Ae)Rgr;A=(6)wnT?NUTmMcD}%y0j2&mU zg`sNyj@=N}HHX@NuirS|{fqJ+dg%XKVgIpo+bE6O_Awyxkn7h*2Z5pOfhswa35*5j z3CXJ>3~dpVhud7hQI)+suQ?zKSlFfwU%54e+}gQ_lpOe5iONtlSWsEz(+Y~6NR$~R z7n$U9Tzp=SY1!yE_E7c$hUuS}Uu03P6d_)bElv3#HdBbtS+nG!6-y98IX8SY3H?;j z(^~vgW;iB}1k0x?;`0!#Y^=oGi=!zLX;+~2-&eGcI`dHADN@m|3JZB$nC}dH*%O+r zjj$vuwLY)*AkUvjnoZe&_=EsP-aqxf~k5nCTCk`vvTKdv)Z-TJ#aqlOjkfw#h#4>aiS`l zaH=f+1QqV;9PtGU%2D)fY7~7?4lzSN6G{Kdz*hUg)Dx-eDLua`Ezd)1hY~=VJNO5w ze9VGv=N8DoF+g}9Mkwa)Vt16Xy)xSs)XZmy)wrX`_g^~%Yx2rw%6Ero{q7L|6bWW( zVB}=y=>ETJh@8K39_ASkdF{Fk8;Vhr5=Apwa)Xno2x|>@L3PaLV%TblJ?Cr%KDhTC z;$0M5Nt=#eJK60vaNez-AZafvT&+h8D4@?g@G-~sj$GuuFkO-!H;0~2l7$^mz|GiG zoN-<)&GGFbRTXbmhbei1L$O(g9}39^fX{DgKo5U}OXFP6VvL((!PL|IlyFpu=; z-?7xJa(`D(2ee{e1NaQ3HV@k|h*Ze~B1eKQ|MBAAT8hz!PX83g9KP zJops`*{;|Fq)&18Lmn1wgPtrE#MTu->NB08>C+XMsx zATpayS4Y#Zmv-!WK-h9|m1K$;%U155aCj^Q+Z+0#*xmfN^oc5KmtYzZxdu~ecA&Ex zQ&i}o&HplkHI)RBphe{kNx_4&IqE-aEX(T1Mozma;w~%CTWWepYIdhz)EfJBbl0cV zfj?LuyGK%*>diNP&FVx(u!0^f&3lq7!#0Ww)_;&mWwITo8&1o)K)R@Wx5PZoKCh#q zIS4&g*n2)9c0?NYekKcNoy8hl^O=F$l7$p)&|<#n9;)*s`$B1s;+3M@CsYk0Su}G+ zdUg^oAdxwi??3|OXQv0MXZKN$s5nb?bvGDh&yHtMn zq_BMVR8jj!0f##@AFr+dXE_9oNmYo)%&WX1$R5m^4G8K*e6(ll(W&hf52SGO!H(?Vm1lE?u#-xj~X{A-Qd z@}ir^e5ZZzelL3eB-Q)x8voBb>62QXcIzWZf7jnoJ%tkD!-Y6S{Xyuw{K{8K;lqsv zy6_@&{^XAqHn57;Z4_Fw-?(1$xTF-|HC+^#{}?WMVr1sNPhV!*uXS@@E#X0HrTUZJ zn-h^x?nbtIZlZ)vrWRZQ0oqtHwifoC6PzfjR8*E4{kL@75E68?Zzo%6|C);J-l51b z9Dze&JguYjq?9sBYs7(yJ{=3*Tp2Wyly~clWa@qwD9dbYB7K~K5@WwXrpoy8OGUl@ zHV=%d|EsJ{D6OKx1J*0vLH)ylseHU>PJV-JDyst}#^iv=`{Ai>WZ~jg$9>%m>zFD! z+Uw$Ls024PBoH{tqOOTe;23N|a{z{N2S5?Rg06W!j+2&AQt@E*3php;3l_Q3M2DC( z$w!2Q;75qaL)YxLy^LxF>*MLSe79b=*Q3?L>*2Kz41{Ooi|L=PgdY_?oqt35i860B zWME8U&eFi4i%MZ=_k19_9< zmJbX~RDs6bEW)gwRmcQ<2MAF4BfPOUKqdL5bdRK=$fu0*cYq5Q+!Qp;c?#2p#VA1A zG=`{t(*rDAhtlF2B~)o&KSp`zOp&J=#4lnOi$AA{6G0j-blAAs4gh^RFJ^x}b`?;m z%)&QHq1`{#KulE}qe6T3qXvRh_-P@13F*3VcKBbC#J5~R2Rvrtm0p3+H{*h*R}IK6 z_=R|<1{j7#;#6RqmlX30YrZ5zETI_4Jn8p9h_jrvtRA{Z&e0!Srt+2DZBjbPr3&O( zxM8UDG=`(x7Dv|Xk<_y>C9{9#WI)DDEvv~+S6MRD$uh#-xK29wc#{+0lZG&L|q0I}|027xQ;{z(@E35X&{-dG#vs{nAgeYqAv|Ej+t`6RGL7;>sNhmOBIl&$lR0Q^JFTF{&i3twMu zxt(`&0QTO9ENE`1QVdU)E2*dp z{u_AqkLdEsIzGgzn?4EDAdXWS_=OPjyWOw?i+(JLRA9cYSS`gN?D~e~+lUw{`&$T= zx?W!e#jRiuzFi~6eWE1Ijf0_mVgK~yn;(dvOfHHewYUU^w$!V|P+V5XfdK}ubD_lX zryz(Qs{NoOre%~6#)vQtz(_YH!clma(9A?Zv*1fef@S+aTWA!rx@9_8r0z*od*>jd zin0rB2n_cPnYn3&&q{+@xdMKK7+JF+ReIJ6NF*aVWa_F=Yk6SchBIknQ6r65$QmAN zx*>RiQwWX1$mAn2)7;`klq4%xk309mGTyw@E&=3cvb}G(#G#+qOhq8X0_T)B4y3Z)1_Rud=mL7CwwPNX;Xc*voA4;vWbIfclJ%$r zA-f()p6n-X=6IaUGTVMF=Ur__Wz_4Pw;Kr!9-Y|>a*rG}mMYpH44Ws_g>3wR4bLWj zbpvVbQ*DlJp57g96i5Q`oIFypdmup7?Pucrw^J0!2Q!2-pgh1T^blMVN?@Xvs40Jg zh#W-Efin%)AI84?9$?8t=eG(EfJqa!iF!mCVO%UOxz!)!TV*$J!7hZr|Uo`%H^Jf5goQGcGpmEjR1MC?~DJxyo z%WZ`yEC!bO9y33?rFsBKW2*v;drjBe^zIwYA}=D>*f6^S9h$?Jm}QUL53#xY_udVr z6T}Mf&(h38t=s6V$ch%fPad;?1RHolmm8SwBfRGutEJ8YYQb}Am&7h5_Mf&l_mx+2 zi+yEGG?H1`_rgJY5jai2^x>9if|~4RHCM@tu8(^#B{_jJTn@#VxGvYGp;tbzm%PrR zI2d6RZCA-ndv|I(Ce_q2)IV4~z#A=f>8wSyh0!K4I331(WRC-r}q+3ADaqg=Jr4$4#I>;z+KX}Nbo)SM?($&~-Sv1<&8r8== z-Fjdh5%!4t)m9kxoYTeuUar4_+<-M<=t~X6(4`#-RU&&}EK)tF;b0;9>931?)4Vu3 zIsRnf`F=3*X6j|gPRE22+7Z8ZD?Wm*PtnKF#ca#)x7nbei}KXKWliyS5StP%U)990 zoE`Y>t!E}x+gws7o{S_?on)MM-K@gh$ojJnH4STg593K_4lgm+sT|D`+Z*)a{z&6o zv7#A)K|`{6E9elo+6FZ|n+<>V9Iva6UdGgP8or3_()zHE@|}(tit0PeME|OlMx=eZ zO)5GJ!eR6M9W@MW0p5PCGvsv~%fc$k3lqL=l_3c!o-?h_Z)-cs}IXQAv`O~a+QF(fyQanO%OOjbY&rtGEq zt>eF<>l1VE#B&9P)O`mDUp>mQ#;6UirbRsA)qjw#jQTkJ=%;KYDcD#iYJG`VFrWSj z^yYzv8WxfO9rNpsD944W@NQFUF<@xzSujSy-Q~>3GN>!*R2R{<2COgrYROm$#Fo=0(F_5j(PlTBBa{j1HU=8&e zG7n4_ck9q|w=SablVq6_GRXp&T8}#Q+u_uZYSk=dkfTas#uQN^gMwIirvipaYDU?9 zy)>~dWJQ&)UW+CSMjKN7b&#%0DZPyMy6vOOiuHJ3KPl1^b~u^*=PS;Q5;)A&IT`-k zNZ%*=xa3$$1@(o|cCsz)$=X@EAl|O(#ue**R8yHMAx-(sHk9pJBN;EymLC%knwYmn zJ;CqK<_(wd>wh-&%bu>9I{ZIz;5*i9s$cV;YbA4Z$gY7%pMutNcU7F~+rnh8nS#lS zPoZRAt)RRBF+4t~U)^vY%PWt1lAr%3pupz_1K5ARz&)b;vw-4X7To`M8Nbxn{LbY? z^lkcr788J=R4z2eWatsb<09A8X3>mwTM+MSNXfhri`k0HE z3=z8b^ZL0R0gqA?>D588o`;l^`W#}obk7)#o|11HjnhK3Nr3!SPRN3{BNX8ARkVjK-_M=>F zykzG)hUU4!O>{gtHcCX7OflOCEI*3&kY6_>tA}XYfhjgF-X{%o(rPN{7)726I0{rK zc&CqCeu~6Ih(G=miqQe`xS>QY?M8>4z;?UkoEs(C;xZ6LsSX!T228b)0?IOQAgv

vrjVojfxCAz8J`{Q^c5TnrJ=MOSg}%}lN!l$)OSK`^R=NWi zfwAa>6g&qZ?vX+3ydgWa{>AWdF)E?aM4Vn4Qj8a0sJDADuZ7Q6&jHs6s-|h zFGc$XT1^fZ3VAt<dtB%Y7)P8~5ZZ{A zp!=nslf_@v3|nd$Nzmuc8o(vS4O65;n#bb1J`CYl9Of);MJVuCai38VBN9fW=GHIf zhMR^PH(Dgqh8odkj8RjNAyDH`ig`sbS@lrN0V(rI%;6jr)`npyw%vm(+!8NlrL5M} z7N+!c$IZoN_w4n}Um6e}J^K&w<@FFXZ<~$1pJmre8YgY&ZwIZU`0b@p&ckeJ6tk{` z@qtibAjUafvW#pmHLY=g85=G#SmA4#?R>q9cwO-tbB*jypRguVp2kXxC5mQ?wMCrh zS}-*sP1^?%nt2;(L450F!th<|lq;&ZOtd?tCzoY$R3s=f2~h#kD!}4kcIrAqxB-MD z8nsl-KC1m7xK`0m_Z17Jx%WUgAK2w%NtCMQjB1jJuV2+mxmh#mf2I5oYW+IDZk6>d zxrCXS_eFtW8+u}jjfG#Feq6&U@2M^AopaB)ET0RoLwJaer@iXMKwZFD zzhdWc*lLTY|JnXw)pS^?g&gD*<*hW~z+?d><2C$@Wi;wOQWS zE>(anU`Y$x$->@en_A9_(#zG7i+G)fe_d|H89F&;8-YzQQr5$UpBXy0 zRN9!4CP1tvFqL6WQ7S(qfG~%Ulj5mnb@m`A3Wg6)o*(I?NK7ikGh=6~f!(6jP*qeJ z;I~?hyGvQPxO$9TXONak%QkQ){xf;)1?EZ%;JyFkcDWeCY22RZ7W$Ty$D91*$$C1r zH|QD31I%yi-&8n&M52$tlK`Wg(~5X7Xs{n%e82!okhY< z3-b3lE`Gmd^Ua|IX#iQ0_l{S}G1HX&6g)S!T;|)Mi*`m3Yf{+|Oo18fZXxU;Irta- z`eMOQ6QfkrES9v>q9*RCO*333NmvW^vQmy&3mc->rVO}I?X3

-#>^5z znUIUqmScO-SEDumu2KxfwtnfPrT7sivqNEqGjT+KJ|Xmi37sWF)^H=yM4SK0;UKk9 zse<-O-!TJfX0|I*hsou()};Ubil9_!^Q=m1G)F`JtHl2Or=&t!W(^4v)PArG0jQbb zRxN%X9VXH{2#Nx`j31HcfzB-kTbysfEL&S%&aVaVd^k|0gZD`Sm{2&9V>p7TMYaeO zM}+~{4`Hj!L3aP_sAD-+etv6Ehm55}%zXK%xi%rr=XOq&I{PFCTJK}8+bpLGbf;i| z$_(Ct<_69h_wNNP$T`|^mbohr)C>X4A$dRDSzCTNoWNJm*;S#2h6*;QjQ~U;HFRe= zRM*S$`MGeE$Ug$sc$^Y_L?thShFN8Yi)ougDW+VX>_zpMHOoOdMr43+t8Bz3l^}qz zl+^@{ifpS89F-Z(vZa0ds$XlIbF>w3%JLl0r;6%EplVItqJ<*j(b<*(<=cF$Yv_nT z6-)kXxlARgDcu+vK?l=c(x(72yN*eS(bavf`JX_`6Br1+$Lw5SPhDb|j)rG&jUhQ6 zmRVTxpz?jHi~4xL0A2;ss6)H_GEEMs6#wI;*G7yLy=9qQ0{Gfu3*2!}^^v{YL09lhz$sy(=$dl?ET=GCTG^ zuZO+R$lrv@z1~--c$9Kvpgi>OV4)C1mWji{peDJV#JbQxxj1zY_$t0P%ZSN zynBva5zms-LjrIr*hSFm8!Hgfs1c@$w6d2c=$31;rC}Idsh7%ErxT&bUjEI|4b;@G zk%j~WbjtkCOpS%Dh0}jRpq<*Dfc25MzuF(D^&NF^R5~+T1x?6@PO1?k>oOfonv@ALXq|d>W6p{ZIj#%png#nL+EG4?T<1mxT~w#yd6(V!BI+jbbHYV0 z(QFUZlrRK3?fU*bRkpGu%3Hc7VpFQ!q52q-trfO?64he!1tpI8b&6#eqJs>T&0ORz zxap=UDw-^o0KN$HVDJz1z*Flinl5bEV#>uct6Zx5i0TmkFxORWa?{r2vIV=8j*j*GwT&#lWi(O@s@CwponVk1#(r9=s(p}``Cik86eWjYJR zPYPrW3q0{5dGp$CCfhy90_R$lcfMtgoQh>F@zjGNqDiFPYElCF3^tn9gV@?4Rbj9; zR4H|+I2IyVV-mN5Ecw(aWd^6=yPM#)`F&fnc$CyO^uR=H#9YjI%)}#FL?kN!)9e=` zs0nAnF(FgaDrm8UaS(#oB&2(x>VZRXv>%}H3z###If{+_3lc{a8Z`mu{MY;(TU@@l z`N-|PtFtCe=m?=o_I5y-c6(Rn!UU`e4dGZ4M|WhB2~3K~(?-?fQ#c3 z`Reb7u&+KtjjrP%rmVMXnhN~g`G;pGTdNQWC?qy0D>7WCCFV@gXMKhn9(x=5x zE_l@V6`u#NO(ESQ?Xpb@S_o@G><|XfD*UuUi6;r|i%UB@QA?_H7CBYYB^kVjA>u&v zFXU?|02lG3g)#U+5R-o5Kf+%uyLX^60EqAxa|%Te3-F(FRWf&uKsbl(;Pj z@Brcc)$< zZD|{*%la_NCgPj|ds8_1ENKn~JmP(=vmumhrSVkt-6X+T5ENQBO+6BBEq>s<?Be0rqR;?s4Ywt=<9(WpYsSSk6){y-rY9^E98*E z;zn|4_h7aBud=$Yd7=ZsQ2_f)oMXRqp%NC($177tS!UVHTVTuXP~*` z6Dq;wn>)Z1cWlUl=sLY)Y*G~mYBYyhP*|b_5hH(!v_oX-Nb5jtg6R$P1K+OmE+WutXC!E?O{_LGf(snupp~pc%RE@_Jt6s+I(*C}Pz8%a9trX&ng{sj0 zJ^R9}bL2S2KXc_C7lbwiojuIiC7_d(5UpapQKkY*JjK&s?L*Ht&82=`cfnbgBjkiAQ-z}%zPYt=}~_x<4##7x*Gk?N9IR6Y+6(G4V58jjr4 z6l5_}LZZ!0&;u28=w}i3>?)W=+f`BaJ=pFLAwu?(!<}rk%~mbbiMgZkggKM4oAqQ$R_F;!>&d9AS-C3YK>d;W9WO^RPO=Cp8 zw!V4Zhd$nRQcD!hu|x@Cpe)SLNgmH_5!~`~A#R^UVoi2Vmozq2ULXpW_ccuetFwkt zI40pdF@bhCr_y?hS|b~4q1hdM?3S2Fqszsj3O23{)?B0UEsucZy(bfF0(*Bjt0P|& zN`e|hLmh8P_Q+o{p8jZq=c=I`Axa}ZXk|D7GqK4y38zx4A-}Nz-%G8*=e}KFPHf(f ztV->m*QCCOcp4;Rv|S~62Ys%A`fW9?l%S}|h+_Qu>1&d0FY;{JRuwF>&UpAe<-Y7uVLCXvvNBNh@~wTR%O zYAUjVN3DjxAv#XjfS8ccl?`jXcT>m;HM%x_*Qb(IG{YOO-JJ2lQT+Qf8xKjgzQqC= zBT+|4FW{#ntUUpNB8MNm&k5v?c5JIl~_bq!q5YcpGvv5X;vfN{)g zde2ccdsIG2Z)kKPd|2qWEcfdfV#>?-^1Ao%%i}LCAo|8G*6vWUO~Q#e6BNrxijmUm zS#4BOLt4mBJP#2At;&TgvR8ucax$#_zxiaZI@@^@Tz0G0#tAu@!SIxaYaW$SdsN8x*zJ|RB-F%QYbT$OQhhvZ!JF55I8 z=_w`Jaw5J9_>L0!P-kRW_Mf}`q;bF_1wM~CupnV*2pT(&6pTe4EgRXkgFqlw$N)$zmrBFSTE!kMSpxo!Wj$ToP^P1y&f z*^Xn@g;-}vkbPIsm#FQnI-rG~_Q0H@%KLRce;#>j#r?$KGZoktURJBIVZGj%LhISu zyn{tuY_xeh4a%y&gXU$|#;Tgd%?p$?0T5Zn=E~?RAS~B9Fu;WOfZ!5qNq*eT>2>vW z;#lxcKv+E3HPGLdm9LCklGx${g0e82LNi8IhH4ckaeI9$mKG72dJ~PsVsrqRazL ztF_+$q(c2`1%{vzz4!4Q0c}r9&k>#QN8mn<*OgL`F3`&q^uV4vA2Xrh)`f$Q-{Y~9 z9ipEx!*7V4cR$c8O}OGg?GhTTxgQ`-iujqhM78WU8~Xd?Z~_@^6-g6DV|fFSP}@MU z*6F`4`^jC;74sC-;W}Lf;uTX?oX!)kY^bsQq8bx)glpMZ)*PJuYix|=n#Vqm=+22DgOU!>l$p?9P%5=?GL<`@-Ux810ie#V}E@)}%?y{qn4#f2d z<|8*^+qdB9>_x3UFOay5kys!(drK9GweNavTC9c3yRBrckYNXwQN+Wa5>YVVrgbw? z)h<+h6cgJfo6!@+=B-X&28(@0OL@zBmOxv}m*Xzcs|QS}Zf33N>gFowm(9D&XcDN= zHaVvSbuc(vb=Bpx??5CY+7NQn7ywSVhlih~8{>L#G!y}{^Pe$0y-dGI)Ie5H)9YAk zD1{ps#4>-=Z@EF~P++&+bKK?zFo-S)vS+y&E9;`gVNlp`f8H&)U(nsd_SfcP419&V z8UH~71SXZxv$-Pr0%uwuEGZ5*K_KgEw6vEr&mg}x(8|3@(Rc;>el-r4C!__HwOCwh>Q1Fz>% zTWVK}fuolT8db01&4Xm&rj{HG1x`p0`z+Jlk8^hCxB7)Jx#dHI+;T1D!cUHM7wYiw zI9LU<^84EjY>)XwCstCIu`+oQXoP^dCNJnU(Qv@`NkRzOyjw_9^WH&qmQ zQX^Bo_$?%)X$ZrF@rQKwE`;p5UAG9FdsFW`KX-ud-(Ay4fjC&nR6fC?#Y$Rciqh3aNI zMTkNcuUrqm1MJ9W-`6b}f&9g3wM|MR3X9zMvY`e1^?H}%5-tM>EkN1mK zeQQ2G?k7&qaVZ!P)g`BD(o4rJJieSh&b8&j)xqFK0+<;WuYhLx$7eM<9z_hKSbf;D z>uO7)15k2V25#QX!fklofqFRns36<-wK|I%#4U(@OChA}#T5S=wY03l(*nH637A5k z`c29J2$t!<^(j&TW?>6ULC@m!(I2k+SCIfbl=pTRY3Y~J+c7TaGnl)()0aX1p=v$% zvZolU{o(>Cp{cFMlP8R<;hpKm!wA-6id1Yqt+ErBWx%>C1OwDt9)4>`ERx#SRXLLm zG+?0?PGiq@v*7SF1jp6BsjPk1TN0d_KIDd+8nXof0n6=N&PwJ&af-y58})L@4UNyN z6O6BzkN&~#tcPU#3&H;;lV-*A@`w5qXaP1_^l1+TI>I#NbC@puq1a#`H@EHGFqbbQzqGe@WMw9J-)Jrrwy;+-P6_yxZfN^gS8x_&89F3Dw?PBT zHE8P%WNfU`8aP?l+5Vplb}C3Kp1EK^Kyu$l=l;nh@xMRL$lS!p%HHn# zr~iP^2ET3E`)r8bOb>~rrcItSYVdaexR&n9lJ7!_z@c#7&2r^mcxKj zCbcAqy$pVqq8smVBe$^@P9Eq0*p8Bokz*KvP}a9qBZ6j>M5s2C5y5CgWhtr$T1*Q^ z%4IBgvwEzzQjwcS(I6jI5nL0LdURPciR1(9o?qA4w-X*yrV=+BL5{Tyn7!OeGU`&P zq`l_&QA){-!AwlkCZjdsup&?`eo!_ROFq>eByLb`5D=cFkVv$VuCS6X>#Oq8Y{#`;_y3Sd6FoIyLg5a#1Hb3N-ome_IFkIxDdI4Q&Mh#TF4AN@XQtKDOP z9CZ?+Vb^uLp?e<$lf+-|Q7AbafEsQcM~p`WJqseIV3|KQ4U_nVc_gJqjLk65y~gk{aJ`NezYgJrRBO(lV?oG~5Z?Rx}IOZs6vOz_Hl^8u|D z4vXPw9l(sR{POw*ZcmY#7&%)?8HEI%fGuS$!_I)sFrhIY#ek#evEiQ|D94r%ooUD) zNX=pWo}|l$qoMCRn66^l3*hF;^qFVxUZ;yK37@ybzI<>a*j7cZ0Ce#IfkzJ5BHeFu z{W~r9GFgY|^D@g27X3oBBoIQ?>qoCu$ZM7U(`z;L{!B!xUP ztx3RxUBHx_#8JB(N{L@)wv!ClW#d2m2{x*p>4eHS&qp5^6*pN&G57woV*O+>`@|%v zOu`<68A?T zbN+~MXlz;a+&nuN&Dwyi#!tECuTBu2cC}8+$6tCOIt4dJuED-{6?VP=VeOV7>6Ne02pro`&X;oUk*njkJlXl_TEN1;r#UJH5w@47>nOvDG@_cszb4ljAZ#IzZuKZMS-nakL zH543xKhsGfvsC_?`&Tzm{Qc4V7Xa1B*6=^h$}3OQ!}$F=q4x18euAct1CM(6Uyjj# zEDCsb?C{ezCmFD{-C1$d6Z-0OMB0RfXO4o?=3BN9A0jT^SkwNmYKGG+(vAi;0KjJX ze={J30B~@&F{Gxap`)Rr{>_%AwK6v_w6*yknFzH15tEJGj1B)28eegLIc~Bv@NW8o z6tI&j$i`FYY`D&{yN=W+550Ucr#QN2cS%V^#sy~(s0TD0l6>#(UIXFv)2b^REZJ|T zk03!%p?m~u>j4T~-)?aqN&!RgMs5oQ^`BRy3F&9m9iK}aK2q#A0K##hh2((Gbo7qX z^`RDu2lxuDA@4IG@O*<8zqd~E-sAI#*f3nj1kK(7>JE7wJ>V}ViE}{*LVbbfl{a)H z2(FTv%{c(oVpiUIktEzbHZekzZqo^91q>kr#u~HcfDYEs$}Flz4@bC$n%c8P8=-2* zybfu$d7woBAM9voWB04N0GYky|A+>f4EW4tpJp|!l`ba_y|0)MuBLW1dsr)b5xQfI zb(|Xv@id{w8n)Dr3#_9P*(_K&6|!Nu5Wk3S^SP7)5@EQK?W2u7lm1%=K3i`-$MHb5GGL*kXGV-gGi z5slhXUE#C?Zo3;zki^z9zSF&mb$NN+cOjdr6Uwl@y{>m*-D2HVlOI4vbtJZ z%jj0y!_f7|b-?%tmObE4AJ=V0v8=U8hWM^GM|%W-)_c#-^K_oCmo%5QHhXrAUzFH& zEWtV~cMc+s5r?o8>yk+{=qIlD=Zm@6?0_X9^=2M&Vn_iskQ*>Gd{0Vss?EWBp^2fi zO&xPpRu8{yr1(+B%XLfJ08Jps7ULqJ+^WaRA)A@G1QuE(Iz=}{>)QZ8Dx1U`pFW|Gv0u$I zy9}>A_#zw)pFPYTgqW<3^ry{nQ{*Gm4E<)^7d3-Nsv|q8!GzP(sqbf{o2R8!l=My^ z2W1%8VM}{PW#kXUfz%KKQ0!7-{D|Z}T>*&J(X6m1(DJMETGflW@|C+x2b3D-0dh53 zsTdwV`7aqNl__1qP{xrWFvXF(b0nL-u_N}tKc_uubu@ESlCL)eeEVScF2Ik0hKQsSjz zLFeZYpzh_~xe*j0>GN3+*TiM*Ayma6fN=LOh-;c>u#S3mesq%J!ouoaUq5aB8r9@P z;BUTc$BG%9sAKwA$sRtAIzxd#RM~DWRCz?sb0hPs#*nvR9rP+L@0RlG8|CLk@gPTi z1CXyM9rNJoajzoxZLtD$;$k`@#Fx;=L1t-Et(%zALCdX4`-ywqS{0Wi@z`FhR$~x zpMbc7$`MVx+sf`Z#~{Iu)m%y1{xQ52Y4u;|M$Q%g{JQQ&?39Jk)CtY=j>Tm>B&z>h zLx8BYkLG*t2kB1=$8@u~?6*Y-?GFNj@WIjhVL@B`Qnm&7g86OSaG5pv4sAmo@0iSZ zViZuyHnOdGlY}sbL4`XntEb7bCg_Eh?fe>a!s}QT`vfumtYxMhqt&pp)=k$9wa1fY z;0sM!2hR@ss>oKU}hC3YHGne>+LR}-VAv<-2%`)zd0^jGF!GF zetzBDo@`9Lf|$i*cgeEBC@5k{k(QdhR)zR!tE7qT41?Gm)P3H z;1^E_RRXEwUU)HUXBoC*p#%)TBcxYF)i{wvP0O~}j&7zwf&6K)Cxur$c!VfF;B{NO zdLMcV7y0dcLb=u$;J2f7zaM;#Ijltr($%{OHUb?e1Ki(RXt}DFJQ5WvrleGm{rX&X z4M-Y=t<`@M{4_Eg1vE*INR@n*a}vJ~cJ5t${+)z5a94)EXeL^>gyeFf7-6-m!uAjm z{`^JEPcmLbU$D&3yuCm$yI|KAyZ0iZ>YK8x@!i(ESmkFsZ{xf-AfWPxfmyd+n((wY z-K|mAw_`@wqun+eb)Tv4vS@)x*O*)>qq-0d>?;vYlk=k!ELsI-jWA0=(rzppf|Z(u zbNm$;YBGH)mP`Yr(r@xeXj2*<*WbAuLH5+O6TA zv{2p6gd&n?gp;%;rtnk|d^tUg|IAzK!nUNN$2w!KOeo&fuEt?zo@#Fl4P zrN4KB?+K?VC3?r+nyg(Cy3pT|R@z#BYxkT!fXOFa`J4l99Kols^p*t7W!P6^MQ5TH zkIV(u@mZRh^4+()HW#TH+|*#v+1h}LdbjKU_MawdQh2}76q~@;F|=)l@(#KWPXW@#$@iLa6o2+2z81oFH8L`zMjEVqgsJd;IQw8;*Q?Gv19c4I5J+R%O^>xUx;jc+hjB;5Hu^qAs7V;PgSNF`@0tfq zTbt?n(kLt1au@M5G;$CFyCM6gKuM%MbIBzX%FYBp?3TH^JFHx8Dfl< z3@LHi(YV3$apA#Q5Sp92=s)Qe2EpX9%_36kSQF~pHPB6!*DEs)v`+e3JH3R@6A90F zAJ&q+6e$td*oNh@>*0lvLrkNqH4hsgerB}1)|kdtc#kpx?6XLGTX>h?0zBn?rjeui zB%o8A*=$14nU5-HdbHBZ4w4JEBgkE&i159Er{K|r=gFG;_*;u2N$+wbs!yj$24fA{ zNJWT4W1_Q8Wa7&&9O8YehEnc-&Da-TNQvdSVPmZ;1)M~db63WQQKujax!xwMJgKg& zTs~Sk;C{2&K3Jjj#TlUZB`h)Nqy{pCW%uU!q1oXd_3^1`h1=NUOFfMi<>WLk0=1P7 z7R~7)Ei?Qy33ErP6xo19@PCqLj2aN>D+&D|1*L}R#SKwOq@%K<=ovuZ6-q_?5e*L3 z(Lkq5Q?EgK4R)3;f$+@ad?AnhG?+H^b@-JL+Un_W!DG?B0O+O2M61c!!Crmb*3YNN ziO_a78S28oKOx&_2!I)LDs_4LazTDpKME96Mz-=a%bQFmo)#IO1BEMk8*x5U46i>- z#xM(bK`V%hCct3K;epk9=oXcr$R-!i)8RJm0e)zqe`Z@%idQH}{Vu0z9J&Bk0#Ts* z9L}DtZf2=?mfZJ{Q(~=RG1jOJRm@+Wh4Dyga&Zs)DU04p(mHuw;mt`mM?(9Anj9ra zvnBqq!q-g==CMO%Gv?Bvx2FQIfa(%usny_na)yWjn%;KB`BMY;3XlY``3w4@m~PC6 zvnZ7gq2Hzp-wQSDmZYWOhV+3On>!EQx>+GzqLB0 zr~CZ!vp8;Rnht6Uc=~h8w)f5BwtuHQy^~TAkUTFbJgy0AVqsUgw(THj`y;{MC=Fcp zUidKecEY>5nhKRm>AH0?V9II3Q(Cev)GV!0N$L`{*eDf=?j`_ zTq=GN()AfLotdfTBAAoWJ88?GFm3gr*g^||L4705fi`z(GF(#p_X%VQ`O19g&g{i3 zb0fQ@&mia1b*rFuvqzKwfq*j61 zC;@`V#w+>eUf|KE$7XM)M#o%{rUU?uvV~8|@qlHXN`1RPcw5NH9P)iEx#5RC zd^=SSCskdnmm1Sa6Wv6&Oz#P5J5TqvB~%lHfF?jE`Tk5GhFqzgaO_ex&2hZTpuUU5 zdwOx*()UBt^@!Wliw$;t(eEpc`+05lXUvEF^2GEX@e}lG>d6e{Uis_3!aE!v#OED3 zaUsdFv;BCFLA_55mAdc{`!aX$WerY)@r!z*|jzB5sM9nNcP*P7XC)E{;BOq=-4UhpeZ(WoK!tpg?Dntt$5P zV9sL>()^9N46?m5%II==|1!Q-wuaVpO94TH48;2Vcm9_h2GM3>1#`y7i3&-gnW#~U zMt1xv|0Zm0=J{5TIB*3+uBG}i;POyGCwv&xzpvYKXU@s)V$`q+KLa%DP^Z?tC)m5l z=kGln>DM{AT3R8E4nUXL!c|&tR>pM`!?*9f!N~1E?B{hK$F1EFNKr9)YFf+{d4SD* zBOsOF1RCD_55QxFBH5V+~89X%+*S_&;c_ z7kwOC98weUW$j96);j*`x{1{-G=(unbk3VD(<$PWG({;ee}BG@$1x;p-XR=V?F(Ha zELU7+Lo!~^#_o&|!$41ecs+lvm^PZzwOz?LUFNM#RU0ZjHkZ4&b`DPN}wUNUMuwYIR;VvgQpRY!S$lrfxzGBhA=sa)wZ+D-8Wx z*7~N)``sqjSfU^-s3roeSTk~{)#;vc#7&pLYjx_y z^4PDlqweYMK6>@DZN>z=ZIgoF5cKjq3 zJ7P#89HRJh|C7%LYyfX}?7YdN0HEIT_Xrlu+K_aJVaG`?had=pxLx%P0Z>iH!>BbMCXv2SlBgf>=w>ThKilV)h7>3sXa@lIF>et2+}G# zvS7sUXSwfPj|YhwH2{)-NuQ^9eV7VcCSvzeY5n_7(GsctHWN2aDh7y1#%p+DoK`zC zMOL{heu*TPFZ7BP4vhe)Mk3Y#&tYskdN$L*HDt4hUPl~^Nccck!{?gxsDR`uQcyNn z%97DadH_?@vgWx){5lrM-@gANlSK5Vt={UG&OXfQKdWh!>0Oe9vo(yjlQK;k?rG6+ zvaK)%Nui;y4lLA~&Z6sZ?1Ct~31Vi~eI}`%Age_!qKPjYfeftmJ4VsYg2>jZ$?`DV zLC+IU?JvWxWD-yU7kMI^FTucViT%(d{hEFB>UwxaBRVQIorN5%_FyUG;}sJHd@2(i zTS4{g-koa>2JDec+wx{zd9C-1%o*NKo!PHT(D$06N)LEB2P|HOKzCq8xNr^;|FX{vONfz?rd-dk&NmI}i7R4pI)+p?W;&< z%@}skXt$SiC*Sx(FyXiHeYK}?E&-D z{5eZS{9clKFQCGyI28LzPfrRt6E>8m&$Zk$9}R*XCE53bo1;P_Vm+qIBIhDN`!kge zp6a$ZL&Pn$S^O?BWq7Tq`%g`%4J`3d<6u8Spa7Q;$a0GTM_mF4F|#UnJy9l?>R8f; z#z-=NnEJ7^0+1*Pgagjy*5jg$7ferhZVF|6Nz0|3E>$+#K2@bEK1erTqFGNl3y`nZuMWBoy zN{$&JYCt3gKu8MLlrFE$`2035n`(htyRc~woA*u9$0lL+{T7Xw$rr|WrF!^A-GPF@ z_{79t=N&dT9d+^Ox;Xtqi#eNGj~yw~!m%yE@`~(;Fn!6-)2pjw8E~xe|NUM!17e#v@uE%m$5cb4Lr;c^G{&m-52U@$7(wC*%0Z)c9;WP ze<6MM0=en!5;=)i0Mp>Za)RR!+^$y$Y@b4$V=852&9fT z(~gbi&NJ)wY%^p_F7FDMVtlpdrpsVDO2cEnuA^*vN51a>NkgmC*1tT;G~zoFQp&g%nv~uo7-e#1plAV| zyYr(o7T&{0Dvc0r>wTSCBpQ`K@2)~WA*7n4weO@VRC5Cod9GWEA9WcN*6>b_42r6791x^^K+b>OQ z_-Ldmm+-t)SGFL*a8OpaA|iX;^x(B0q$aDIrc8)pbx>EgJ`>EYKneIm0l>eeS_sSIKgOvSfVMq$H;k{9OFAFT;0b~j z5Xw}!fu7Dq^B8MN_?ECC_r@!<;J8|c4?w)9!wmQ1aypgULb&7J=g_Ly4%MjP`(DW0Mm54Cbo?Th|nWNA%%Z6!p@i$MXXZs6C602ndOvX3zc4@IkbkSiQAv*KPpn4JX%oS`oruCo{GMb%*nDu@^RsXIc7L>R<> zj@!QkFPbA8Qvi7BQPET1r48pnf~6NJw>Tg zw31296WU|uPLJH};@1*g`a3Ak`EkI>Q7N8-106`&Gs@ zifgFu01f&O6X*7bA!@c2=q4K2w{k-IQxB6#f`N){Td^#>$I6-{pCc1Jk{qO(i}usT zt&mRW<@lb`Bb#+#)3p%%O*r%pebm4eOvm>9Z zYfyF$ed0Lv5ebn$ad=srh5jEIA{)Vm1kMX8%3?v$3o%rg){$T$>VJmY$~ycVoQ&Ef zER*ZyX?PeQ7++{b-fgDd}pU#CCm}dk1|Du+grHMRkGBRkZ*jY z-1s&f_Av#Fz1N>A2m&E(74 zoTuJPXs=^{({|BOoo~`5JAQEgSJBq~gdN-Y*P=M~cL9s#zbM+8+x%zQR>N9xvkm1t z>l1Rh(Qgq3!f5j=E+so3Uc*FV0$_V4dpkR({-02!p*t~q(&TaPt|QU9iVj3l&vpWO zU3F^V3Dz0ciI@vY5GsEzVhY6us=onO_3Ap^p#Va!&cjSCQZmlgkYF(C$Q|#hutIoT zDWT`&LJxU&f_@y48 z1l6k}PZ@h!!wuqP@I{@13LfqSlAj{oBeY({mU}z}^vFVU__*@BP5}yq{#R}yq3Vca z9i>pD80bgWWS+wLwnkIfHJ9rfV84VAkkXSzr?lLzmONry8brAmiJMq)kTU<0pUT%c zb2&ju4pVqf4=sY-I)@2*_DVzCALh2&(m`$~@ zGUa5Bi6zSucWCRPX11u;0VKUaD`Mi(Ca0yTqo5SlGI6S;6rUDkE>-PTpd4$Mz1%W? zQ|kf{mITE{H*`8*RoZH}re|76N zrO*%UhGimRh|LqlXWb3rO-)VBLwn+zf83LtkReJYfK>MIU;*YBZ;Z;)3ebuv+PT`s zcr{cv-M+3Hoamd*4!iQl_;y}7ee*n~=9;j6^Ig;MKPMZzV1OrJ$;|M~)Ahjrxb(gMp)0@uHaC7LP_UndAu2RzJT0}9E7KlgIkU>{;_-5Hd)`02 z>fgW6N$dg&p4aE-4S2X!OZT)+y-R4OxJ_K~WXrSfH?*Lt4XFl5|%-by1Gkm(XqlUYjY z&Rakj^!EtiG9>kO%!9?2{hav)XDnby3n|h%fhQuyRUbo)59T~V+N)6G0%Rt0w+{Xp zl&OnvLfIqzMVd5|01oIZdN>4tp(9SvKUPQUHG;3(&v9qG*AVmAQtg` ztgbn23TC#zV6zV3kmoTBdIAwl4D}QD#~`OPz8ET$w!;6BjEGHiF$G(UctX6pB7M

9SANdAnKXSR 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�@cnaF*N>^W?c%X=R5jQk$L~WQ7KzNRuAgG3e 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
?RlBwi0?r4;7X~j!n4At!A*i)We_r&%ZlidQB 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%0DV54+uWjp77ry4c8fW|q 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 C+cJXy literal 0 HcmV?d00001 diff --git a/runc-openeuler.spec b/runc-openeuler.spec new file mode 100644 index 0000000..c87c57c --- /dev/null +++ b/runc-openeuler.spec @@ -0,0 +1,42 @@ +%global _bindir /usr/local/bin + +Name: docker-runc +Version: 1.0.0.rc3 +Release: 101 +Summary: runc is a CLI tool for spawning and running containers according to the OCI specification. + +License: ASL 2.0 +Source: %{name}.tar.gz + +URL: https://www.opencontainers.org/ +Vendor: OCI +Packager: OCI + +BuildRequires: golang >= 1.8.3 glibc-static make libseccomp-devel libseccomp-static libselinux-devel + +%description +runc is a CLI tool for spawning and running containers according to the OCI specification. + +%prep +%setup -c -n runc + +%install +./apply-patch + +mkdir -p .gopath/src/github.com/opencontainers +export GOPATH=`pwd`/.gopath +ln -sf `pwd` .gopath/src/github.com/opencontainers/runc +cd .gopath/src/github.com/opencontainers/runc +make BUILDTAGS="seccomp selinux" static +rm -rf .gopath + +install -d $RPM_BUILD_ROOT/%{_bindir} +install -p -m 755 runc $RPM_BUILD_ROOT/%{_bindir}/runc + +%clean +%{__rm} -rf %{_bindir}/runc + +%files +%{_bindir}/runc + +%changelog diff --git a/series.conf b/series.conf new file mode 100644 index 0000000..d891a9c --- /dev/null +++ b/series.conf @@ -0,0 +1,110 @@ +0001-.travis.yml-Don-t-require-FETCH_HEAD.patch +0002-Don-t-try-to-read-freezer.state-from-the-cu.patch +0003-Use-opencontainers-selinux-package.patch +0004-handle-unprivileged-operations-and-dumpable.patch +0005-runc-add-support-for-rootless-containers.patch +0006-rootless-add-rootless-cgroup-manager.patch +0007-libcontainer-configs-add-proper-HostUID-and.patch +0008-libcontainer-init-fix-unmapped-console-fcho.patch +0009-rootless-add-autogenerated-rootless-config-.patch +0010-integration-added-root-requires.patch +0011-tests-add-rootless-integration-tests.patch +0012-vendor-add-golang.org-x-sys-unix-9a7256cb28.patch +0013-libcontainer-rewrite-cmsg-to-use-sys-unix.patch +0014-Set-container-state-only-once-during-start.patch +0015-checkpoint-check-if-system-supports-pre-dum.patch +0016-Fix-console-syscalls.patch +0017-restore-apply-resource-limits.patch +0018-could-load-a-stopped-container.patch +0019-Revert-back-to-using-sbin.patch +0020-add-testcase-in-generic_error_test.go.patch +0021-Fix-misspelling-of-properties-in-various-pl.patch +0022-Add-a-rootless-containers-section-on-README.patch +0023-vendor-clean-up-to-be-better-written.patch +0024-Optimizing-looping-over-namespaces.patch +0025-Add-a-rootless-section-to-spec-man-page-and.patch +0026-Allow-updating-container-pids-limit.patch +0027-Remove-redundant-declaraion-of-namespace-sl.patch +0028-Revert-saneTerminal.patch +0029-vendor-runtime-spec-fork-docker-runtime-spe.patch +0030-Update-memory-specs-to-use-int64-not-uint64.patch +0031-Add-spec-for-euleros.patch +0032-runc-17-Always-save-own-namespace-paths.patch +0033-runc-change-runc-default-umask-to-027.patch +0034-runc-17-Add-some-compatibility-code-to-surpor.patch +0035-runc-17-Add-root-to-HookState-for-compatibili.patch +0036-runc-17-add-compatibility-for-docker-1.11.2.patch +0037-docker-Don-t-enalbe-kmem-accounting-by-defa.patch +0039-Fix-unittest-and-integration-test-error-cause.patch +0041-Add-timeout-for-syscall.Openat.patch +0042-update-state-earlier-to-avoid-cgroup-leak-whe.patch +0043-runc-Use-rslave-instead-of-rprivate-in-chro.patch +0044-runc-default-mount-propagation-correctly.patch +0045-runc-add-hook-specific-info-when-error-occurr.patch +0046-runc-print-cgroup-info-if-cpuset-missing-occu.patch +0047-runc-add-more-specific-log-for-hooks.patch +0048-runc-Only-configure-networking.patch +0049-cgroups-fs-fix-NPE-on-Destroy-than-no-cgrou.patch +0050-runc-Avoid-race-when-opening-exec-fifo.patch +0051-runc-Return-from-goroutine-when-it-should-t.patch +0052-runc-reduce-max-number-of-retries-to-10.patch +0053-runc-print-error-message-during-start-into-co.patch +0054-runc-ignore-exec.fifo-removing-not-exist-erro.patch +0055-Add-file-fds-limit.patch +0056-runc-Modify-max-files.limit-to-max-because-of.patch +0057-runc-change-read-value-of-cgroup-files.limit-.patch +0058-runc-fix-panic-when-Linux-is-nil.patch +0059-Fix-setup-cgroup-before-prestart-hook.patch +0060-runc-runc-logs-forwarding-to-syslog.patch +0061-runc-17-change-golang-build-version-to-make-o.patch +0062-runc-Check-the-hook-timeout-in-case-overflow.patch +0063-docker-close-openchan-immediately-to-avoid-er.patch +0064-runc-bump-to-v1.0.0.rc3.4-after-normalization.patch +0065-runc-support-namespaced-kernel-params-can-be-.patch +0066-runc-bump-to-v1.0.0.rc3.6.patch +0067-runc-make-the-runc-log-more-useful.patch +0068-runc-reduced-the-same-log-when-the-hook-exect.patch +0069-runc-Change-Files-to-LinuxFiles-for-file-limi.patch +0070-runc-not-print-no-such-file-when-cli-err.patch +0071-runc-revert-Change-Files-to-LinuxFiles-for-fi.patch +0072-Revert-runc-not-print-no-such-file-when-cli-e.patch +0073-runc-fix-state.json-no-such-file-or-directory.patch +0074-runc-fix-check-sysctl-in-host-network-mode.patch +0075-runc-Fix-systemd-journald-service-dependency.patch +0076-runc-Fix-syslog-hook-bug.patch +0077-runc-Require-libseccomp-static-lib-for-upgrade-f.patch +0078-runc-Fix-race-in-runc-exec.patch +0079-runc-modify-spec-file-for-upgrade.patch +0080-runc-support-specify-umask.patch +0081-runc-fix-oom-killer-disable-unhandled-due-t.patch +0082-runc-make-runc-spec-and-docker-18.9-compati.patch +0083-log-fix-runc-log-decode-failed.patch +0084-oci-fix-runc-panic-and-support-oom-score.patch +0085-runc-do-not-setup-sysctl-in-runc-when-userns-.patch +0086-runc-support-set-seccomp-priority.patch +0087-runc-fix-spec-LinuxSyscall-struct.patch +0088-nsenter-clone-proc-self-exe-to-avoid-exposi.patch +0089-Revert-nsenter-clone-proc-self-exe-to-avoid.patch +0090-nsenter-clone-proc-self-exe-to-avoid-exposi.patch +0091-runc-cve-2019-5736-workaround-if-memfd_create.patch +0092-runc-cve-2019-5736-fix-build-failure.patch +0093-runc-fix-error-when-check-the-init-process.patch +0094-runc-If-tmp-is-mounted-by-option-noexec-docke.patch +0095-runc-just-warning-when-poststart-and-poststop.patch +0096-runc-do-not-kill-container-if-poststart-hooks.patch +0097-runc-Fix-mountpoint-leak-and-pivot_root-error.patch +0098-runc-fix-read-only-containers-under-userns-.patch +0099-runc-enable-bep-ldflags.patch +0100-runc-set-makefile-buildid.patch +0101-runc-print-memory-info-when-syscall.Exec-fail.patch +0102-runc-add-sysctl-kernel.pid_max-to-whitelist.patch +0104-runc-Retry-adding-pids-to-cgroups-when-EINV.patch +0105-runc-disable-core-dump-during-pipe-io.patch +0106-runc-do-not-override-devices.allow-file-when-.patch +0107-runc-fix-exec-problem-caused-by-libseccomp-up.patch +0108-runc-print-files-limit-and-usage-when-exec-fa.patch +0109-runc-add-copyright.patch +0110-runc-add-lisence.patch +0111-runc-add-log-message-for-cgroup-file-check.patch +0112-runc-add-log-message-for-cgroup-file-check.patch +0113-runc-modify-files-cgroup-info-reading-path.patch -- Gitee